TY - GEN
T1 - A safety-aware, systems-based approach to teaching software testing
AU - Silvis-Cividjian, Natalia
PY - 2018/7
Y1 - 2018/7
N2 - Although no one doubts that ubiquitous software should be tested thoroughly, a dedicated course on software testing (ST) does not commonly feature in most CS curricula. Even when this is the case, existing courses often fail to offer a real-world testing experience, essential for a successful software engineering career. In our opinion, the main underlying reasons are twofold. First, abstracting software from its socio-technical system context, creates the false impression that ST “equals” unit testing based on functional requirements. Second, practicing on small, anonymously pre-engineered artifacts, conveys a detached and truncated view of the whole testing process. This paper describes an original approach to teach ST that addresses these two limitations by adopting a system engineering paradigm, with an additional strong emphasis on safety. Targeting CS graduates, the course consists of two modules. In the core module, students build fundamental testing knowledge in a software engineering context, and put this knowledge to work in both roles of developer and tester. In the project module, students get hands-on experience in engineering, and in particular testing, of microcontroller-based, safety-critical systems. Software risk and test experts from industry are actively involved in both modules, for advising, guest lectures and project steering. Enthusiastic students’ evaluations throughout years demonstrate that cultivating safety- and hardware-awareness, although unusual for CS programs at non-engineering universities, creates a unique testing experience, while revealing remarkable technical and psychological tradeoffs. All this brings more realism, and contributes to a meaningful and efficient learning in ST classrooms.
AB - Although no one doubts that ubiquitous software should be tested thoroughly, a dedicated course on software testing (ST) does not commonly feature in most CS curricula. Even when this is the case, existing courses often fail to offer a real-world testing experience, essential for a successful software engineering career. In our opinion, the main underlying reasons are twofold. First, abstracting software from its socio-technical system context, creates the false impression that ST “equals” unit testing based on functional requirements. Second, practicing on small, anonymously pre-engineered artifacts, conveys a detached and truncated view of the whole testing process. This paper describes an original approach to teach ST that addresses these two limitations by adopting a system engineering paradigm, with an additional strong emphasis on safety. Targeting CS graduates, the course consists of two modules. In the core module, students build fundamental testing knowledge in a software engineering context, and put this knowledge to work in both roles of developer and tester. In the project module, students get hands-on experience in engineering, and in particular testing, of microcontroller-based, safety-critical systems. Software risk and test experts from industry are actively involved in both modules, for advising, guest lectures and project steering. Enthusiastic students’ evaluations throughout years demonstrate that cultivating safety- and hardware-awareness, although unusual for CS programs at non-engineering universities, creates a unique testing experience, while revealing remarkable technical and psychological tradeoffs. All this brings more realism, and contributes to a meaningful and efficient learning in ST classrooms.
UR - http://www.scopus.com/inward/record.url?scp=85051089442&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85051089442&partnerID=8YFLogxK
U2 - 10.1145/3197091.3197096
DO - 10.1145/3197091.3197096
M3 - Conference contribution
AN - SCOPUS:85051089442
T3 - Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE)
SP - 314
EP - 319
BT - ITiCSE 2018
PB - Association for Computing Machinery
T2 - 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2018
Y2 - 2 July 2018 through 4 July 2018
ER -