A teaching approach for software testing

Teaching students how to test software is complicated by the absence of a simple, integrated approach for generating test plans. No single testing technique fulfils these needs, and teaching only a collection of disparate techniques makes it difficult to assign work for students. This talk presents an integrated approach for test plan generation that can be used by students in programming and software engineering courses. The approach provides simple guidelines that prompt discovery of sets of test cases that are typically more complete than students produce on an ad hoc basis. A technique is introduced that ensures all program statements are executed during testing and that loops are tested in a rigorous manner. Experience shows that this technique tends to be simpler to use than existing techniques that identify independent paths through programs. All of the guidelines presented can be applied without automated tools. The primary strength of the approach is in demonstrating to students how rigorous generation of test plans can identify test cases that might otherwise not occur to the tester, and how multiple techniques can be combined to complement one another.