Featured image of post What is the Real Purpose of Software Testing?

What is the Real Purpose of Software Testing?

Misconceptions About the Purpose of Testing Work

In the IT industry, there has always been a somewhat inaccurate understanding of software testing and the purpose of testing work.

There are various explanations, with the following two being quite popular and accepted by many IT professionals, even testing practitioners:

  • Testing is for finding bugs

In the general concept, people often equate testing with finding bugs, meaning the purpose of software testing is to discover problems in the product.

  • Testing is for verifying that the product meets requirements

Some also say from the test execution perspective that testing work is to prove the software product conforms to product requirement definitions, to verify whether requirements have been implemented.

Are these statements correct? We can say both yes and no.

Indeed, the main output of testing work is the various product bugs we discover, and verifying requirements is the main input and evaluation criteria for our testing work.

But are these the purposes of conducting testing work?

Looking at the purpose of testing work solely from the above perspectives is narrow.

Is Testing for Finding Bugs?

Is our testing work aimed at discovering bugs?

For a product, bugs represent cost, and bugs themselves do not generate value for the product. Only resolved bugs bring improvement in product quality, which then translates into product value. The reduction of bugs is what adds value to the product.

Therefore, simply making the discovery of more bugs the purpose of testing work is a misconception. This is also the main reason why many teams incorrectly use the number of bugs found as a measure of testing effectiveness. If finding more bugs means better testing work, shouldn’t testers avoid participating in early stages? Because issues prevented in the early stages would actually result in fewer bugs during the testing phase. If testing work aims to find more bugs, shouldn’t we hope that the product contains more bugs when it’s submitted for testing? This orientation clearly doesn’t align with the product’s interests.

Therefore, considering bug discovery as the purpose of testing work is a common and obvious misconception about testing work.

Is Testing Just for Verifying Requirements?

The second misconception about the purpose of testing work is the belief that testing is just for verifying product requirements. This is actually another widely accepted misunderstanding. Even many of today’s widespread software engineering practices are built upon this misconception.

Testing guru James Bach has a famous paper discussing the difference between Testing and Checking.

Testing work is far more than just checking. Verifying requirements, this kind of checking, is only part of testing work. To delve into the product and discover potential deep-seated issues, testing needs more capabilities beyond checking, including exploration, experimentation, questioning, reasoning, and more.

Testing vs Checking

So, treating requirement verification as the purpose of testing work is insufficient. The approach of determining whether a product meets specifications according to strict procedures, like factory quality inspection, doesn’t match well with the creative nature of the software product industry. This is also why we say automated testing is more about improving execution efficiency and quickly getting feedback on verification results for covered scenarios, but automated testing itself cannot achieve the purpose of completing product testing.

Besides verifying explicitly stated functions in requirements, testing also needs to conduct deeper exploration of the delivered product to more fully discover quality issues in the product. This is also the main reason why exploratory testing has been increasingly mentioned in recent years.

The True Purpose of Software Testing Work

Well, if the purpose of testing work is neither to find bugs nor to verify requirements, then what is the purpose?

The true purpose of software testing: to accurately and timely assess the quality status of the test object.

The core here is assessing quality status. Quality is a product attribute that can only be adjusted through changes to the product itself, so testing work cannot improve quality or guarantee quality. But through testing work, we can reflect the quality status of the product by exposing problems in the product. Our main role is to assess the current quality of the product. Then the product or project can improve quality based on this status.

So the contribution of testing work to quality is more reflected in whether the assessed quality status is timely and accurate.

Accurate Assessment

Testing cannot be exhaustive, and it’s impossible to discover all problems in a product within a limited time. But the responsibility of testing is to expose as many quality-affecting issues as possible within a limited time. Besides quantity, we also need to consider the impact of the problems. Combining these two points provides a more accurate reflection of quality.

Timely Assessment

Products cannot undergo unlimited testing, and testing work itself is a cost expenditure. Therefore, the timeliness of obtaining the product quality status through testing work is also crucial for product quality improvement and cost control. The earlier problems are discovered, the lower the cost of fixing them; the shorter the time to obtain quality status assessment, the greater the space for targeted improvement of the product. So the purpose of testing work also includes improving testing efficiency, using automation, shift-left testing, and other means to complete product quality assessment as timely as possible.

So this is the true purpose of our software testing work - not to discover more bugs, nor merely to check requirement implementation, but through our professional capabilities, to timely and fully reflect the actual quality status of the current product within a limited time.

Above is the sharing about the purpose of software testing work. I am Chengxia Qiucao. Qiucao Observatory, observing the testing industry


Promoting my testing course, interested friends can learn more through the following link

❤️❤️❤️❤️ Chengxia Qiucao’s Testing Career Advancement Course ❤️❤️❤️❤️

Built with Hugo
Theme Stack designed by Jimmy