So Sánh Các Phương Pháp Phát Hiện Trong Kiểm Tra Yêu Cầu Phần Mềm: Một Sự Sao Chép Dùng Chủ Thể Chuyên Nghiệp

Empirical Software Engineering - Tập 3 - Trang 355-379 - 1998
Adam Porter1, Lawrence Votta2
1Computer Science Department, University of Maryland, Maryland
2Software Production Research Department, Lucent Technologies, Naperville

Tóm tắt

Các tài liệu xác định yêu cầu phần mềm (SRS) thường được xác thực bằng phương pháp thủ công. Một trong những quy trình như vậy là kiểm tra, trong đó nhiều người đánh giá phân tích độc lập toàn bộ hoặc một phần của tài liệu và tìm kiếm lỗi. Các lỗi này sau đó được thu thập tại một cuộc họp giữa các người đánh giá và tác giả. Thông thường, các người đánh giá sử dụng phương pháp Ad Hoc hoặc Checklist để phát hiện lỗi. Những phương pháp này buộc tất cả các người đánh giá phải dựa vào các kỹ thuật không có hệ thống để tìm kiếm một loạt các lỗi khác nhau. Chúng tôi giả thuyết rằng một phương pháp dựa trên kịch bản, trong đó mỗi người đánh giá sử dụng các kỹ thuật có hệ thống khác nhau để tìm kiếm các loại lỗi cụ thể khác nhau, sẽ có tỷ lệ thành công cao hơn một cách đáng kể. Trong nghiên cứu trước đó, chúng tôi đã đánh giá giả thuyết này bằng cách sử dụng 48 sinh viên cao học ngành khoa học máy tính làm đối tượng. Chúng tôi hiện đã sao chép thí nghiệm này bằng cách sử dụng 18 nhà phát triển chuyên nghiệp từ Lucent Technologies làm đối tượng. Các mục tiêu của chúng tôi là (1) mở rộng tính xác thực bên ngoài của kết quả bằng cách nghiên cứu các nhà phát triển chuyên nghiệp, và (2) so sánh hiệu suất của các chuyên gia với sinh viên để hiểu rõ hơn về khả năng tổng quát của kết quả từ các thí nghiệm sinh viên ít tốn kém hơn. Đối với mỗi cuộc kiểm tra, chúng tôi đã thực hiện bốn phép đo: (1) tỷ lệ phát hiện lỗi cá nhân, (2) tỷ lệ phát hiện lỗi nhóm, (3) tỷ lệ phần trăm lỗi lần đầu được xác định tại cuộc họp thu thập (tỷ lệ tăng cuộc họp), và (4) tỷ lệ phần trăm lỗi lần đầu được xác định bởi một cá nhân, nhưng không bao giờ được báo cáo tại cuộc họp thu thập (tỷ lệ tổn thất cuộc họp). Đối với cả chuyên gia và sinh viên, kết quả thí nghiệm cho thấy (1) phương pháp Kịch bản có tỷ lệ phát hiện lỗi cao hơn cả phương pháp Ad Hoc lẫn Checklist, (2) các người đánh giá Checklist không hiệu quả hơn các người đánh giá Ad Hoc, (3) các cuộc họp thu thập không tạo ra sự cải thiện ròng về lỗi và tỷ lệ phát hiện — các tăng trưởng cuộc họp đã bị bù đắp bởi tổn thất cuộc họp. Cuối cùng, mặc dù các phép đo cụ thể khác nhau giữa các nhóm chuyên nghiệp và sinh viên, kết quả của hầu hết tất cả các kiểm định thống kê là giống hệt nhau. Điều này gợi ý rằng các sinh viên cao học đã cung cấp một mô hình phù hợp cho nhóm chuyên nghiệp và rằng chi phí lớn hơn nhiều để tiến hành nghiên cứu với các chuyên gia có thể không luôn cần thiết.

Từ khóa

#yêu cầu phần mềm #kiểm tra phần mềm #phát hiện lỗi #phương pháp Kịch bản #Ad Hoc #Checklist #nghiên cứu chuyên nghiệp

Tài liệu tham khảo

Ardis, M. A. 1994. Lessons from using basic LOTOS. Proceedings of the Sixteenth International Conference on Software Engineering. Sorento, Italy, 5–14. Basili, V. R., and Weiss, D. M. 1981. Evaluation of a software requirements document by analysis of change data. Proceedings of the Fith International Conference on Software Engineering. San Diego, CA, 314–323. Boehm, B. W. 1981. Software Engineering Economics. Englewood Cliffs, New Jersey: Prentice Hall Inc. Box, G. E. P., Hunter, W. G., and Hunter, J. S. 1978. Statistics for Experimenters. New York: John Wiley & Sons. Eick, S. G., Loader, C. R., Long, M. D., VanderWiel, S. A., and Votta, L. G. 1992. Estimating software fault content before coding. Proceedings of the Fourteenth International Conference on Software Engineering. Melborne, Australia, 59–65. Fagan, M. E. 1976. Design and code inspections to reduce errors in program development. IBM Systems Journal 15(2): 182–211. Gerhart, S., Craigen, D., and Ralston, T. 1994. Experience with formal methods in critical systems. IEEE Software 11(1): 21–28. Heiberger, R. M. 1989. Computation for the Analysis of Designed Experiments. New York: John Wiley & Sons. Heninger, K. L. 1980. Specifying software requirements for complex systems: New techniques and their applications. IEEE Transactions on Software Engineering 6: 2–13. Humphery, W. S. 1989. Managing the Software Process. Reading, Massachusetts: Addison-Wesley Publishing Co. IEEE. 1984. IEEE Guide to Software Requirements Specifications. Soft. Eng. Tech. Comm. of the IEEE Computer Society. IEEE Std 830-1984. IEEE. 1989. IEEE Standard for Software Reviews and Audits. Soft. Eng. Tech. Comm. of the IEEE Computer Society. IEEE Std 1028-1988. Judd, C. M., Smith, E. R., and Kidder, L. H. 1991. Research Methods in Social Relations. Fort Worth, Texas: Holt, Rinehart and Winston, Inc. Kirby, J. 1984. Example NRL/SCR software requirements for an automobile cruise control and monitoring system. Wang Institute of Graduate Studies, Bedford, MA, TR-87-07. Parnas, D. L., and Weiss, D. M. 1985. Active design reviews: principles and practices. Proceedings of the Eighth International Conference on Software Engineering. London, UK, 215–222. Porter, A. A., Votta, L. G., and Basili, V. R. 1994. Comparing detection methods for software requirement inspections: A replicated experiment. IEEE Transactions on Software Engineering 21: 563–575. Schneider, G. M., Martin, J., and Tsai, W. T. 1992. An experimental study of fault detection in user requirements. ACM Transactions on Software Engineering and Methodology 1: 188–204. vanSchouwen, J. 1990. The A-7 requirements model: Re-examination for real-time systems and an application to monitoring systems. Queen's University, Kingston, Ontario, Canada, TR-90-276. Votta, L. G. 1993. Does every inspection need a meeting? Proceedings of ACM SIGSOFT '93 Symposium on Foundations of Software Engineering. Los Angeles, California, 107–114. Wheeler, D. J. 1987. Understanding Industrial Experimentation. Knoxville, TN: SPC Press Inc. Wood, W. G. 1989. Temporal logic case study. Software Engineering Institute, Pittsburgh, PA, CMU/SEI-89-TR-24.