Principles of Software Testing
There are 7 Principles of Software Testing
1. Testing shows presence of defect
2. Exhaustive testing is not possible
3. Early testing
4. Defect clustering
5. Pesticide paradox
6. Testing is context dependent
7. Absence of error fallacy
1. Testing shows presence of defect
Testing an application can only reveal that one or more defects exist in the application
ex. web application, desktop & mobile
Therefore, it is important to design test cases which find as many defects as possible
Tester validates application to make sure that an application is defect free
Primary aim of the testing is to identify with the help of various techniques &
methods. Testing should be traceable to the customer requirement
By performing testing we can reduce defects
2. Exhaustive testing is not possible
To test all the modules & their features with various possible combination of input &
precondition is not possible
Ex.
Restaurant billing
GST
500=? 1000=? 1500=? 2000=?
It is not possible to test all possible combinations of data & scenarios
So, instead of this, teams, PO & SM should prioritize testing based on the risk
analysis to the product & business
3. Early testing
Testing activities should be started in the early stage of SDLC
It is not necessary to develop the software for the testing
It is required document only based on this we have to design a test cases
4. Defect clustering
We can detect number of defects, which are correlated to the small number of modules.
i.e. small number of modules contain most of the defects in the software Ex. Sign Up
So, there can be various reasons of it
1. Module can be complicated
2. Coding can be complex
According to the pareto principle, 80% complication is present in 20% of the modules
5. Pesticide paradox
If we are executing the same set of test cases again & again then we will not able to
identify/find new defect
So, to get over this pesticide paradox, we need to review TC frequently & new &
different TC need to be written
Ex.
Application 1 Version - design some set of test cases
Application 4 version - you also use same test cases
You have not got the more defect
Version 1 Whatsapp Version 4
Updated test cases
IoS 8 IoS 9
Android Lollypop Android 6.1 Marshmallow
6. Testing is context dependent
We have number of domains/fields for ex. banking, telecom, e-commerce, & healthcare
etc. so, there is a definite way to test these application & it is based on need, functionality
& features
So, to validates these application we need to take help of various testing technique,
approaches & methods
Ex.
Testing medical software Testing Gaming Software
Proper calculation in medical Gaming working on hardware
Reliable calculation particular RAM
Small decimal point in drugs are PC is hang or not
Create more problem
E-commerce website Traveling website
Different approach Different approach
7. Absence of error fallacy
If software/application/system is unstable (or does not fulfill the customer requirement)
then it does not matter how many defect are found and fixed- it is still unstable