A critical part of the software development process is ensuring the software works! We mentioned earlier that it is possible to logically prove that software works by constructing a state transition table for the program, but once a program reaches a certain size this strategy becomes less feasible. Similarly, it is possible to model a program mathematically and construct a theorem that proves it will perform as intended. But in practice, most software is validated through some form of testing. This chapter will discuss the process of testing object-oriented systems.
Key Terms
Some key terms to learn in this chapter are:
- Informal Testing
- Formal Testing
- Test Plan
- Test Framework
- Automated Testing
- Assertions
- Unit tests
- Testing Code Coverage
- Regression Testing
Key Skills
The key skill to learn in this chapter is how to write C# unit test code using xUnit and the Visual Studio Test Explorer.