Thoughts and links about programming, by


Go Testing By Example
Posted on Tuesday, December 5, 2023.

I opened GopherCon Australia in early November with the talk “Go Testing By Example”. Being the first talk, there were some A/V issues, so I re-recorded it at home and have posted it here:

Here are the 20 tips from the talk:

  1. Make it easy to add new test cases.
  2. Use test coverage to find untested code.
  3. Coverage is no substitute for thought.
  4. Write exhaustive tests.
  5. Separate test cases from test logic.
  6. Look for special cases.
  7. If you didn’t add a test, you didn’t fix the bug.
  8. Not everything fits in a table.
  9. Test cases can be in testdata files.
  10. Compare against other implementations.
  11. Make test failures readable.
  12. If the answer can change, write code to update them.
  13. Use txtar for multi-file test cases.
  14. Annotate existing formats to create testing mini-languages.
  15. Write parsers and printers to simplify tests.
  16. Code quality is limited by test quality.
  17. Scripts make good tests.
  18. Try for your own script-based test cases.
  19. Improve your tests over time.
  20. Aim for continuous deployment.