Peter Tucker, Whitworth University
For most undergraduate institutions, a degree in computer science has a heavy emphasis on programming skills. Students learn programming fundamentals, data structures, and software development skills. Along the way, they also learn data management, operating system concepts, and computer architecture. Rarely, however, does a degree in computer science include the skills, techniques, and thought processes involved in software quality assurance. Indeed, anecdotal evidence suggests that quality assurance is a career choice considered by some academics as a “lesser” craft. We believe that a course in quality assurance is an important elective in a computer science education; that it will open opportunities for students and make them more attractive to employers looking for QA engineers. Further, we believe a course in quality assurance will help those students who take positions in software development or management better understand their roles in assuring quality in software.
We began offering a course in quality assurance in 2006. Our QA course has gone through four iterations. The most recent iteration focused on the five views of quality outlined by Garvin and then applied to software quality assurance by Kitchenham and Pfleeger. Garvin’s five views are: Manufacturing, Production, User, Value, and Transcendental. By focusing on each of these five views, students are able to take a more structured approach to thinking about quality assurance, and are better able to understand how quality assurance fits in with the difference aspects of software engineering.
This paper outlines our most recent iteration of the QA course. We discuss the different views and how they were presented to students, as well as the various activities students participated in during the semester. We discuss what went well and what kinds of things can be improved. It is our hope that a good discussion can take place between those in academia and industry practitioners to ensure that the exposure students get to QA skills and techniques is appropriate, and does indeed prepare graduates with degrees in computer science for various careers in software engineering.