Experiences Using Defect Checklists in Software Engineering Education

There are numerous challenges in teaching software engineering courses, as such courses typically cover multiple technical, managerial and social topics. Within software engineering, software quality assurance (SQA) is a complex area to teach, because it involves aspects from all these three types of topics. Given the complexity of the area and the limited amount of time available to teach a software engineering course educators need to ask the question "How can we effectively teach some of the most important SQA issues and techniques, highlighting the critical relationship between quality and the time and cost of software development?". Here, we present a survey of the literature on checklists and our experiences using defect checklists in software engineering classes at both graduate and undergraduate levels. The study involves 11 teams, who used the checklists to collect defect data on technical deliverables, in both internal (peer) reviews and external (instructor) reviews. Using an iterative waterfall model, students were required to correct the defects discovered in internal and external reviews; the purpose of this was to reinforce the relationship between the quality of the deliverables and the time and effort required for correcting defects. The defect data are analyzed with respect to five conjectures; the strengths and limitations of the approach are discussed using the results. Improvements to the approach and alternatives are suggested, which could aid educators in teaching this important area of software engineering.

[1]  Bernd Bruegge,et al.  Object-oriented software engineering , 1999 .

[2]  Claes Wohlin,et al.  An Experimental Comparison of Usage-Based and Checklist-Based Reading , 2003, IEEE Trans. Software Eng..

[3]  Bente Anda,et al.  Towards an inspection technique for use case models , 2002, SEKE '02.

[4]  Peter J. Middleton,et al.  Software Inspection , 1994, J. Inf. Technol..

[5]  Stefan Biffl,et al.  Evaluating the accuracy of defect estimation models based on inspection data from two inspection cycles , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[6]  Magne Jørgensen,et al.  A preliminary checklist for software cost management , 2003, Third International Conference on Quality Software, 2003. Proceedings..

[7]  Bernd Bruegge,et al.  Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition , 2003 .

[8]  Soren Lauesen,et al.  Software Requirements: Styles & Techniques , 2002 .

[9]  Shari Lawrence Pfleeger,et al.  Solid Software , 2001 .

[10]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[11]  S.M. Dascalu,et al.  Computer science capstone course senior projects: from project idea to prototype implementation , 2005, Proceedings Frontiers in Education 35th Annual Conference.

[12]  João Batista Camargo,et al.  Best Practices in Code Inspection for Safety-Critical Software , 2003, IEEE Softw..

[13]  Adam A. Porter,et al.  An experiment to assess different defect detection methods for software requirements inspections , 1994, Proceedings of 16th International Conference on Software Engineering.

[14]  Joseph S. Sherif,et al.  Software security checklist for the software life cycle , 2003, WET ICE 2003. Proceedings. Twelfth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, 2003..

[15]  Claes Wohlin,et al.  Defect content estimations from review data , 1998, Proceedings of the 20th International Conference on Software Engineering.

[16]  Marc Roper,et al.  The Development and Evaluation of Three Diverse Techniques for Object-Oriented Code Inspection , 2003, IEEE Trans. Software Eng..

[17]  Bill Brykczynski,et al.  A survey of software inspection checklists , 1999, SOEN.

[18]  S. Lauesen Software Requirements Styles and Techniques , 2001 .