7 Principles of Software Testing

Every tester and quality engineer (QE) should be familiar with the 7 essential software testing principles. These principles make sure that you’re meeting quality standards and identifying bugs and issues before release.

In our blog “What is Software Testing, and How Does it Work?” we describe software testing as “a critical element of the software development process” and explain “The objective of software testing is to identify and fix bugs, and there are lots of software testing techniques that you can use depending on the nature of the changes”.

7 Principles of Software Testing

1. Testing shows presence of defects

The main goal of software testing is to find all identifiable bugs and defects. However, software testing doesn’t talk about the absence of defects.

There could be bugs in the software that you haven’t found, for a variety of reasons. One reason could be that you didn’t cover all scenarios.

You can never be sure that your software is 100% bug-free, but you can make maximum effort to identify the presence of defects in your software.

2. Exhaustive testing is impossible

What does exhaustive testing mean?

Well, as defined here, exhaustive testing is:

“a testing or quality assurance approach in which all possible combinations of scenarios and use/test cases are used for testing.”

Exhaustive testing is impossible because a tester can’t test every test case. You’ll be wasting both time and money to test all possible values (and there could be millions of them).

Instead, consider risks and priorities when estimating your testing efforts.

3. Early software testing

By testing earlier in the software development lifecycle (SDLC), you’ll save time and money.

Imagine you’ve documented the requirements, and identified a solution, completed development, and then found a significant issue with the requirement.

With early software testing, you can identify issues in the requirements gathering and design phases, and reduce the number of defects found at the end.

4. Defect clustering

What is defect clustering?

As defined here, defect clustering is when:

“bugs are not often distributed evenly throughout an application. Defect clustering simply means that a small number of features have caused the majority of quality issues in an application.”

The Pareto Principle specifies that 80% of consequences come from 20% of the causes, known as the 80/20 rule.

So, 80% of defects come from 20% of code.

Focus on the high-risk areas of the software, which you expect will be used the most.

Pareto Principle image - 7 Principles of Software Testing

5. Pesticide Paradox

“Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual.”

Boris Beizer

In more simpler terms, the more you repeat the same test cases, the less likely you are to find new bugs. Review and update your test cases regularly so that you can continue to identify bugs, and make sure different teams carry out different tests.

6. Testing is context dependent

With software testing, you’ll need a different test strategy for each type of testing.

Your testing approach depends on the context of the software that you’re developing. There are various different types of testing, as documented in this blog.

You’ll define your testing approach when you’re creating your test plan, and you’ll need to consider the type of software you’re testing, and the techniques you’ll need to use.

7. Absence of error - fallacy

Your software could be 99% bug-free, however the documented requirements are wrong and don’t address the business requirements, therefore the software is unusable.

Just because you have a low defect rate, doesn’t mean the product is a success. You can identify issues with the requirements gathering during early software testing (principle 3).

By understanding the 7 principles of software testing you can create more effective tests and save time and money.

If you’re looking for a platform to manage your software testing, our test management tool, Qucate, will allow you to create fully audited test plans for compliance, visibility, and transparency, whilst improving quality and testing coverage. Head to our Qucate page for more information, or feel free to contact us.

Subscribe to our newsletter to be the first to hear about new features, vacancies, and industry news.

Picture of Rebecca Lawton

Rebecca Lawton

Our Head of Partnerships and Marketing, Rebecca, is responsible for the generation and management of digital marketing content. She is an accomplished copywriter and has experience in SEO. Rebecca also leads our community engagement programmes, and works closely with our key partners.