Software Testing Principles

Krishnendhu A
3 min readOct 26, 2022

1. Testing shows presence of defects

Software Testing reduces the probability of undiscovered defects remaining in the software, but even if no defects are found, it is not a proof of correctness. Testing always reduces the number of undiscovered defects remaining in the software, even after testing the application or product thoroughly we cannot say that the product is 100% defect free.

But what if, you work extra hard, taking all precautions & make your software product 99% bug-free. And the software does not meet the needs & requirements of the clients.

2. Exhaustive testing is not possible

It is impossible to test everything, including all potential input and precondition combinations. Therefore, we can use risks and priorities to concentrate testing efforts rather than performing exhaustive testing.

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 30517578125 (515) tests. It is quite unlikely that this many tests could be performed within the project timescales. Therefore, one of the most important activities and the main reason for testing in any project is accessing and managing risk.

3. Early Testing

Testing should start as early as possible in the Software Development Life Cycle and should be focused on defined objectives. In order to catch any flaws early on in the requirements or design phases. Fixing a flaw early on in testing is substantially less expensive.

4. Defect Clustering

Defect clustering, which states that a small number of modules contain most of the defects detected during pre-release testing or shows the most operational failures. The Pareto Principle is used to software testing in this way: around 20% of the modules contain 80% of the faults.

5. Pesticide Paradox

If the same kinds of tests are repeated again and again, eventually prevent the same set of test cases from discovering any more flaws. The test cases must be continuously reviewed, and new and different tests must be designed to exercise other components of the program or system in order to potentially identify more flaws, in order to avoid falling victim to the “Pesticide Paradox.”

6. Testing is context dependent

Testing is context-dependent, which essentially means that you should test an e-commerce site differently than you would a ready-made commercial program. Different types of websites are checked in various ways. The developed software is not all the same. You might employ a different strategy or methodology.

7. Absence of Error fallacy

If the system built is unusable and does not fulfill the user’s needs and expectations, then finding and fixing defects does not help. Even software that is 99% bug-free may not function properly. If the system is rigorously assessed for the wrong requirement, this might happen. Checking for faults is only one aspect of software testing; another is verifying sure the program complies with organizational standards.

Learning from a scratch in a short period is also very important in the learning process. Software testing training in Kochi or any other places helps you to understand more in right way. In depth knowledge of syllabus and practical gives more confidence. There are various Software Testing Automation course centers available. Picking up the right one is significant. Find out the Software testing training institute in Kochi for your better start.