SW4540 Software Testing

This course covers the theory and practice of testing computer software with the intent of preventing, finding and eliminating bugs in software. Planning and executing software tests are covered, including requirements-based testing, functional testing, static analysis, code reading, symbolic testing, structural testing, and advanced testing techniques. These topics are discussed in the context of a realistic development environment, illustrated using a variety of software testing tools.

Prerequisite

SW3460

Lecture Hours

3

Lab Hours

1

Course Learning Outcomes

After completing this course, students will be able to do the following:

  • Explain the practices of test-based software development.
  • Determine the number of black-box test cases needed for a given statistical confidence level that the frequency of failures will be within an acceptable range.
  • Apply constraint-solver tools to generate test cases that achieve full statement coverage.
  • Explain the capabilities of current static analysis tools for software.
  • Explain the advantages and disadvantages of mutation testing.
  • Apply software slicing to safely reduce regression testing.