Kiểm điểm phần mềm

GS John Vu26/12/2025 13:00
Kiểm điểm phần mềm

Mọi người phát triển phần mềm đều muốn dự án của họ được đúng thời gian, trong ngân sách và có chất lượng cao. Vậy mà nhiều dự án tiếp tục bị chậm, chi phí cao, chất lượng thấp, với ít chức năng hơn được yêu cầu.

Có nhiều lí do nhưng hiển nhiên nhất là số lượng lỗi cao cần phải được loại bỏ. Lỗi được tạo ra trong toàn thể vòng đời dự án nhưng thường được tìm thấy khi kiểm thử. Vào lúc này, dự án gần hoàn thành cho nên người phát triển vội vàng sửa chúng nhanh chóng nhất có thể được. Vấn đề là khi bạn sửa lỗi vội vàng, bạn có thể chèn thêm lỗi khác điều đòi hỏi thêm kiểm thử. Nhiều kiểm thử làm cho dự án chậm và tốn thêm.

Theo nghiên cứu của Ts. Barry Boehm tại đại học Nam California (USC) chi phí để sửa lỗi là quãng 65% tổng chi phí dự án. Do đó, để cải tiến chất lượng và chi phí của dự án phần mềm, người quản lí phải giải quyết vấn đề lỗi. Cách tốt nhất để loại bỏ lỗi là dùng kiểm điểm phần mềm hay kĩ thuật giám định sớm trong vòng đời. Ts. Barry Boehm thấy rằng về trung bình, tốn $1 để loại bỏ lỗi ở cuối pha yêu cầu, sẽ tốn $10 ở pha thiết kế, $100 trong pha viết mã, $1000 trong pha kiểm thử, và trên $10,000 khi người dùng tìm ra lỗi.

Theo Watt Humphrey thuộc Viện kĩ nghệ phần mềm (SEI) tại Carnegie Mellon, người phát triển trung bình có thể lập trình quãng 300 dòng mã một ngày nhưng tạo ra 100 lỗi cứ mỗi 1000 dòng mã. Việc tìm và chữa yêu cầu xấp xỉ 4 tới 10 giờ cho mỗi lỗi cho nên với mỗi 8 giờ viết mã, có thể cần thêm 20 tới 30 giờ để kiểm thử, phát hiện và loại bỏ lỗi. Đó là lí do tại sao nhiều dự án phần mềm bị chậm và tốn phí thêm.

Kiểm điểm phần mềm không mới nhưng không được dùng thường xuyên như nó đáng phải vậy. Lí do là đơn giản: Nhiều người phát triển không muốn người khác biết về lỗi của họ, họ có xu hướng kiểm điểm công việc của mình bên trong nhóm nhỏ các bạn bè rồi che giấu các lỗi để cho họ có thể sửa chúng về sau. Tuy nhiên, dự án phần mềm bao giờ cũng bận rộn với nhiều hoạt động cho nên người phát triển không có thời gian để sửa các lỗi của họ. Đôi khi họ quên các lỗi cho nên các lỗi cứ tiếp tục chuyển từ pha này sang pha khác cho tới thời gian kiểm thử những người kiểm thử mới có thể tìm ra chúng. Có những người quản lí dự án coi phát triển phần mềm là viết mã và bất kì “hoạt động không viết mã’ nào cũng đều là phí thời gian. Họ tin kiểm thử là nơi mọi người nhận diện và sửa lỗi cho nên họ không cổ vũ cho kiểm điểm phần mềm. Họ không biết rằng sửa lỗi xuất hiện về sau làm tốn kém thêm và mất thời gian thêm cho dự án, càng nhiều lỗi, càng tốn tiền loại bỏ chúng.

Nếu người phát triển phạm sai lầm nhưng người kiểm thử tìm được chúng về sau trong khi kiểm thử, người phát triển không bao giờ biết tại sao và khi nào họ đã phạm phải những sai lầm đó. Kiểm điểm phần mềm được thiết kế để tiến hành ở cuối pha phát triển để cho người phát triển biết đích xác họ đã làm gì. Chẳng hạn, kiểm điểm yêu cầu thường để trắc nghiệp tính đầy đủ của nhu cầu của khách hàng; kiểm điểm kiến trúc được dùng để kiểm nghiệm thuộc tính chất lượng liên kết với hệ thống phần mềm; kiểm điểm thiết kế được dự định để chỉ ra rằng thiết kế là đầy đủ tới mức kĩ lưỡng nào đó. Kiểm điểm mã là để trắc nghiệm rằng chương trình tuân theo thiết kế logic và không sai lầm viết mã nào bị phạm phải.

Kiểm điểm phần mềm điển hình bao gồm sáu bước: 1) Bước lập kế hoạch bao gồm nhận diện tài liệu cần kiểm điểm, lựa chọn người kiểm điểm và thu xếp nơi họp và thời gian họp, 2) Bước đào tạo bao gồm đào tạo tất cả những người kiểm điểm và vai trò và trách nhiệm của họ. 3) Bước chuẩn bị bao gồm cho phép có thời gian cho từng người kiểm điểm kiểm điểm lại tài liệu và nhận diện lỗi tiềm năng.  4) Bước kiểm điểm bao gồm nơi họp để tổ tụ tập thảo luận lỗi được tìm thấy. Mục đích của kiểm điểm là đi tới thoả thuận về những lỗi đã được tìm ra nhưng không sửa chúng trong khi kiểm điểm. Người lãnh đạo kiểm điểm hướng dẫn hoạt động này và yêu cầu người kiểm điểm, những người đã kiểm điểm tài liệu này trong pha chuẩn bị, thảo luận về tài liệu này theo cách hệ thống. Lỗi được tìm ra được ghi lại. 5) Bước sửa chữa bao gồm việc để thời gian cho tác giả của tài liệu bị lỗi để sửa chúng và 6) Bước theo dõi nơi người quản lí dự án hay đảm bảo chất lượng trắc nghiệm rằng mọi lỗi đã được sửa và không lỗi phụ đã được đưa vào.

Bằng việc sửa lỗi ở cuối từng pha phát triển, người phát triển học về những sai lầm của mình cho nên họ không phạm phải chúng lần nữa. Bằng việc không cho phép lỗi truyền sang pha sau, người quản lí dự án có thể được đảm bảo rằng họ không phải sửa nhiều lỗi vào cuối dự án khi thời gian đang căng thẳng. Bằng loại bỏ hầu hết lỗi sớm sủa, người kiểm thử có thể hội tụ nhiều hơn vào các khía cạnh khác của sản phẩm phần mềm như chức năng và thuộc tính chất lượng thay vì nhận diện lỗi. Bằng hiểu ích lợi của kiểm điểm phần mềm để cải tiến lịch biểu dự án, chi phí và chất lượng, người quản lí dự án phải động viên nhiều cuộc kiểm điểm phần mềm và đạt tới thành công hơn.

English version

Blog245-software review

Every software developer wants their project to be on time, within cost, and have high quality. Yet many projects continue to be late, higher costs, low quality, with less function than required. There are many reasons but the most obvious is the high amount of defect that must be removed. Defects are created throughout the project life cycle but usually found during testing. At this time, the project is near completion so developers are hurrying to fix them as quick as they can. The problem is when you fix defects in a hurry, you may insert another defect which require more testing. More testing makes project late and costs more.

According to the study of Dr. Barry Boehm at University of Southern California (USC) the costs of fixing defects is about 65% of total project costs. Therefore, to improve the quality and the cost of software projects, manager must solve the defects issue. The best way to remove defects is using the software reviews or inspection technique earlier in the life cycle. Dr. Barry Boehm found that on the average, it costs $1 to remove a defect at the end of requirements phase, it will cost $10 at design phase, $100 during coding phase, $1000 in test phase, and over $10,000 when a user finds a defect.

According Watt Humphrey of the Software Engineering Institute (SEI) at Carnegie Mellon, an average developer can program about 300 lines of code per day but makes 100 defects for every 1000 lines of code. The finding and fixing require approximately 4 to 10 hours per defect so for each 8 hours of coding, it may require another 20 to 30 hours for testing, finding, and removing defects. That is why many software projects are late and costs more.

Software review is not new but not use often as it should. The reason is simple: Many developers do not want others to know about their defects, they tend to review their works within a small group of friends then hide defects so they can fix them later. However, software project is always busy with many activities so developers do not have time to fix their defects. Sometime they forget about their defects so defects continue to pass from one phase to another until testing time where testers may find them. There are project managers who consider software development is coding and any “non-coding activity” is a waste of time. They believe testing is the place where people identify and fix defect so they do not encourage software reviews. They do not know that fixing defect late incurs additional costs and time to the project, the more defects the higher the cost to remove them.

If developers make mistakes but testers find them later during testing, developers never know why and when they made those mistakes. Software reviews are designed to conduct at the end of each development phase so developers know exactly what they did. For example, Requirements review is used to verify the completeness of the customer’s needs; Architecture review is used to validate the quality attributes associated with software system; Design review is intended to show that a design is complete to a certain level of elaboration. Code review is to verify that the program is following the logical design and no coding mistake is made.

Typical software review consists of six steps: 1) Planning step consists of the identification of material to be reviewed, select reviewers and arrange meeting place and time, 2) Training step includes the training of all reviewers and their roles and responsibilities. 3) Preparing step includes allowing time for each reviewer to review materials and identify potential defects.  4) Reviewing step consists of a meeting place where the team gather to discuss defects found. The goal of the review is to have agreement on the found defects but not to fix them during the review. A review leader leads the activity and ask reviewers who have reviewed the materials during the preparing phase to discuss the material in a systematic fashion. Defects found are recorded. 5) Fixing step consists of allowing time for the author of the defect material to fix their defects and 6) Follow-up step where project manager or quality assurance verifies that all defects have been fixed and no additional defects have been introduced.

By fixing defects at the end of each development phase, developers learn about their mistakes so they do not make them again. By not allow defects to pass into the next phase, project managers can be assured that they do not have to fix a lot of defects at the end of the project where time is critical. By removing most defects early, testers can focus more on other aspects of the software product such as functionality and quality attributes rather than identify defects. By understand benefits of software reviews to improve project schedule, costs and quality, project manager should encourage more software reviews and achieve more success.

 


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?”

Six sigma

Six Sigma là một trong những phương pháp luận quản lí chất lượng phổ biến nhất được dùng trong công nghiệp ngày nay.

Xu hướng công nghiệp

Theo dự báo công nghiệp mới nhất, chi tiêu công nghệ thông tin toàn cầu sẽ tăng trưởng quãng 6% trong 2010, nâng đầu tư công nghệ toàn thế giới lên $3.4 nghìn tỉ đô la và tiếp tục tăng lên trong năm năm tới.

Giữ người

Điều gì xảy ra khi dự án của bạn mất vài người then chốt?

Việc làm trong thời khó khăn

Theo dự báo gần đây của chính phủ Mĩ, lương của những nhà chuyên môn kinh doanh dường như sụt giảm dần trên khắp thế giới.

Được chuẩn bị

Ngày nay chúng ta đang sống trong một thời bất định nơi bất kì cái gì cũng có thể xảy ra rất nhanh chóng.

Quy trình cho dự án phần mềm

Tuần trước, một người bạn có sở hữu một công ti phần mềm gọi điện thoại cho tôi: “Sau khi làm việc cho một công ti phần mềm trong sáu năm, tôi bắt đầu công ti riêng của tôi. Tôi tuyển những sinh viên tốt nghiệp hàng đầu và trả lương hậu cho họ, tôi có một số khách hàng và công ti của tôi phát triển nhanh chóng.

Lời khuyên khác cho người quản lý dự án phần mềm

Một người phát triển phần mềm hỏi tôi: “Mất bao lâu để là người quản lí dự án phần mềm? Tôi có cần theo khoá đào tạo là người quản lí dự án phần mềm không? Người không làm phần mềm có thể quản lí được dự án phần mềm không?”

Việc làm trong khu vực phát triển web

Tuần trước tôi đã nhận được một email từ một sinh viên hỏi về việc làm trong khu vực phát triển web. Sau đây là câu trả lời của tôi:

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