Before a software development team can release an update there should be confidence that the changes do not introduce bugs or breaking changes, can be understood and updated by other developers, and generally meet a level of quality as to not add more cost of ownership to the project than necessary. Pair programming and code reviews help with this but are also time-consuming and can often fail to identify unintended consequences of changes.
In order to release updates more frequently, teams should test the quality of their code in a way that is automatable, repeatable, and observable. In this section we will look at several techniques to test code quality in this way.