0% found this document useful (0 votes)
111 views2 pages

7 Principles of Software Testing

The document outlines 7 principles of software testing: 1) Testing shows the presence of defects, not their absence. No testing can prove a software is completely defect-free. 2) Early testing is important to find defects early in the development cycle when they are cheaper to fix. 3) Exhaustive testing testing all combinations is not possible. Sampling techniques like equivalence partitioning must be used. 4) Testing approaches are context dependent based on the domain and application.

Uploaded by

sangram tangde
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
111 views2 pages

7 Principles of Software Testing

The document outlines 7 principles of software testing: 1) Testing shows the presence of defects, not their absence. No testing can prove a software is completely defect-free. 2) Early testing is important to find defects early in the development cycle when they are cheaper to fix. 3) Exhaustive testing testing all combinations is not possible. Sampling techniques like equivalence partitioning must be used. 4) Testing approaches are context dependent based on the domain and application.

Uploaded by

sangram tangde
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

7 - Principles of Software Testing

1) Testing Shows the Presence of Defects

Every application or product is released into production after a sufficient amount of testing
by different teams or passes through different phases like System Integration Testing, User
Acceptance Testing, and Beta Testing etc.

So have you ever seen or heard from any of the testing team that they have tested the
software fully and there is no defect in the software? Instead of that, every testing team
confirms that the software meets all business requirements and it is functioning as per the
needs of the end user.

In the software testing industry, no one will say that there is no defect in the software,
which is quite true as testing cannot prove that the software is error-free or defect-free.

2) Early Testing

Testers need to get involved at an early stage of the Software Development Life Cycle
(SDLC). Thus the defects during the requirement analysis phase or any documentation
defects can be identified. The cost involved in fixing such defects is very less when
compared to those that are found during the later stages of testing.

Consider the below image which shows how the cost of defect fixing gets increased as
testing move towards the live production.

3) Exhaustive Testing is Not Possible

It is not possible to test all the functionalities with all valid and invalid combinations of input
data during actual testing. Instead of this approach, testing of a few combinations is
considered based on priority using different techniques.

Exhaustive testing will take unlimited efforts and most of those efforts are ineffective. Also,
the project timelines will not allow testing of so many number of combinations. Hence it is
recommended to test input data using different methods like Equivalence Partitioning and
Boundary Value Analysis.

4) Testing is Context-Dependent

There are several domains available in the market like Banking, Insurance, Medical, Travel,
Advertisement etc and each domain has a number of applications. Also for each domain,
their applications have different requirements, functions, different testing purpose, risk,
techniques etc.

Different domains are tested differently, thus testing is purely based on the context of the
domain or application.
5) Defect Clustering

During testing, it may happen that most of the defects found are related to a small number
of modules. There might be multiple reasons for this like the modules may be complex,
coding related to such modules may be complicated etc.

This is the Pareto Principle of software testing where 80% of the problems are found in 20%
of the modules. We will learn more about Defect clustering and Pareto Principle later in this
article.

6) Pesticide Paradox

Pesticide Paradox principle says that if the same set of test cases are executed again and
again over the period of time then these set of tests are not capable enough to identify new
defects in the system.

In order to overcome this “Pesticide Paradox”, the set of test cases needs to be regularly
reviewed and revised. If required a new set of test cases can be added and the existing test
cases can be deleted if they are not able to find any more defects from the system.

7) Absence of Error Fallacy

If the software is tested fully and if no defects are found before release, then we can say
that the software is 99% defect free. But what if this software is tested against wrong
requirements? In such cases, even finding defects and fixing them on time would not help as
testing is performed on wrong requirements which are not as per needs of the end user.

You might also like