Có bằng chứng cứng của ROI của thử nghiệm đơn vị?


127

Thử nghiệm đơn vị nghe có vẻ tuyệt vời đối với tôi, nhưng tôi không chắc mình nên dành thời gian thực sự học nó trừ khi tôi có thể thuyết phục người khác rằng nó có giá trị quan trọng. Tôi phải thuyết phục các lập trình viên khác và quan trọng hơn là các nhân viên quản lý, rằng tất cả thời gian dành cho việc học khung kiểm tra, viết bài kiểm tra, cập nhật chúng, v.v. sẽ tự trả tiền, và sau đó là một số.

Có bằng chứng gì? Có ai thực sự phát triển cùng một phần mềm với hai nhóm riêng biệt, một nhóm sử dụng thử nghiệm đơn vị và nhóm kia không, và so sánh kết quả? Tôi nghi ngờ điều đó. Tôi chỉ có nghĩa vụ phải biện minh cho nó, "Hãy tìm nó trên Internet, mọi người đang nói về nó, vì vậy đó phải là điều đúng đắn"?

Đâu là bằng chứng cứng sẽ thuyết phục các giáo dân rằng thử nghiệm đơn vị là đáng để nỗ lực?

Câu trả lời:


98

Đúng. Đây là một liên kết đến một nghiên cứu của Boby George và Laurie Williams tại NCST và một nghiên cứu khác của Nagappan et al. Tôi chắc chắn có nhiều hơn nữa. Các ấn phẩm của Tiến sĩ Williams về thử nghiệm có thể cung cấp một điểm khởi đầu tốt để tìm thấy chúng.

[EDIT] Hai bài báo trên tham khảo cụ thể về TDD và cho thấy thời gian phát triển ban đầu tăng 15 - 35% sau khi áp dụng TDD, nhưng giảm 40-90% các khiếm khuyết trước khi phát hành. Nếu bạn không thể có được các phiên bản văn bản đầy đủ, tôi khuyên bạn nên sử dụng Google Scholar để xem liệu bạn có thể tìm thấy phiên bản công khai không.


14
Nghiên cứu đầu tiên so sánh nhanh + TDD với các dự án thác nước, kết quả sẽ phù hợp hơn nếu so sánh hai nhóm nhanh nhẹn. Nghiên cứu thứ hai đề cập đến các nghiên cứu khác cho thấy rất ít hoặc không có phần thưởng chất lượng cho các dự án TDD. Và khi bạn so sánh các ước tính của ban quản lý về thời gian thêm cần thiết cho TDD, thì hai đội có chuyên môn về miền cao, nhưng họ cũng có phạm vi kiểm tra thấp hơn 20%. Điều này khẳng định trải nghiệm của riêng tôi, tôi thấy sự đảm bảo quan trọng hơn nhiều trong các hệ thống mà tôi chưa từng làm việc, trong khi thử nghiệm là một trở ngại cho mọi thứ khác.
Tìm hiểuCocos2D

Cả hai nghiên cứu đều không so sánh mô hình quá trình so sánh với chỉ thay đổi testmethofology. Đó là dành thời gian sử dụng trên UT thực sự tốt hơn dành cho ví dụ. Thử nghiệm hệ thống. Vì thế, nó cũng có thể là "nếu chúng ta kiểm tra thông minh hơn có giúp được gì không".
Rune FS

1
Vậy điều gì sẽ xảy ra nếu chi phí sửa lỗi phát hành bài đăng là 0,01% trong tổng số phát triển? TDD sẽ là một khoản đầu tư khủng khiếp trong trường hợp đó. Và nếu các lỗi là ít? Những% s này không có nghĩa gì nếu không có ngữ cảnh. Để công bằng tôi vẫn chưa đọc toàn bộ nghiên cứu. Nhưng vì bài viết của bạn rất hữu ích (liên kết tốt) nhưng không trả lời câu hỏi liên quan đến ROI, IMO.
Bắt đầu

1
@Instine May mắn thay (?) Có bằng chứng tốt cho thấy đây không phải là trường hợp. Sửa các lỗi sau khi phát hành đắt hơn theo cấp số nhân so với các lỗi được phát hiện sớm trong quá trình phát triển (đó là những gì TDD làm). Trong bối cảnh đó, chi phí 0,01% trong tổng số phát triển cho tất cả các lỗi sau khi phát hành dường như là không thể. (Để biết chi tiết, hãy xem Code Complete , đặc biệt là Boehm & al. , Hiểu và kiểm soát chi phí phần mềm, W, IEEE Trans Softw Eng (1988)).
Konrad Rudolph

Có lẽ đáng chú ý là nghiên cứu đầu tiên có cỡ mẫu gồm 24 lập trình viên (làm việc theo cặp, vì vậy 12 nhóm). Tôi không chắc cỡ mẫu hợp lệ sẽ là bao nhiêu, nhưng những cái này có vẻ thấp. Có lẽ ai khác biết?
Zachary Yates

29

"Tôi phải thuyết phục các lập trình viên khác và quan trọng hơn là các nhân viên quản lý, rằng tất cả thời gian dành cho việc học khung kiểm tra, viết bài kiểm tra, giữ cho họ cập nhật, v.v. sẽ tự trả tiền, và sau đó là một số. "

Tại sao?

Tại sao không làm điều đó, lặng lẽ và rời rạc. Bạn không cần phải làm tất cả cùng một lúc. Bạn có thể làm điều này trong những mảnh nhỏ.

Việc học khung mất rất ít thời gian.

Viết một bài kiểm tra, chỉ một, mất rất ít thời gian.

Không có thử nghiệm đơn vị, tất cả những gì bạn có là sự tự tin về phần mềm của bạn. Với một bài kiểm tra đơn vị, bạn vẫn có sự tự tin của mình, cộng với bằng chứng rằng ít nhất một bài kiểm tra đã vượt qua.

Đó là tất cả những gì nó cần. Không ai cần biết bạn đang làm điều đó. Cứ làm đi.


9
Các quầy đậu không thể nói thử nghiệm đơn vị từ phần còn lại của mã nếu cuộc sống của họ phụ thuộc vào nó. Tôi ủng hộ đề nghị chỉ làm điều đó. Mặc dù vậy, có một cảnh báo: Nếu bạn không đơn độc, bạn cần các nhà phát triển đồng nghiệp của mình nắm bắt thực tiễn này. Nếu không, họ sẽ vô tình phá vỡ các bài kiểm tra của bạn.
Thomas Eyde

Chỉ cần làm điều đó và đừng nói với họ, và bán ý tưởng cho các trường đại học của bạn tại giờ giải lao cà phê ;-)
Johan

3
Bởi vì bạn sẽ bị sa thải khi bạn liên tục không đạt được thời hạn?
Andrew

3
@Neko: Các bài kiểm tra đơn vị không thêm "một chút chi phí". Họ giảm khối lượng công việc tổng thể bằng cách ngăn chặn một lũ sai lầm ngớ ngẩn. Công việc không phát triển; nó chỉ đơn giản là thay đổi bản chất từ ​​mã xấu sang kiểm tra đơn vị tốt và mã tốt.
S.Lott

1
Các quầy đậu muốn các kỹ sư của họ cung cấp giải pháp âm thanh cho các vấn đề miền. Bạn chỉ có thể viết bài kiểm tra như là một phần của giải pháp của bạn. Họ thậm chí sẽ không thông báo. Nếu họ yêu cầu bạn chỉ có thể nói với họ rằng bạn đang dành nhiều thời gian hơn cho nó để đảm bảo rằng nó mạnh mẽ và sẽ không yêu cầu làm lại. Nếu bạn viết bài kiểm tra đơn vị SUGGEST cho họ, bạn đang yêu cầu sự chấp thuận của họ về điều gì đó mà họ không biết gì.
Yorkshireman

16

Tôi có một cách tiếp cận khác về điều này:

Điều gì đảm bảo bạn có mã của bạn là chính xác? Hoặc nó không phá vỡ giả định X khi ai đó trong nhóm của bạn thay đổi func1 ()? Nếu không có bài kiểm tra đơn vị giữ cho bạn 'trung thực', tôi không chắc bạn có nhiều sự đảm bảo.

Khái niệm giữ các bài kiểm tra cập nhật là thú vị. Các bài kiểm tra thường không phải thay đổi. Tôi đã nhận được gấp 3 mã kiểm tra so với mã sản xuất và mã kiểm tra đã được thay đổi rất ít. Tuy nhiên, đó là điều cho phép tôi ngủ ngon vào ban đêm và điều cho phép tôi nói với khách hàng rằng tôi tin tưởng rằng tôi có thể thực hiện chức năng Y mà không làm hỏng hệ thống.

Có lẽ trong giới hàn lâm có bằng chứng, nhưng tôi chưa bao giờ làm việc ở bất cứ đâu trong thế giới thương mại nơi mà bất cứ ai cũng sẽ trả tiền cho một bài kiểm tra như vậy. Tuy nhiên, tôi có thể nói với bạn rằng nó hoạt động tốt với tôi, mất ít thời gian để làm quen với khung kiểm tra và kiểm tra viết khiến tôi thực sự nghĩ về yêu cầu của mình và thiết kế, hơn rất nhiều so với khi tôi làm việc trong các nhóm đã viết không có bài kiểm tra.

Đây là nơi nó tự trả tiền: 1) Bạn có niềm tin vào mã của mình và 2) Bạn gặp vấn đề sớm hơn so với cách khác. Bạn không có anh chàng QA nói "này, bạn không bận tâm đến việc kiểm tra hàm xyz () phải không? Anh ta không tìm thấy lỗi đó vì bạn đã tìm thấy nó một tháng trước. Điều đó tốt cho Anh ấy, tốt cho bạn, tốt cho công ty và tốt cho khách hàng.

Rõ ràng đây là giai thoại, nhưng nó đã làm việc kỳ diệu đối với tôi. Không chắc chắn tôi có thể cung cấp cho bạn bảng tính, nhưng khách hàng của tôi rất vui và đó là mục tiêu cuối cùng.


Anh chàng QA của tôi khá sắc sảo nhưng anh ta không nhìn vào mã, nhưng thật dễ dàng để nói giới hạn không được kiểm tra.
itmatt

Hoàn toàn đồng ý về thử nghiệm đơn vị buộc bạn phải suy nghĩ nhiều hơn về thiết kế và tính chính xác của mình thay vì mã một cách liều lĩnh
chakrit

7
Khách hàng không trả tiền cho chúng tôi để viết bài kiểm tra. Sau đó, một lần nữa, họ cũng không trả tiền cho chúng tôi để viết mã. Họ trả tiền cho chúng tôi để giải quyết vấn đề của họ, và khi đối mặt, tôi cá là họ cũng muốn các vấn đề được giải quyết. Đưa ra bằng chứng, khách hàng không thể tin được là không muốn đảm bảo khoản đầu tư của họ.
Thomas Eyde

10

Chúng tôi đã chứng minh bằng chứng cứng rằng có thể viết phần mềm tào lao mà không cần Kiểm thử đơn vị. Tôi tin rằng thậm chí còn có bằng chứng cho phần mềm crappy với Kiểm thử đơn vị. Nhưng đây không phải vấn đề.

Kiểm thử đơn vị hoặc Phát triển hướng thử nghiệm (TDD) là một kỹ thuật Thiết kế, không phải là kỹ thuật kiểm tra. Mã được kiểm tra bằng văn bản trông hoàn toàn khác với mã không.

Mặc dù đây không phải là câu hỏi của bạn, tôi tự hỏi liệu đây có thực sự là cách dễ nhất để đi xuống đường và trả lời các câu hỏi (và đưa ra bằng chứng có thể bị thách thức bởi các báo cáo khác) có thể bị hỏi sai. Ngay cả khi bạn tìm thấy bằng chứng cứng cho trường hợp của bạn - người khác có thể tìm thấy bằng chứng cứng chống lại.

Có phải việc kinh doanh của quầy đậu để xác định người kỹ thuật nên làm việc như thế nào? Có phải họ đang cung cấp các công cụ rẻ nhất trong mọi trường hợp bởi vì họ tin rằng bạn không cần những công cụ đắt tiền hơn?

Lập luận này hoặc là chiến thắng dựa trên niềm tin (một trong những giá trị cơ bản của các đội nhanh nhẹn) hoặc bị mất dựa trên sức mạnh vai trò của bên chiến thắng. Ngay cả khi những người đề xướng TDD giành chiến thắng dựa trên sức mạnh vai trò, tôi vẫn coi đó là mất.


13
nghe, nghe :) Rất nhiều bằng chứng cứng cho TDD cũng đến từ các đội rất có kinh nghiệm đã có kết quả tốt mà không có nó. TDD chỉ cải thiện kết quả của họ thay vì tạo ra chúng trong không khí mỏng. ROI thực sự đang tuyển dụng các lập trình viên giỏi và để họ quyết định cách làm.
workmad3

"Có phải việc kinh doanh của quầy đậu để xác định người kỹ thuật nên làm việc như thế nào không?" -> tất cả các quyết định kinh doanh đi xuống tiền. Tuy nhiên, câu trả lời hay, +1
jcollum

@jcollum nhưng cách bạn thực hiện công việc của mình không liên quan gì đến tiền và nếu bạn muốn mái vòm phải chịu trách nhiệm, hãy để họ quyết định họ làm gì TẠI SAO bạn đã hỏi họ
Rune FS

TDD không phải là một kỹ thuật thiết kế, nó chỉ là một kỹ thuật mã hóa. blog.ploeh.dk/2010/12/22/TheTDDApostate Nhiều người bình luận không đồng ý rằng TDD liên quan đến tái cấu trúc (là một kỹ thuật thiết kế) nhưng tái cấu trúc không bao hàm TDD. Người ta có thể tái cấu trúc mà không cần kiểm tra, tái cấu trúc phức tạp lớn ảnh hưởng đến các bài kiểm tra đơn vị, tức là các bài kiểm tra cũng cần phải được cấu trúc lại để có thể trở thành màu xanh không hợp lệ / sai; tái cấu trúc đơn giản hơn nhiều không ảnh hưởng đến các thử nghiệm nhưng nguy cơ lỗi thấp hơn - bởi vì tái cấu trúc là đơn giản.
KolA

@KolA tốt, với sự phản ánh 10,5 năm sau câu trả lời này, tôi có thể nói rằng nó phòng thủ hơn một chút ngày hôm nay, nhưng vẫn: Tôi không tranh luận rằng TDD là kỹ thuật thiết kế duy nhất bạn cần và Mark mở ra với nó một kỹ thuật thiết kế tốt trước khi kết luận rằng nó hoàn toàn không phải là một. Tôi làm suy yếu ý kiến ​​của anh ấy và nói rằng nó không phải là kỹ thuật thiết kế duy nhất . Mỗi mã mà tôi từng viết TDD trông khác với mã mà tôi đã viết mà không có. Tôi gọi đó là kết quả của thiết kế. Tôi làm việc tốt nhất với bảng trắng, thảo luận và các công cụ khác, ngoài TDD. Nhưng cảm ơn vì liên kết
Olaf Kock


6

Nói thêm về TDD hơn là kiểm tra đơn vị nghiêm ngặt, đây là một liên kết đến việc cải thiện chất lượng thông qua phát triển theo hướng kiểm tra: kết quả và kinh nghiệm của bốn nhóm nghiên cứu công nghiệp , bởi Nagappan, E. Michael Maximilien, Thirumalesh Bhat và Laurie Williams. bài báo được xuất bản bởi nhóm Kỹ thuật phần mềm và đo lường thực nghiệm (ESM) của Microsoft và đã được đề cập ở đây.

Nhóm nghiên cứu nhận thấy rằng các nhóm TDD đã tạo ra mã tốt hơn từ 60% đến 90% (về mật độ khiếm khuyết) so với các nhóm không TDD. Tuy nhiên, các đội TDD mất từ ​​15% đến 35% để hoàn thành các dự án của họ.


5

Đây là một bài đọc tuyệt vời và thú vị về một anh chàng thay đổi công ty của mình từ bên trong. Nó không giới hạn ở TDD. http://jamesshore.com/Change-Derator/ Lưu ý rằng ông đã không thuyết phục được "quầy đậu" trong một thời gian và thay vào đó đã thực hiện "chiến thuật du kích".


liên kết có vẻ thú vị ... đáng để kiểm tra lại: thay đổi quy trình làm việc của tổ chức ...
pasty khó chịu

5

Chỉ cần thêm thông tin vào các câu trả lời này, có hai tài nguyên phân tích tổng hợp có thể giúp tìm ra các hiệu ứng năng suất & chất lượng trên nền tảng học thuật và công nghiệp:

Giới thiệu của biên tập viên khách: TDD từ Nghệ thuật lập trình không sợ hãi [ link ]

Tất cả các nhà nghiên cứu dường như đồng ý rằng TDD khuyến khích tập trung vào nhiệm vụ tốt hơn và bảo hiểm thử nghiệm. Thực tế của nhiều thử nghiệm không nhất thiết có nghĩa là chất lượng phần mềm sẽ tốt hơn, nhưng sự chú ý của lập trình viên ngày càng tăng đối với thiết kế thử nghiệm vẫn rất đáng khích lệ. Nếu chúng ta xem thử nghiệm là lấy mẫu một lượng rất lớn các hành vi tiềm năng, thì nhiều thử nghiệm hơn có nghĩa là một mẫu kỹ lưỡng hơn. Trong phạm vi mà mỗi bài kiểm tra có thể tìm thấy một vấn đề quan trọng mà không ai trong số các bài kiểm tra khác có thể tìm thấy, các bài kiểm tra rất hữu ích, đặc biệt là nếu bạn có thể chạy chúng với giá rẻ.

Bảng 1. Tóm tắt các nghiên cứu thực nghiệm được lựa chọn về phát triển dựa trên thử nghiệm: những người tham gia ngành *

https://www.computer.org/cms/Computer.org/dl/mags/so/2007/03/fftime/s3024t1.gif

Bảng 2. Tóm tắt các nghiên cứu thực nghiệm được lựa chọn về TDD: người tham gia học tập *

nhập mô tả hình ảnh ở đây

Tác động của phát triển dựa trên thử nghiệm đối với chất lượng và năng suất bên ngoài: Phân tích tổng hợp [ link ]

Trừu tượng:

Bài viết này cung cấp một phân tích tổng hợp có hệ thống của 27 nghiên cứu điều tra tác động của Phát triển dựa trên thử nghiệm (TDD) đến chất lượng và năng suất mã bên ngoài.

Kết quả chỉ ra rằng, nói chung, TDD có ảnh hưởng tích cực nhỏ đến chất lượng nhưng ít hoặc không ảnh hưởng rõ rệt đến năng suất. Tuy nhiên, phân tích phân nhóm đã tìm thấy cả sự cải thiện chất lượng và giảm năng suất sẽ lớn hơn nhiều trong các nghiên cứu công nghiệp so với các nghiên cứu học thuật. Một sự sụt giảm năng suất lớn hơn đã được tìm thấy trong các nghiên cứu trong đó sự khác biệt về nỗ lực thử nghiệm giữa TDD và quy trình của nhóm kiểm soát là rất đáng kể. Một sự cải thiện lớn hơn về chất lượng cũng được tìm thấy trong các nghiên cứu học thuật khi sự khác biệt trong nỗ lực kiểm tra là đáng kể; tuy nhiên, không có kết luận nào có thể được rút ra liên quan đến các nghiên cứu công nghiệp do thiếu dữ liệu.

Cuối cùng, ảnh hưởng của trải nghiệm nhà phát triển và quy mô nhiệm vụ khi các biến số của người điều hành đã được nghiên cứu và mối tương quan tích cực có ý nghĩa thống kê đã được tìm thấy giữa kích thước nhiệm vụ và mức độ cải thiện chất lượng.


4

Vâng, có một số công ty lớn yêu cầu bạn sử dụng thử nghiệm đơn vị nhưng nếu bạn là một công ty nhỏ tại sao lại bắt chước những công ty lớn?

Đối với tôi khi tôi bắt đầu thử nghiệm đơn vị, nhiều năm trước, (ngày nay chúng tôi chủ yếu sử dụng mô hình hành vi ) đó là vì tôi không thể kiểm soát tất cả các đường dẫn trong một ứng dụng.

Tôi đã quen với việc lập trình dưới cùng và REPL vì vậy khi tôi có Bài kiểm tra đơn vị (Một bài kiểm tra cho mọi chức năng), nó giống như mang lại một REPL cho các ngôn ngữ có rất nhiều biên dịch. Nó mang lại niềm vui cho mỗi dòng mã tôi đã viết. Tôi cảm thấy chúa. Tôi thích nó. Tôi không cần một báo cáo để nói với tôi rằng tôi đã bắt đầu viết mã tốt hơn nhanh hơn. Sếp của tôi không cần báo cáo để thông báo rằng vì chúng tôi làm những việc điên rồ nên chúng tôi đột nhiên không bao giờ bỏ lỡ thời hạn. Sếp của tôi không cần báo cáo để nhận thấy rằng số lỗi "đơn giản" giảm từ (đến nhiều) xuống gần như không vì điều này rất lạ khi viết mã phi sản xuất.

Như một poster khác đã được viết, bạn không sử dụng TDD để Kiểm tra (xác minh). Bạn viết nó để nắm bắt đặc tả, hành vi của đơn vị của bạn (đối tượng, mô-đun, chức năng, lớp, máy chủ, cụm) hoạt động.

Có rất nhiều thất bại và câu chuyện thành công khi chuyển sang một mô hình phát triển phần mềm khác nhau ở rất nhiều công ty.

Tôi chỉ bắt đầu sử dụng nó bất cứ khi nào tôi có một cái gì đó mới để viết. Có một câu nói cũ rất khó để tôi dịch sang tiếng Anh nhưng:

Bắt đầu với một cái gì đó đơn giản đến mức bạn không nhận thấy rằng bạn làm điều đó. Khi tập luyện cho một cuộc đua marathon, hãy bắt đầu bằng cách đi bộ 9 mét và chạy 1 mét, lặp lại.


Vì vậy, tôi chỉ nên làm điều đó? Nó được đảm bảo để làm việc, và nó không thành vấn đề nếu không có ai làm điều đó với tôi?
quạ

Trên thực tế, đây là Thử nghiệm Joel: joelonsoftware.com/articles/fog0000000043.html . Với tôi có vẻ như bạn có thể gặp nhiều vấn đề hơn là thiếu bài kiểm tra giải thưởng Nobel về bài kiểm tra đơn vị
Jonke

4

Có số liệu thống kê chứng minh rằng việc sửa một lỗi được tìm thấy trong bài kiểm tra đơn vị / tích hợp có chi phí thấp hơn nhiều lần so với sửa lỗi một lần trên hệ thống trực tiếp (chúng dựa trên việc giám sát hàng ngàn dự án thực tế).

Chỉnh sửa : ví dụ, như đã chỉ ra, cuốn sách " Hoàn thành mã " báo cáo về các nghiên cứu đó (đoạn 20.3, "Hiệu quả tương đối của các kỹ thuật chất lượng"). Nhưng cũng có nghiên cứu tư nhân trong lĩnh vực tư vấn cũng chứng minh điều đó.


1
Điều này được đề cập trong Hoàn thành mã của Steve McConnell , đây là một cuốn sách mà bạn có thể muốn có trên giá sách của mình vì những lý do khác.
Robert Rossney

Điều đó không liên quan đến phương pháp kiểm tra nhưng đến khi trong quá trình, một lỗi được báo cáo và hơn nữa thời gian sẽ tốt hơn để tìm lỗi trong thông số kỹ thuật vì chi phí sửa chúng khi phát hiện được khi phát triển được báo cáo đắt gấp 1000 lần (a hệ số 10 trên mỗi giai đoạn phát triển)
Rune FS

OTOH, nếu bạn chỉ khắc phục các sự cố mà mọi người thực sự gặp phải trong các tình huống thực tế, có lẽ bạn sẽ phải sửa ít lỗi hơn rất nhiều. Tôi cũng không rõ rằng việc sửa lỗi sớm hơn thực sự rẻ hơn, vì việc phát hiện ra lỗi trong thông số kỹ thuật có thể đòi hỏi nhiều nỗ lực hơn so với việc phát hiện cùng một lỗi trong quá trình thực hiện và phát hiện lỗi là một phần chi phí của lỗi. Đây là một trong những điều mà mọi người chỉ tin vì nó nghe có vẻ tự nhiên, nhưng tôi chưa bao giờ thấy một nghiên cứu âm thanh nào cho thấy hiệu quả.
LKM

0

Tôi có một bộ điểm dữ liệu cho việc này - từ một kinh nghiệm đã bán cho tôi trong các bài kiểm tra đơn vị.

Nhiều mặt trăng trước đây tôi là một sinh viên mới tốt nghiệp làm việc trong một dự án VB6 lớn và có dịp viết một khối lớn mã thủ tục được lưu trữ. Trong hệ thống con tôi đã viết, nó chiếm khoảng 1/4 toàn bộ cơ sở mã - khoảng 13.000 LỘC trong số 50 nghìn hoặc hơn.

Tôi đã viết một tập các thử nghiệm đơn vị cho các thủ tục được lưu trữ nhưng thử nghiệm đơn vị mã UI VB6 không thực sự khả thi nếu không có các công cụ như Rational Robot; ít nhất nó đã không trở lại sau đó.

Số liệu thống kê từ QA trên tác phẩm là khoảng 40 hoặc 50 lỗi được nêu ra trên toàn bộ hệ thống con, trong đó hai lỗi bắt nguồn từ các thủ tục được lưu trữ. Đó là một khiếm khuyết trên 6.500 dòng mã so với 1 trên 1.000-1.200 hoặc hơn trên toàn bộ. Cũng nên nhớ rằng, khoảng 2/3 mã VB6 là mã soạn sẵn để xử lý lỗi và ghi nhật ký, giống hệt nhau trong tất cả các quy trình.

Nếu không có quá nhiều thao tác tay, bạn có thể quy định ít nhất là một sự cải thiện về mức độ nghiêm trọng đối với các thử nghiệm đơn vị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.