The Alignment of Software Testing Skills of IS Students with Industry Practices - A South African Perspective

Introduction Software testing is accepted as an integral part of the systems development process. Testing proves that the system works correctly as it was intended to and that it demonstrates that the developers have understood and met customers' requirements (Tayntor, 1998). To ensure quality it is crucial that systems are tested rigorously, as failing to do so can cause serious malfunctions and a software developer can obtain a reputation for delivering inferior-quality products. For students to be effective in industry, a close alignment between testing practices in industry and those to which a student is exposed to during undergraduate study is essential. There is a major emphasis on programming and systems development in the Information Systems (IS) degree curriculum at the University of Cape Town (UCT). As students progress through the curriculum each year, the percentage of the overall marks allocated to the practical systems development component of the course increases. A requirement for both third and fourth year IS courses, is a systems development group project. * Third year student groups are expected to go out into industry to find a sponsor whose business specifications match the generic specifications given to them. Project sponsors then allocate time to meet with students and supply them with information about the particular business. * Fourth year students go out into industry to identify a related business need. The systems they develop have to improve organizations' efficiency and effectiveness. In many cases these new systems will enable businesses to operate more effectively or even create totally new business opportunities. A vital component of the group project is to expose students to real life systems and, thus, obtain invaluable industry related experience. Since good testing is an essential component in the production of systems of a high caliber, students need to be equipped to play a critical role in such testing. This paper provides an overview of a research project undertaken by a group of fourth year Information Systems students. The primary objective of the study was to determine how well the software testing skills and procedures of IS students at UCT are aligned with industry norms in South Africa. Consequently the findings can be applied to improve and/or adapt the curriculum of IS students in South Africa. In order to successfully compare the practices of students to those of industry, it was necessary to investigate what software testing methods are currently employed by industry, as well as how, why and when they are implemented. It was also necessary to determine which of these aspects are covered in UCT's syllabus. Software Testing Understanding quality testing is a key factor towards obtaining a better idea of the overall objective of software testing. "Software testing is the process of executing a program or system with the intent of finding errors" (Myers, 1987). Hetzel suggests that "it involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results" (Hetzel, 1988). Software testing can also be described as the process of testing the functionality and the correctness of software while it is being run. Software testing is usually performed for one of two reasons: (1) defect detection, and (2) reliability estimation. Software testing can, however, only indicate the existence of flaws, not their absence (unless testing is exhaustive). The difficulty with reliability estimation is that the input distribution used for selecting test cases may be flawed. It becomes clear that the entire software testing process is highly dependable on many different variables. If any of these are faulty, the entire process is compromised (Cigital Labs, n.d.). Information drives today's organizations. Superior systems allow for more efficient business processes. …