This module will provide students with a solid foundation in the principles and practice of software testing. Students will learn how to apply the principles of structured testing to all aspects and stages of the software development lifecycle. Topics covered include robust design strategies using user stories, formal methods for black-box testing, metrics for test-coverage analysis, and writing an effective defect report.