Manifesto for software testing
1. Testing is investigating in order to evaluate a product.
2. An evaluation is a judgement about quality – quality being value to persons who matter.
3. This makes testing a fundamentally human and contextual activity.
4. As such, testing is an exploratory and open-ended activity, requiring continuous evaluation of and experimentation with our practices.
5. As such, testing cannot be automated. We do use a wide variety of tools to support, extend and amplify our testing. We may also delegate some decisions to our tools. However, without a human context, these decisions are meaningless.
6. Anything that can be observed, can be investigated: the product, artifacts, interactions, and tools.
7. This means that testing is fundamentally interwoven with all activities within a product’s existence: conception, development, operation, and disposal.
8. And the core question during the product’s lifecycle is: how do we discover what we need to discover in the most effective way?
Many thanks to reviewers Ruud Cox, Elizabeth Zagroba, and Jean-Paul Varwijk.
For a version of this manifesto that includes my reflections, see this post.
This post was originally published on my old blog.