Catalog course description
This course introduces students to the fundamental concepts of software verification. Topics covered include the activities within testing, coverage criteria, basic testing techniques and types, basic testability metrics, and the application of testing tools. Laboratory assignments provide extensive opportunities to apply software verification techniques and tools. (prereq: MA 2310, CS 2852)
On successful completion of this course, the student will:
- Explain why testing is important to software development
- Explain the relationship between verification and validation.
- Compose accurate and detailed defect reports and record defects into a defect tracking system
- Using appropriate coverage criteria and testing theory, design and construct high quality testing approaches and prepare tests in a logical, organized fashion.
- Apply testing theory to design tests based on presented test criteria.
- Analyze the effectiveness of testing using testing metrics, mutation testing, and other techniques.
- Design and implement test cases which using Mock objects.
- Analyze a given piece of source code for complexity and testability.
Textbook and reference materials
- Introduction to Software Testing, Ammann and Offuit, Cambridge University Press, 2008
- JUnit Pocket Guide, Kent Beck, O'Reilly Media, Inc., 2004
My general course policies apply to this course.
- Quizzes and homework assignments: 15%
- Lab assignments: 25%
- Midterm exam: 30%
- Final exam: 30%
Note that this algorithm indicates how a grade will be determined for students who have successfully demonstrated mastery of the course outcomes. An acceptable level of success in meeting all course outcomes is a prerequisite for a passing grade in the course.