Improving the State of Undergraduate Software Testing Education

W. Eric Wong · 2020

Abstract Improving the State of Undergraduate Software Testing Education W. Eric Wong Department of Computer Science University of Texas at Dallas Email: [email protected] has become fundamental to our everyday life. Regardless of age, gender, occupation,nationality, etc., each of us depends on software in some way, either directly or indirectly. Yetsoftware is far from defect-free and very large sums of money are spent each year only to fixand maintain defective software. According to a study by NIST in 2002, software bugs costthe U.S. economy an estimated $59.5 billion annually (about 0.6% of GDP). The same studyalso found that more than one third of these costs could be eliminated by an improved testinginfrastructure. Furthermore, these estimates have not taken into account any potential deathsor catastrophic financial loss associated with the failure of mission critical software. Thesefigures would be much higher if the study were conducted today.Software testing continues to be the primary approach used to ensure the development of highquality software. It is estimated that more than 60% of the cost of software development isspent on testing and debugging. However, a large part of the problem is not as much theamount of testing that is performed, as much as it is “who” the software is tested by, and“how” these testers do it. Most of the personnel responsible for software testing are softwareengineers with a very basic background in testing, mostly restricted to the application of asmall set of testing tools. A simple knowledge of a few testing tools cannot hope to substitutefor a strong foundation in software testing principles and methodologies. The fact is that asignificant number of the people responsible for testing the software that we rely on are notadequately prepared for the task. If we were to trace this deficiency in software testingbackground back to its source, we would end up at the educational institutions that areresponsible for teaching and training people to test software. Thus, if today’s software testersare not sufficiently armed with the knowledge required to test software well, then it is mostlikely because they have not been adequately trained.The subject of software testing rarely appears in undergraduate curriculums, despite its wellestablished place in classical computer science literature and its extensive use in industry.Many academic computer science programs only briefly cover software testing, limiting thetopic to non-mandatory software engineering courses. Furthermore, even if introductorycourses cover some aspects of software testing, the actual application of testing practices isonly explored in-depth at the senior and graduate levels. Offering a single elective course isnot a complete solution to the issue of software testing; we believe that students shouldrepeatedly practice software testing concepts and techniques through several courses in theundergraduate curriculum, from beginning programming courses to the senior-level finalproject. In this way, students are more likely to incorporate software testing into theirprogramming style if they experience the benefits of effective testing early in their career, andthen continue to make use of what they learn in subsequent courses and projects. As a result,students are better-equipped to produce more reliable and dependable software in a morecost-effective way, making them more attractive hires for potential employers after graduation.We will report our classroom experience and lessons learned from an NSF sponsored projectwhich incorporates software testing into multiple computer science and software engineeringcourses.

Read the paper · More papers on PaperTik