This page is part of my personal knowledge database, that helps me to store and navigate my learnings.
Read on here for details

Automated Testing Practices

ยท 2 minute read

Automated Testing Practices

All humans make mistakes, all untested code is flawed. Nobody wants any responsibility for a known, broken system.

  1. Believe in tests
    • Only tests verify that in shippable / deployable state
  2. Automate test execution
    • Only automated tests can assure constant quality
    • Only automated tests can proof quality of added functionality
    • Only immediately executed tests provide sufficient fast feedback loops for continuous development
  3. Optimize test execution
    • Cheap tests must run first, the more expensive the later
    • Parallelize tests to decrease time-to-response
  4. Test beyond bugs
    • Have performance tests with metrics, to identify slow build up (of decreased performance)
    • Have tests for non-functional requirements (availability, scalability, security, …)
    • Have tests for Infrastructure as Code
    • Any / all appropriate tooling (like statistical analysis, code style checker, ..) that supports quality, assuming it can be automated, should be used
  5. Act on failing tests
  6. After tests: Build packages
    • Build package creation must be independent of tests, to assure dependencies are exposed and known
    • Build packages are mandatory prerequisite for “same deploy in every environment”