Không đảm đương được nếu không kiểm thử phần mềm

GS John Vu18/09/2025 13:00
Không đảm đương được nếu không kiểm thử phần mềm

Kiểm thử là cần thiết cho mọi dự án phần mềm.

Tuy nhiên, những người phát triển không thích kiểm thử và nhiều người quản lí phần mềm coi nó là “không quan trọng”. Khi lịch biểu sít sao, họ không có vấn đề gì khi giảm hoạt động kiểm thử hay thỉnh thoảng còn bỏ qua nó. Có hiểu lầm nào đó về kiểm thử như “kiểm thử là dễ”, “bất kì ai cũng có thể làm kiểm thử”, “kiểm thử là nhanh chóng vì mọi mã đã được viết rồi”, “kiểm thử sẽ làm chậm dự án lại”, và “bỏ qua kiểm thử, tiết kiệm tiền và để người dùng tìm lỗi rồi chúng ta sửa chúng về sau.” Đây tất cả đều sai và với thái độ xấu đó, chất lượng phần mềm KHÔNG thể được cải thiện.

Không có kiểm thử đúng, thảm hoạ phần mềm tiềm năng có thể dễ dàng biến thành thực tại. Sau đây là vài trường hợp rất nổi tiếng:

Cảng hàng không Heathrow của Anh mua hệ thống xử lí hành lí do máy tính kiểm soát để cho việc checkin được dễ dàng và nhanh chóng. Vào ngày khai mạc, khi hàng nghìn người làm checkin, hệ thống đã không làm việc, buộc các hãng hàng không cắt bỏ 34 chuyến bay và dừng kiểm tra hành lí với hàng nghìn hành khách mắc kẹt ở sân bay. 10 ngày sau, không ai có thể nhận diện được vấn đề và các hãng hàng không phải cắt bỏ 500 chuyến bay với hàng trăm nghìn hành khách giận dữ. Phí tổn của vấn đề này là vài trăm triệu đô la. Cuối cùng, một kĩ sư phần mềm tìm ra lỗi trong mã đã KHÔNG được kiểm thử vì người quản lí ra lệnh bỏ qua nó để đáp ứng lịch biểu.

Một thất bại lớn khác là hệ thống hộ chiếu của chính phủ Anh nơi chính phủ đưa vào hệ thống máy tính mới để kiểm tra hộ chiếu hiệu quả hơn trong các kì nghỉ lễ. Trong hai tuần đầu, hệ thống không chạy và hơn nửa triệu công dân Anh không vui vẻ gì khi khám phá ra rằng hộ chiếu của họ là “không hợp lệ” và họ không thể du hành được. Về sau, người ta mới tìm ra nguyên nhân chính là “Tràn chồng” trong mã và lí do là một số chức năng đã KHÔNG được kiểm thử khi người quản lí quyết định để cho người dùng tìm lỗi rồi họ có thể sửa chúng để tiết kiệm thời gian và tiền bạc.

Airbus A380 cũng kinh nghiệm các vấn đề lớn và bị trễ hơn 2 năm và chịu phí tổn trên tỉ đô la. Vấn đề là phiên bản phần mềm sai đã được dùng trong kiểm thử bởi vì nhiều nhóm đã KHÔNG dùng cùng qui trình quản lí cấu hình. Nhóm Đức dùng phiên bản lạc hậu của phần mềm còn hệ thống Pháp dùng phiên bản mới nhất. Cho nên khi Airbus tích hợp tất cả các hệ thống lại, các phiên bản khác nhau không sánh đúng. Người kiểm thử phần mềm KHÔNG tìm thấy cái gì sai trong khi kiểm thử trong môi trường của họ. Không có kiểm thử tích hợp, không ai biết khác biệt trong các phiên bản phần mềm.

Có hàng nghìn trường hợp mà việc thiếu kiểm thử có thể đóng góp vào thất bại của các dự án chính. Ngày nay phần mềm đang ngày càng lớn hơn và phức tạp hơn, kiểm thử đang trở nên ngày càng quan trọng hơn bao giờ. Chẳng hạn, người ta đã ước lượng rằng điện thoại di động đơn giản có trên 10 triệu dòng mã (LOC) còn “điện thoại thông minh” có trung bình 20 triệu dòng mã. Xe hơi trung bình có trên 200 triệu dòng mã còn máy bay và qui trình chế tạo tự động của nó yêu cầu trên tỉ dòng mã.

Có nhiều lí do tại sao các dự án phần mềm có thể đi sai nhưng kiểm thử là chỗ bạn tìm ra vấn đề và sửa chúng trước khi đưa ra cho người dùng. Kiểm thử là một trong những nhân tố quan trọng và mấu chốt nhất trong mọi dự án phần mềm lớn nhỏ. Người phần mềm giỏi không bao giờ nên bỏ qua kiểm thử hay dành ít thời gian trong kiểm thử và chúng ta cần có thái độ “Chúng ta KHÔNG thể đảm đương được nếu KHÔNG kiểm thử.”

English vesion

software testing

Testing is a necessity on every software projects. However, developers do not like to test and many software managers consider it “Not important”. When schedule is tight, they have no problem reduce testing activities or sometime skip it. There are some misconceptions about testing such as “testing is easy”, “anyone can do testing”, “testing is quick since all the code has been written”, “testing will slow the project down”, and “Skip the test, save money and let users find defects then we can fix them later”. These are all false and with that bad attitude, software quality can NOT be improved.

Without properly testing, potential software disasters can easily turn into reality. Following are some well known cases:

British’s Heathrow’s airport terminal 5 brought a computer control baggage handling system so check in would be easy and fast. On opening day, where thousands people checked in, the system did not work, forcing airlines to cancel 34 flights and suspended all baggage check in with thousand travelers stranded in the airport. The next 10 days, no one can identify the problems and airlines had to cancel 500 flights with hundred thousands angry travelers. The cost of the problem was several hundred million dollars. Finally, a software engineer found a defect in the code that has NOT been tested as manager ordered it skipped to meet the schedule.

Another major fiasco is the British government’s passport system where the government brought a new computer system to check passports more efficiently during holiday seasons. In the first two weeks, the systems failed and more than half a million British citizens were less than happy to discover that their passports were “invalid” and they could not travel. Later, it was found the main cause was a “Stack overflow” in the code and the reason was some functions were NOT tested as manager decided to let users find defects then they can fix them to save time and money.

The Airbus A380 also experienced significant problems and delays for more than 2 years and cost over a billion dollars. The problem was the wrong versions of software had been used during testing because several groups did NOT use the same configuration management process. The German group used an out-of-date version of software and the French system used the latest version. So when Airbus integrated all systems together, the different versions did not match. Software testers did NOT find anything wrong during testing as they tested them in their own environment. Without integration test, nobody knows the difference in the software version.

There are thousands of cases where a lack of testing can be attributed to the failure of major projects. Today software are growing larger and more complex, testing is becoming more and more important than ever. For example, it is estimated that simple mobile phones have over 10 million lines of code (LOC) and “Smart phone” have on the average 20 million lines of code. An average car has over 200 million lines of code and an airplane and its automated manufacturing process would require over billion lines of code. There are many reasons why software projects can go wrong but testing is where you find problems and fix them before release to users. Testing is one of the most important and critical factors in every large and small software projects. A good software people should never skip testing or spend less time during testing and as we need to have an attitude that “We can NOT afford Not to test”.

 


Gửi bình luận
(0) Bình luận
1

Vòng đời kiểm thử

Nhiều người trong các bạn đã hỏi tôi về kiểm thử và mối quan hệ của nó với vòng đời phát triển phần mềm. Về căn bản kiểm thử tuân theo vòng đời tương ứng với mọi pha của vòng đời phát triển.
2

Một dòng mã

Khi tôi là sinh viên khoa học máy tính, tôi chưa bao giờ học về Quản lí cấu hình phần mềm Software Configuration Management (SCM).
3

Cách đo và độ đo

Tôi nhận được một email người gửi viết: “Cái gì là khác biệt giữa cách đo và độ đo và có bao nhiêu cách đo hay độ đo phần mềm?”
4

Thành công ở đại học

Thành công nghĩa là đạt tới mục đích của bạn, dù chúng là bất kì cái gì.
5

Cách đo

Tôi nhận được một email từ một sinh viên: “Tại sao chúng ta phải đo công việc của mình? Đo là khó và phí thời gian vì nó không cung cấp cho tôi giá trị. Nếu chúng ta có lỗi, chúng ta có thể sửa chúng về sau bất kể chúng có bao nhiêu. Tôi không biết tại sao chúng ta cần đo?”

Quản lý hệ thông tin

Ngày nay Công nghệ thông tin có ở mọi nơi và kiểm soát nhiều thứ, từ doanh nghiệp chế tạo lớn tới doanh nghiệp nhỏ, từ các hệ thống của chính phủ cho tới các hệ thống doanh nghiệp tư.

Thành đạt và tận hưởng

Nhiều sinh viên thường hỏi tôi: em cần thời gian học tập, em cần thời gian với bạn bè, em cần thời gian cho bản thân mình, em cần thời gian với gia đình, em cần thời gian để ngủ. Em tìm đâu ra thời gian để làm mọi việc đó? Làm sao em có thể tạo ra lịch biểu cho mọi hoạt động?

Kiểm thử tích hợp

Ngày nay, các hệ thông tin như lập kế hoạch, quản lý... đều rất lớn và phức tạp nên phải được kiểm thứ cẩn thận.

An ninh tính toán

Không may an ninh thông tin vẫn không được nhiều người phát triển phần mềm xem xét một cách nghiêm chỉnh, hay không được dạy như một môn yêu cầu ở hầu hết các đại học. Khi công nghệ phát triển phổ biến hơn, việc lạm dụng nó trở nên ngày một nghiêm trọng hơn.

Dự báo thị trường khoán ngoài

Theo nhiều nghiên cứu mới, một số địa chỉ khoán ngoài ở Trung và Đông Âu đang có vấn đề khi họ phải cạnh tranh với những địa chỉ mới ở châu Phi, Trung Đông và Đông Nam Á. Lí do đơn giản: Chi phí làm kinh doanh tăng lên.

Đảm bảo chất lượng phần mềm

Khi dự án phần mềm trở nên lớn hơn và phức tạp hơn, vai trò của Đảm bảo chất lượng phần mềm – Software Quality Assurance (SQA) trở nên gay gắt hơn.

Việc làm công nghệ

Với tất cả những không chắc chắn của thị trường việc làm ngày nay, phần lớn các trường của Mĩ đều khuyên sinh viên sắp vào của họ: “Nếu bạn muốn có việc làm được trả lương cao khi bạn tốt nghiệp, hãy học các khu vực công nghệ như kĩ sư phần mềm, khoa học máy tính hay quản lí hệ thông tin.”

Đào tạo phần mềm

Theo nhiều nghiên cứu, phần lớn dự án phần mềm thất bại vì cả người quản lí dự án và người phát triển phần mềm đều KHÔNG nhận được đào tạo thích hợp.

Kỹ năng của nhà doanh nghiệp

Blog GS John VU - GS John Vu - 14/07/2026 11:00
Tuần trước trong lớp, một sinh viên đã hỏi tôi: “Em muốn là một nhà doanh nghiệp như Steve Jobs hay Bill Gates và bắt đầu công ti riêng của em. Em cần làm gì để biết trước khi em tốt nghiệp?” Đột nhiên, vài sinh viên cũng muốn biết cách bắt đầu công ti riêng của họ. Dường như là mọi người đều muốn là ông chủ riêng của họ thay vì làm việc cho ai đó khác.

Những cải tiến quan trọng về AI và đồng bộ dữ liệu

Kỹ năng - 14/07/2026 10:00
Theo Zalo, các tính năng Dịch AI, AI Agent, đồng bộ dữ liệu hiện đang mở thử nghiệm cho người dùng từ tháng 7 và sẽ sớm được phổ biến đến toàn bộ người dùng.

AI tranh việc, đất sống nào cho người làm nghề thiết kế?

Phong cách sống - Đoàn Thủy - Việt Anh - 14/07/2026 09:00
Mất dự án vì khách chọn AI, bị khách dùng AI nhận xét sản phẩm, đó là những gì người làm thiết kế đang đối mặt. Trước làn sóng công nghệ, người làm nghề phải tìm lời giải cho giá trị của chính mình.

Không khóc giữa nhân gian - Khổ đau chỉ là ảo tưởng do chính mình tạo

Từ sách - Phim - PV - 14/07/2026 08:00
Tất cả chúng ta, không ngoại trừ bất kỳ ai trong đời này, đều đang bước vào một kỳ thi tâm linh.

Ưu tiên cho người quản lý dự án phần mềm

Blog GS John VU - GS John Vu - 13/07/2026 11:00
Phần lớn những người quản lí dự án được đào tạo để hội tụ vào lịch biểu nhưng theo kinh nghiệm của tôi, có lẽ điều quan trọng nhất là về đặt ưu tiên dự án.

10 câu trích dẫn ý nghĩa dành cho những ai đang cảm thấy lạc lối

Suy ngẫm - Trinh Quang - 13/07/2026 10:00
Khi bạn không thích những người xung quanh, cách tốt nhất để thể hiện sự không thích đó không phải là tranh cãi với họ, mà là chủ động rời bỏ họ.

Bức ảnh bữa cơm gia đình của tỷ phú Jensen Huang khiến nhiều người suy ngẫm

Truyền cảm hứng - Mi Vân - 13/07/2026 09:00
Một bữa cơm gia đình giản dị của Jensen Huang - CEO Nvidia và là một trong những tỷ phú giàu nhất thế giới - đang khiến nhiều người suy ngẫm về giá trị của gia đình giữa cuộc sống hiện đại.

Không khóc giữa nhân gian: Gặp lại chính mình trong vô lượng khổ đau

Từ sách - Phim - TĐ - 13/07/2026 08:00
"Không khóc giữa Nhân gian" không phải là một quyển sách chữa lành, mà là lời nhắn nhủ chánh niệm rằng chúng ta đừng sợ nỗi buồn. Nỗi buồn không đáng sợ, cái đáng sợ là hiểu sai và có thái độ chưa đúng với nỗi buồn mình đang trải qua.

Một dòng mã

Blog GS John VU - GS John Vu - 12/07/2026 10:00
Khi tôi là sinh viên khoa học máy tính, tôi chưa bao giờ học về Quản lí cấu hình phần mềm Software Configuration Management (SCM).

10 câu trích dẫn giúp bạn khi lạc lối

Suy ngẫm - Trinh Quang - 12/07/2026 09:00
Một khi đã đánh mất điều gì đó, bạn sẽ không bao giờ có thể lấy lại được. Có những việc, nếu bạn không làm ngay bây giờ, bạn sẽ không bao giờ làm lại được nữa.

Không khóc giữa nhân gian - Làm sao để hết khổ?

Từ sách - Phim - FN - 12/07/2026 08:00
Đau khổ vốn không trừ một ai, và nó có trăm hình vạn trạng: một sự mất mát, cảm giác cô độc giữa đám đông, hay đơn giản là nỗi thất vọng khi không đạt được thứ mà mình mong chờ. Vậy phải làm sao để ta hết khổ? Đau khổ có thực sự đáng sợ như người ta vẫn nghĩ? Hay chúng ta vẫn có thể nhìn đau khổ dưới một góc độ bao dung hơn?

Cách đo và độ đo

Blog GS John VU - GS John Vu - 11/07/2026 11:00
Tôi nhận được một email người gửi viết: “Cái gì là khác biệt giữa cách đo và độ đo và có bao nhiêu cách đo hay độ đo phần mềm?”

Không thích ai đó, cách khéo léo để xử lý việc này là thông qua "Phương pháp Sedona"

Suy ngẫm - PV - 11/07/2026 10:00
Trong cuộc sống, chúng ta sẽ luôn gặp những người mình không thích: đó có thể là một đồng nghiệp luôn nhắm vào bạn ở nơi làm việc, một người quen giả tạo và hay buôn chuyện, hoặc một người lạ có giá trị sống trái ngược với bạn và bạn không thể hòa hợp.

Mẹ tỷ phú Elon Musk chỉ cách nuôi dạy con thành tài: điều tuyệt đối không nên làm

Phong cách sống - Hân Ly - 11/07/2026 09:00
Mẹ của người giàu nhất thế giới cho rằng việc nuôi dạy con không nằm ở sự áp đặt, mà ở điều này cực kỳ quan trọng và cần thiết.

Sắp phát hành: Hồi ký của hy vọng

Tủ sách - PV - 11/07/2026 08:00
Hồi ký của hy vọng (Saving Five: A Memoir of Hope) thu hút sự chú ý của truyền thông quốc tế không chỉ bởi câu chuyện có thật của Amanda Ngọc Nguyễn, mà còn bởi cách cô kể lại cuộc đời mình vượt ra ngoài khuôn mẫu của một hồi ký về sang chấn.
HẠT GIỐNG TÂM HỒN
2019 Bản quyền thuộc về hatgiongtamhon.com.vn. Phát triển bởi ONECMS