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

Đối thoại với sinh viên ở Vô Tích, Trung Quốc

Tháng trước khi tôi tới dạy ở Vô Tích, Trung Quốc, một sinh viên nói với tôi: “...Điều tốt hơn có lẽ là thầy đọc bài giảng về điều chúng em cần chứ không phải là cái gì đó quá tiên tiến mà có thể tốt ở Mĩ nhưng không tốt ở Trung Quốc.”
2

Thiếu hụt kỹ năng công nghệ thông tin

Trong vài năm qua, vấn đề thiếu hụt kĩ năng CNTT thường được nhắc tới ở Mĩ và nó làm khuấy động nhiều cuộc tranh cãi.
3

Cách học tốt hơn

Ngày nay sinh viên đại học có nhiều sao lãng ngăn cản họ học tập.
4

Qui trình đơn giản cho dự án nhỏ

Hôm qua, một sinh viên đã tốt nghiệp vài năm trước tới gặp tôi. Anh ta nói: “Em cần lời khuyên của thầy để thiết lập qui trình tốt nhằm phát triển phần mềm có chất lượng với chi phí thấp nhất có thể được."
5

Cách chọn bạn và thành công ở đại học

Khi vào đại học, một trong những điều mới đầu tiên bạn có lẽ cần là chọn bạn. Bạn là một phần của cuộc sống và tình bạn nào đó có thể kéo dài một thời gian lâu, nếu bạn cẩn thận về loại bạn mình chọn lựa. Bạn tốt có thể giúp bạn cực kì nhiều nhưng bạn xấu có thể làm hại bạn còn hơn bạn có thể hình dung.

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:

'Sức mạnh của Đạo' - khi người bận rộn học cách không cản đường chính mình

Có những cuốn sách đổi đời người ta không phải bằng một chân lý lớn, mà bằng một tai nạn nhỏ. Với Max Landsberg, đó là một mảnh gỗ nhỏ mắc trong cổ họng vào một tối thứ Sáu — và ba mươi năm để hiểu vì sao mình lại ngồi ăn pizza kiểu ấy.

Người EQ cao vay tiền như thế nào?

Kỹ năng - Hà Nguyên - 30/07/2026 10:00
Ai cũng có lúc cần vay tiền để giải quyết một việc cấp bách. Nhưng điều khiến một người được tin tưởng không nằm ở số tiền họ vay, mà ở cách họ mở lời, giữ cam kết và ứng xử với khoản tiền mình đang mượn. Đó cũng là một biểu hiện của EQ tài chính.

Hành trình 3.000 km vượt sa mạc đến chiếc huy chương World Cup trên cổ của mẹ Nico Williams

Truyền cảm hứng - Minh Ngọc - 30/07/2026 09:00
Sau khi Tây Ban Nha bước lên ngôi vô địch, cầu thủ 24 tuổi của La Roja đã nhìn lên khán đài rồi tiến thẳng về phía mẹ mình - bà Maria, ôm bà thật chặt rồi tháo chiếc huy chương vô địch vừa nhận được để đeo lên cổ người phụ nữ đã đứng khóc suốt trận đấu.

'Sức mạnh của Đạo' - khi người bận rộn học cách không cản đường chính mình

Từ sách - Phim - Minh Nguyệt - 30/07/2026 08:00
Có những cuốn sách đổi đời người ta không phải bằng một chân lý lớn, mà bằng một tai nạn nhỏ. Với Max Landsberg, đó là một mảnh gỗ nhỏ mắc trong cổ họng vào một tối thứ Sáu — và ba mươi năm để hiểu vì sao mình lại ngồi ăn pizza kiểu ấy.

Lập kế hoạch dự án phần mềm

Blog GS John VU - GS John Vu - 29/07/2026 11:00
Một người phát triển phần mềm tới gặp tôi: “Tôi được đề bạt làm quản lí một dự án nhỏ. Ông chủ của tôi bảo tôi hội tụ vào viết mã chứ KHÔNG lập kế hoạch bởi vì lập kế hoạch là phí thời gian. Viết mã sẽ cho tổ nhiều thời gian hơn để hoàn thành dự án. Câu hỏi của tôi là làm sao lập kế hoạch cho dự án mà không phí thời gian và vẫn đạt tới thành công?”

Vì sao người Mỹ vẫn yêu quý Phạm Xuân Ẩn

Phong cách sống - Tô Giang - 29/07/2026 09:00
Giáo sư Larry Berman là tác giả "Perfect Spy", cuốn sách được độc giả Việt Nam biết đến với tên gọi "X6 - Điệp viên hoàn hảo" viết về Thiếu tướng tình báo Phạm Xuân Ẩn.

'Sức mạnh của Đạo': Lý - Nhận ra các khuôn mẫu để biết nên hành động lúc nào và như thế nào

Từ sách - Phim - TĐ - 29/07/2026 08:00
Lý nghĩa là các khuôn mẫu. Khi nhận ra các khuôn mẫu trong con người, tình huống và tự nhiên, bạn sẽ có cái nhìn rõ hơn về cách thức và thời điểm vận dụng các dòng chảy ngầm của vũ trụ sao cho có lợi cho bản thân. Đoạn trích dưới đây từ cuốn sách "Sức mạnh của Đạo" của tác giả Max Landsberg sẽ giúp bạn hiểu thêm về "Lý".

Thiếu hụt kỹ năng công nghệ thông tin

Blog GS John VU - GS John Vu - 28/07/2026 11:00
Trong vài năm qua, vấn đề thiếu hụt kĩ năng CNTT thường được nhắc tới ở Mĩ và nó làm khuấy động nhiều cuộc tranh cãi.

4 hành động thể hiện bạn là người EQ thấp

Kỹ năng - Kim Linh - 28/07/2026 10:00
Người có EQ (trí tuệ cảm xúc) thấp thường dễ hành động theo cảm tính, vô tình khiến cả bản thân lẫn người khác rơi vào những tình huống khó xử.

Nhà thiết kế nổi tiếng Việt Nam làm tài xế xe công nghệ để kiếm sống, mừng rỡ khi được khách 'boa' 2.000 đồng

Phong cách sống - Anh Khôi - 28/07/2026 09:00
Bài đăng của nhà thiết kế nhanh chóng nhận được làn sóng tương tác lớn từ giới giải trí.

Sắp phát hành: Đại chiến AI

Tủ sách - FN - 28/07/2026 08:00
Suốt nhiều thập kỷ, AI luôn được xem như một tương lai "đã cận kề", nhưng hết lần này đến lần khác vẫn chưa đáp ứng được những kỳ vọng. Phải đến khi ChatGPT, Gemini cùng hàng loạt công cụ AI tạo sinh khác bùng nổ, nhân loại mới thực sự tự hỏi: Có phải thời hoàng kim của AI đã điểm?

Cách giúp cho một dự án đang thất bại

Blog GS John VU - GS John Vu - 27/07/2026 11:00
Một người quản lí dự án hỏi tôi: “Dự án phần mềm của tôi không chạy tốt, tổ của tôi mệt mỏi và nản chí. Tôi phải làm gì?”

Bạn luôn đưa ra lời khuyên tuyệt vời cho người khác, ngoại trừ chính mình

Suy ngẫm - TĐ - 27/07/2026 10:00
"Tạo khoảng cách với bản thân" (self-distancing) giải thích vì sao lời khuyên bạn có thể dành cho một người bạn chỉ trong năm phút lại là điều bạn không thể tự nói với chính mình suốt cả một tháng.

Phạm Xuân Ẩn trong Mậu Thân 1968: Cuộc đấu trí từ bản cung của kẻ phản bội

Phong cách sống - Bích Phương - 27/07/2026 09:00
"Tiêu hết rồi các anh ơi!", Đại tá Tư Cang từng nhận định bi quan sau đợt 1 Tết Mậu Thân. Nhưng nguồn tin, phân tích chiến lược của ông Phạm Xuân Ẩn đã giúp Cụm H.63 nhìn ra bước ngoặt của cuộc chiến.

'Điệp viên hoàn hảo' Phạm Xuân Ẩn - Nghệ thuật xử lý thông tin và tư duy báo chí

Từ sách - Phim - Trúc Linh - 27/07/2026 08:00
Phạm Xuân Ẩn nhận thấy nghề báo và nghề tình báo có nhiều kỹ năng gần giống nhau. Một phóng viên giỏi phải tìm được sự thật bên trong tin đồ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