Continuous Testing Manifesto

Table of Contents | Next: Rightsized

1. Build Modular Testing

Make your tests as composable as possible by working out commonalities in your suite. Most of the time, the common parts will be built upon to allow you to get in to the right state for your application. Avoid copy-pasting test steps -- aim for a modular system. This applies for both automated and manual test suites. If using automation, make sure to have a common library of states you can reuse to get into the correct state. If using manual testing, you will need to find a test case management system that supports composable tests.

The Pyramid

If starting from scratch with a new process, start with small, manageable chunks. Build your test suite in the following order for greatest effect:

  1. Smoke tests, covering the top three to five flows through your application. An example of an e-commerce site would be: login, sign up, checkout. Choose whatever might cause a headline in a newspaper or an email to the CEO if it broke.
  2. Happy path tests. These are similar, but less important. Generally they are the most common paths through your application.
  3. Regression tests. Bugs that people have already reported should not happen again. Add a test to your suite -- whether a unit test or not -- to make sure it doesn't.
  4. Edge cases that don't fit within the above categories and generally aren't in the common user flow. They have less value, so you should leave them until last. Be advised that there is a nearly infinite number of edge cases and depth you drill into. Note: things that get reported are bugs, and fall into the above category, if accepted. Edge case testing looks for, and protects against, possible bugs.

Table of Contents | Next: Rightsized