Every now and again, someone makes some statement about testing that I find highly questionable or indefensible, whereupon I might ask them what testing means to them. All too often, they’re at a loss to reply because they haven’t really thought deeply about the matter; or because they haven’t internalized what they’ve thought about; or because they’re unwilling to commit to any statement about testing. And then they say something vague or non-committal like “it depends” or “different things to different people” or “that’s a matter of context”, without suggesting relevant dependencies, people, or context factors.
So, for those people, I offer a set of answers from which they can choose one; or they can adopt the entire list wholesale; or they use one or more items as a point of departure for something of their own invention. You don’t have to agree with any of these things; in that case, invent your own ideas about testing from whole cloth. But please: if you claim to be a tester, or if you are making some claim about testing, please prepare yourself and have some answer ready when someone asks you “what is testing?”. Please.
Here are some possible replies; I believe everything is Tweetable, or pretty close.
- Testing is—among other things—reviewing the product and ideas and descriptions of it, looking for significant and relevant inconsistencies.
- Testing is—among other things—experimenting with the product to find out how it may be having problems—which is not “breaking the product”, by the way.
- Testing is—among other things—something that informs quality assurance, but is not in and of itself quality assurance.
- Testing is—among other things—helping our clients to make empirically informed decisions about the product, project, or business.
- Testing is—among other things—a process by which we systematically examine any aspect of the product with the goal of preventing surprises.
- Testing is—among other things—a process of interacting with the product and its systems in many ways that challenge unwarranted optimism.
- Testing is—among other things—observing and evaluating the product, to see where all those defect prevention ideas might have failed.
- Testing is—among other things—a special part of the development process focused on discovering what could go badly (or what is going badly).
- Testing is—among other things—exploring, discovering, investigating, learning, and reporting about the product to reveal new information.
- Testing is—among other things—gathering information about the product, its users, and conditions of its use, to help defend value.
- Testing is—among other things—raising questions to help teams to develop products that more quickly and easily reveal their own problems.
- Testing is—among other things—helping programmers and the team to learn about unanticipated aspects of the product we’re developing.
- Testing is—among other things—helping our clients to understand the product they’ve got so they can decide if it’s the product they want.
- Testing is—among other things—using both tools and direct interaction with the product to question and evaluate its behaviours and states.
- Testing is—among other things—exploring products deeply, imaginatively, and suspiciously, to help find problems that threaten value.
- Testing is—among other things—performing actual and thought experiments on products and ideas to identify problems and risks.
- Testing is—among other things—thinking critically and skeptically about products and ideas around them, with the goal of not being fooled.
- Testing is—among other things—evaluating a product by learning about it through exploration, experimentation, observation and inference.