On Testing

Testing is part of development.

Functional/unit/integration/system/regression/smoke testing are part of the developer’s responsibilities. It’s a matter of professional integrity and non-negotiable. Avoid, at any cost, testing being squeezed out of your development work.

Dirty deeds done dirt cheap.

Make testing as cheap as possible.

  • Reduce friction to write tests: Simplify reasons, opportunities and incentives to not do testing.
  • Decouple it from infrastructure or delivery: Enable local and environment-agnostic testing.
  • Simplify participation: Encourage everyone to contribute, even through manual testing. Ideally preparing some tests.
  • Shift-left testing: Move testing earlier in the development process.
  • Bubble-up testing: Detect deep issues by focusing on surface errors, using regression testing as a tool.

Test now!

“A good plan today is better than a perfect one tomorrow.” — General George Patton

“Tomorrow never comes.” — Proverb

Some testing, any testing, now is better than perfect testing never.

Automate your tests.

Choose your flavour and tool and master them (TDD, BDD, PHPUnit, SimpleTests, Selenium, etc). Get used to coding tests as you code features (or before, up to you). Tests are your QA metric, your benchmark for improvements, your professional standard seal.

Identify your smoke tests and keep them updated. They are your early warning mechanism.

Test everything.

Digital systems can be tested extensively at minimal cost. There’s no excuse not to ensure quality by testing all components thoroughly.

Test patches and bug fixes.

Every bug fix should include a test verifying the fix and protecting against regressions. Treat patches as critical components of the testing ecosystem.

The more you have, the more you test. The more you test, the more you have.

Systems complexity increases exponentially as they grow (Generalized Metcalfe’s law) so plan your QA team and strategy accordingly. Testing will not only become more expensive but it will take longer to be done as the test accumulate. Make sure you address this to either plan the extra time or to shave off tests as you progress (behare of uncatched regressions).


Last updated: 20 February 2025