tl;dr Testing’s purpose is to measure and maximise quality delivered, while minimising risk to an acceptable level.
Are you looking for the official definition of testing? You won’t like it. Fine, here it is:
The process consisting of all lifecycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.
— International Software Testing Qualifications Board (ISTQB)
You just read 43 words in a single sentence. Hemingway hates it and your brain hates it too. Instead, let’s focus on what is the purpose of testing — why we need it and what it is. From there, we can think about the responsibilities of a tester.
Quality is value to some person, who matters. A bug is anything that threatens quality. This simple definition shows how subjective quality really is. Here are a few other perspectives:
- Aesthetic view: Quality is emotive and simplicity.
- ✔ Fosters excellence and pride in workmanship.
- ✘ Can become a cloak for perfectionists.
- Manufacturing view: Quality is conformance to specifications.
- ✔ Fits the mindset of highly regulated contexts, e.g. health industry.
- ✘ Can produce products that satisfy no one, besides the specification’s author.
- Customer view: Quality is whatever satisfies the customer.
- ✔ Increases customer loyalty.
- ✘ Can lead to eternal chasing of trends and competitors.
Quality is a moving target — it adapts to its changing context (e.g. time, priorities, trends). Stakeholders will form a perception of the current quality based on their values, knowledge, skills and past experiences. Given the diversity of stakeholders, each will have a different perception of quality. That’s one of the reasons why you cannot assure quality.
Apple shipped the first version of Hypercard with about 500 known bugs in it, yet the product was a smashing success. The Hypercard QA team chose the right bugs to ship with. They also chose the right features.
Even though you cannot guarantee quality, you can do your best effort to pursuit it. Thus the purpose of testing is to measure and maximise quality delivered, while minimising risk to an acceptable level. The more we test, the more we know about our products. With that knowledge, teams can make informed decisions on how to improve and when to release the product.
To summarise it:
- Testing uncovers information that enables better decisions;
- Testing uses creativity to discover assumptions and unexpected behaviours;
- Testing wears multiple hats to understand each stakeholders’ perspective;
- Testing democratises information and helps stakeholders talk to each other.