Practice: Testing
  • Test first, by intention [API hypothesis]

  • Unit testing is like compiling the semantics

  • Acceptance testing is creating a customer knowledge base

  • Tests are part of your codebase; they must be maintained

Notes:

[API hypothesis] Test first is a great philosophy. It means you have to use your API before you implement it. You'll see problems before you have a vested interest in the implementation.

Unit testing replaces compiling. It ensures that the semantics of your API are correct in the face of change.

Acceptance testing is performed by the customer. The programmers should create a domain language for the customer to write tests in.

Tests need to be maintained. They aren't throway code. You need to take the time to design a solid test harness.