Verification and Validation

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.