Go Testing By Example
Posted on Tuesday, December 5, 2023.
I had the honor of opening GopherCon Australia in early November with my talk “Go Testing By Example”. While there were some technical difficulties during the live presentation, I took the time to re-record it at home and share it with you here.
In this talk, I shared 20 valuable tips for effective testing:
- Make it easy to add new test cases.
- Use test coverage to find untested code.
- Coverage is no substitute for thought.
- Write exhaustive tests.
- Separate test cases from test logic.
- Look for special cases.
- If you didn’t add a test, you didn’t fix the bug.
- Not everything fits in a table.
- Test cases can be in testdata files.
- Compare against other implementations.
- Make test failures readable.
- If the answer can change, write code to update them.
- Use txtar for multi-file test cases.
- Annotate existing formats to create testing mini-languages.
- Write parsers and printers to simplify tests.
- Code quality is limited by test quality.
- Scripts make good tests.
- Try rsc.io/script for your own script-based test cases.
- Improve your tests over time.
- Aim for continuous deployment.
