Chapter 14. Testing
Automated testing is a critical part of software development. Even though it cannot (and it’s not intended) to replace manual testing and other quality assurance methods. Automated testing is a very valuable tool when used properly, to avoid regressions, bugs, or incorrect functionality.
Software development is a tricky discipline: even though many developers try to isolate different parts of software, it’s often unavoidable that some pieces of the puzzle have effect on other pieces, be it intended or unintended.
One of the main goals of using automated testing is to detect the kind of errors in which new code might break previously working functionality. These tests are known as regression tests, and they make the most sense when triggered as part of the merging or deployment process, as a required step. This means that, if the automated tests fail, the merge or deployment will be interrupted, thus avoiding the introduction of new bugs to the main codebase...