Continuous Testing Manifesto

Good QA enables developers to move faster, while having a consistent set of checks for the work they do. This holds them to a standard for quality, but frees them from having to manually check. Though teams can improve software quality using techniques such as pair programming or code-reviews, bugs will always slip through.

QA is a service to the development organization and should always be as lightweight as is practical. A QA strategy should continually strive for:

  • Faster QA results
  • More accurate QA results
  • Fewer false positives
  • More actionable results

This document was created to help your team ship higher quality software, faster by providing guidelines for what should be important in a QA process and what shouldn't.

Table of Contents

  1. Modular Testing: Start with small, manageable chunks-- aim for a modular system.
  2. Rightsize: Good processes don't test everything; they take a balanced approach.
  3. Measure to Improve: If you don't measure results, you won't be able to show improvement.
  4. Shift Left: The earlier you can start testing, the easier most issues are to fix.
  5. Unit Test: Enable fast feedback, along with super-specific error reporting.
  6. Version Control: Keep you tests close to your developer workflow and create a record of tests.
  7. Continuous Integration: Create a safety valve for quality as early as possible.
  8. Pluggable: Integrate QA with development tooling to keep pace with development process.

About the Author

Russell Smith is the co-founder and CTO of Rainforest QA. At Rainforest, Russ has helped hundreds of organizations implement faster, more effective QA processes using the key tenets behind continuous testing.