Principles of Testing – There are seven principles of software testing. They are as follows:
1) Testing shows presence of defects: Testing can show the defects are present, but cannot prove that there are no defects. Even after testing the application or product thoroughly we cannot say that the product is 100% defect free. Testing always reduces the number of undiscovered defects remaining in the software but even if no defects are found, it is not a proof of correctness.
2) Exhaustive testing is impossible: Testing everything including all combinations of inputs and preconditions is not possible. So, instead of doing the exhaustive testing we can use risks and priorities to focus testing efforts. For example: In an application in one screen there are 15 input fields, each having 5 possible values, then to test all the valid combinations you would need 30 517 578 125 (515) tests. This is very unlikely that the project timescales would allow for this number of tests. So, accessing and managing risk is one of the most important activities and reason for testing in any project.
3) Early testing: In the software development life cycle testing activities should start as early as possible and should be focused on defined objectives.
4) Defect clustering: A small number of modules contains most of the defects discovered during pre-release testing or shows the most operational failures.
5) Pesticide paradox: If the same kinds of tests are repeated again and again, eventually the same set of test cases will no longer be able to find any new bugs. To overcome this “Pesticide Paradox”, it is really very important to review the test cases regularly and new and different tests need to be written to exercise different parts of the software or system to potentially find more defects.
6) Testing is context dependent: Testing is basically context dependent. Different kinds of sites are tested differently. For example, safety – critical software is tested differently from an e-commerce site.
7) Absence – of – errors fallacy: If the system built is unusable and does not fulfil the user’s needs and expectations then finding and fixing defects does not help.
Other popular articles:
- What is test design technique?
- What are the categories of test design techniques?
- What are incident reports in software testing?
- What things to keep in mind while planning tests?
- ISTQB Certification – Foundation Level syllabus
Sujata Guin says
This is the site I got all the help I needed while preparing for a QA Tester, even I got my ASTQB citification which I passes in one attempt. I strongly recommend all who are seeking a career in QA testing to refer to this site. All the aspects of Testing so well defined here.
hilda paulin says
Thank you very much. This site is more usefull for my assingment work.
Goki says
Thanks..Your site is more helpful to understand the testing concepts.
Can anyone explain about defect clustering in more detail?
Konstantin Lukashev says
Hello,
I understand this that the biggest amount of bugs are situated in a small part of the code.
For example in our daily life: 80% of the sales in a store are from 20% of the products (you can see the Pareto rule).
BR,
Konstantin
Karan says
Exhaustive testing is impractical but not impossible please correct this!
Ian Walker says
This is a reference to syllabus text so for our purposes should be considered gospel
simran says
your all papers are very well writen.. everything is understandable…thanku
Hardi says
Help to question and answer