Summary
This chapter focused on how programmers approach software testing, which tends to be bottom-up – that is, programmers build the software, bit by bit. If they can find a reason to have confidence that the individual bits fit together well, then there’s a chance the entire system can work effectively. However, if the individual parts do not work well, the entire system will be hopeless. To do that, we talked about developing components that can be tested in isolation, calling the separation between the components a “seam.”
We also described the hexagonal architecture, which is a way to think about how those components interact. Once we can isolate what a small developer “unit” is, we can describe unit tests, along with a particular discipline within unit testing called TDD. After explaining TDD, we covered ways to isolate the code to test one component, including the use of test doubles. This chapter included coverage of mutation testing...