Annotated Reading
(1) Specification by Example, by Martin Fowler
- An exhaustive description of the differences between design-by-contract and specification by example.
(2) Agile people still don’t get it, by Cédric Beust
- It raises the question on the use of tests as specification language when we have a formal description, a S-system, “How do you specify an exponentiation function with a test?”.
(3) Mocks Aren’t Stubs, by Martin Fowler
- Describes the differences between the different types of Test Doubles
- Contains a discussion on the impact of Stubs and Mocks on design when a test-driven development approach is followed. The use of stubs and the use of mocks may result in software that complies to different design principles.
(4) Test-first programming, by VersionOne
- A comprehensive description of test-first programming and its impact and relation with other aspects such as debugging and test-driven development.
- With test-first programming you spend less time debugging.
- The analysis created during the debug is lost after it bug is found.
(5) Patterns for System Testing, by Linda Rising
- A set of patterns for a quality assurance team. It covers the social and human aspects of testing
- It is not possible to test everything! How can we efficiently use the time available for testing?
(6) The Practical Test Pyramid, by Ham Vocke
- Trade-offs on the type of tests in a system and their frequency.