CPSC 4210: Software Testing and Debugging (5 credit class)

About

The goal of this course is to introduce you to software testing and debugging techniques that will improve and maintain the high quality of your software code. You will learn how to write testable code, define efficient and effective test cases, know when you have enough tests, automated techniques including unit and user-interface tests, and ways to test your code thoroughly using a minimum amount of effort. My goal is to ensure you get a good introduction to these areas, both in theory and by trying them and applying them to individual and group projects. The most important goal is your learning, and all the readings, exercises, and presentations are designed to help with that goal.

Prerequsites

take 1 courses; from subject cpsc; from level 3000; minimum grade c; - Must be completed prior to taking this course. Take MATH-3000 or CPSC-2600; Minimum grade C; - Must be completed prior to taking this course.

Learning Outcomes

• Comprehend the challenges of software testing and debugging.
• Comprehend different measures of test suite adequacy and the many factors, including ethical concerns, that go into determining if a software product has been adequately tested.
• Create effective unit tests using functional and structural testing strategies.
• Implement and execute unit tests using a unit testing framework.
• Create effective system tests using exploratory testing techniques.
• Write and execute a test plan for a moderately-sized program.
• Comprehend how program analysis can complement testing and debugging.
• Apply systematic debugging principles anytime when a problem needs to be debugged.
• Read and comprehend research papers that describe solutions to software testing and debugging challenges.

3 General ways of testing:
Unit: How a single piece works.
Integration: How a set of pieces work together.
End to end: How the full system works together.
Unit Testing Image