Carnegie Mellon University

Software Testing


Yue Zhao

Number of Lectures


Course Description

This course focuses on the verification and validation of software for Software Engineering students. It teaches testing techniques by analysis of requirements to determine appropriate testing strategies. Students will learn design and implementation of comprehensive test plans and apply testing techniques in an effective and efficient manner. According to a variety of criteria, the concept of test coverage and yield will be used, as well as statistical techniques to evaluate the defect density and the likelihood of faults. Students will also learn to conduct reviews and inspections according to the life cycle they choose from a plan-driven method to Agile.

This course covers the following topics:

Testing principles: defects vs. failures, equivalence classes, boundary testing, types of defects, black-box vs. structural testing, testing strategies such as unit testing, integration testing, profiling, test driven development, state based testing, configuration testing, compatibility testing, web site testing, alpha, beta, and acceptance testing, coverage criteria, test instrumentation and tools, developing test plans, managing the testing process, problem reporting, tracking, and analysis.



Recommended Textbook