This chapter covers
- The difference between a developer that rigorously tests their code versus a developer that does not.
- What effective and systematic testing is all about and what it looks like from the perspective of the developer
- Why testing software is so hard and ensuring that a system is bug-free is virtually impossible
- The testing pyramid, the different test levels, and when to go for each of them
Luckily, as a community, we do not need to argue about the importance of software testing anymore. Every software developer understands that software systems run the world and that software failures may cause severe damage to businesses, people, or even to society as a whole. And, although not so long ago, software developers were mostly responsible for building software systems, they now understand that they are also responsible for the quality of the software systems they produce.