Principles of Software testing- Manual Testing Free Training

Welcome to the Manual Testing Free Training series. In this tutorial, we are going to discuss the Principles of Software testing & What are the qualities of a Software tester?

Let’s move forward with our first question, 

Principles of Software Testing

There are seven principles of software testing:

  • Testing shows presence of defects
  • Exhaustive testing is impossible
  • Early testing
  • Defect clustering
  • Pesticide paradox
  • Testing is context-dependent
  • Absence-of-errors fallacy

Now, let’s discuss the testing principles one by one in points and understand why these software testing principles are important to know before you start testing any software/system.

Principle 1: Testing shows presence of defects

  • Testing can show that defects are present in the software, but cannot prove that the software is defect-free.
  • Testing reduces the probability of defects, even if there is no defect found, It doesn’t mean that the software is flawless or defect-free.
  • The main purpose of the testing is to find defects/bugs.
  • Tests should be planned to find maximum defects.

Principle 2:Exhaustive testing is impossible

  • Testing with all data sets is impossible.
  • It would not be feasible to test everything except for trivial cases.
  • Complete testing would cost more time and money.
  • It would consume more resources and time to test everything and may not meet the project’s deadline.
  • The focus should be more on prioritizing the tests based on the risk involved.

Principle 3: Early Testing

  • Testing should start at the earliest.
  • The testing in the early phases of SDLC will be very less expensive. Because developers will take less time and effort to fix the defects since a small part of the module needs to be modified.

Principle 4: Defect Clustering

  • It is also known as “Pareto principle”. It is the 80/20 rule, which states that 80% of defects are detected in about 20% of the modules of a large system & the rest 20% are distributed across the rest 80% of the modules.  It means a few modules contain the most defects of a large system.

Principle 5: Pesticide Paradox

  • After certain number of iterations of testing, most of the bugs will be fixed and the ‘Hot Spot of defects’ area will be cleared. But testers might not look in to other areas.
  • To overcome this problem, testers should review and revise the test cases regularly. Because revising and reviewing test cases will help in finding new defects.

Principle 6: Testing is context-dependent

  • It means test approach will be different for different contexts. For example, testing a mobile application requires a different test approach than testing a desktop web application.
  • If you find higher the possibility of losses, the more you need to invest in testing the software before it is implemented like E-commerce and online book websites are entirely different from each other, so is testing.

Principle 7: Absence of errors fallacy

  •  It is a mistaken belief that finding and fixing defects is a key to success for a software/system.
  • Software with minimal errors is not necessarily ready to be implemented. It must also meet the needs of the business.

So far, we have discussed the 7 testing principles that are really useful to help testers to test and minimize the risks as well as be effective in the process of implementing any application. But To be good a Tester, what could be the qualities?

Let’s move to the next question,

What are the qualities of a Software tester?

The question bangs in every tester’s ears whenever it comes to an interview. So, here we go:
1. Curiosity
  • Always curious to know what will be the next output.
  • Always curious to check the flow.
  • As a tester, you should never assume anything.
2. Logical Thinking!
  • Testing needs smart and outboxes thinking.
  • Logical thinking helps in finding out the most unexpected bugs.
  • As a tester, you need to focus on nonfunctional requirements also, which is not clearly said.
3. Attentive
  • A tester should keep a sharp eye on every detail of the product.
  • Every small detail is helpful in solving and finding big bugs.
4. Imagination
  • Imagine all the possibilities that may occur.
  • Consider all the possible scenarios.
  • Imagine beyond the documentation and test script.
5. Communication skills!
  • As a tester, you need to interact with your team to gather information related to the product.
  • A person with good communication skills can interact with and understand the product requirements.
  • A tester has to form information from data collected from different team members.
6. Test for quality over quantity!
  • Focus on finding sensible bugs.
  • Finding quality bugs is more important than finding numerous useless bugs.
  • Identifying the most important bugs and glitches, and helping the company or developer make sense of the bugs, is ten times more helpful than testing for mere volume.
7. Learn to prioritize!
  • Focus on finding higher priority bugs that may severely affect the system.
  • Prioritizing gives a clear view of which bugs are to be fixed first.
8. Learn from your own mistakes – and from others too.
  • Learning from mistakes is the best way to strengthen your skills.
  • Learning from others’ mistake save your time
 Here are some related video tutorials:

For Instructor-led training


For Self-Driven training


In this article, we introduced you to the Principles of Software Testing, Software tester’s quality. To check other stuff in this series, please refer to the following link:
→ The upcoming article in this Master of Manual testing training series will be aboutthe SDLC concept.
Happy learning, until then!

Similar Posts