Testing software is actually two different activities, depending on whether one is the developer of the software or the tester. As software engineering students may end up in roles as either a developer or a tester, they must learn skills for both. In order to teach both skills, our software testing course has a two-part major project. In the first part, students must develop an application and test it thoroughly, creating a developer test plan and test cases. In the second part, they receive a different program from another student which they must test. They must write system test plan, execute the test cases, and write defect reports.
We have been using this project format in our software testing class for five years. We have found that it has been successful at helping students learn testing from two different perspectives. They learn how to apply different testing techniques, and how to select appropriate testing approaches. A few learn the bitter lesson of the danger of allowing the development schedule to squeeze out testing time.
We have found several keys to success. First, there must be multiple projects so the students can test a project they didn't develop. They must be equivalent in terms of development and testing effort. They should be not overly difficult, but should require a large number of test cases, preferably using more than one testing approach. Finally, students are not evaluated on the number of bugs they find in each others' programs, but on the quality of their testing.
[1]
Gopalaswamy Ramesh,et al.
Software Testing: Principles and Practices
,
2005
.
[2]
Lee Copeland,et al.
A Practitioner's Guide to Software Test Design
,
2003
.
[3]
Pankaj Mudholkar,et al.
Software Testing
,
2002,
Computer.
[4]
Anas N. Al-Rabadi,et al.
A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions
,
2004
.
[5]
Cem Kaner,et al.
Lessons Learned in Software Testing
,
2001
.
[6]
Michael E. Fagan.
Design and Code Inspections to Reduce Errors in Program Development
,
1976,
IBM Syst. J..
[7]
Juha Itkonen,et al.
Exploratory testing: a multiple case study
,
2005,
2005 International Symposium on Empirical Software Engineering, 2005..