As we have seen in the previous chapter, Continuous Delivery pipelines allow developers to ship software with constant velocity and quality. In order to meet this quality, automated software tests are required. Engineers that work on features want to be sure that everything works as expected. This is even more the case when the software project advances, changes, and potentially breaks existing behavior. Developers need to be sure that no unwanted side-effects are introduced.
Ideally, the software tests contained in a build pipeline are sufficient, without further manual verification, to deploy to production.
This chapter will cover the following topics:
- The requirements of software tests
- Different test levels and scopes
- Unit, component, integration, system, and performance tests
- How to run test scenarios locally
- How to craft maintainable tests
- Required test technology