7 principles in software testing

Tram Ho

Software testing as well as other jobs have its own principles. Software testing has 7 principles:

  1. The test proves the presence of the error
  2. Full testing is not feasible
  3. Test as soon as possible
  4. Errors are usually distributed centrally
  5. The pesticide paradox
  6. Testing depends on context
  7. Misconceptions about “error free”

Let’s go through these 7 testing principles in turn.

1. Test proves the presence of error

Testing can only prove that the product is defective and cannot prove that the product is free of defects. That means the product is always at fault no matter how much testing is involved. Therefore, it is important that we design test cases as well as find test perspectives so we can find as many bugs as possible.

2. Full testing is not feasible

This principle says that fully testing everything in software is not possible. Testing with all combinations of input and output, for all scenarios is not possible unless it includes only a few cases then full testing can be done.

Therefore, what we can do is choose to execute the most important types of testing based on risk analysis as well as the importance and priority of testing. This means planning tests, designing test cases, using test techniques (boundary value analysis, equivalence area, decision table, …) to have the most coverage. and minimize the risk of errors when it reaches users.

3. Test as soon as possible

This principle requires starting software testing early in the software development life cycle. Early stage software testing activities such as customer request taking or product documentation design will help in early bug detection. In addition, anyone working with the software knows that the later it is discovered, the higher the cost to fix the error. Likewise, changing the incorrect requirements in the first place usually costs less to change the functionality in the system.

4. Errors are usually distributed centrally

Usually, the fault focuses on the modules, the main functional components of the system. If you can locate this you will focus on finding bugs around the identified area. This also follows the Pareto principle: 80% of the errors are found in 20% of the system’s functionality.

5. The pesticide paradox

In software testing, if you keep executing the same set of test cases over and over, there is a very low chance that you will find errors from these test cases. The reason is that as the system is getting better and better, the bugs found previously have been fixed while the test cases are old. Therefore, when a bug is fixed or a new feature is added, it is advisable to conduct regression to ensure these changes do not affect other areas of the product. However, the test cases in the regression test also need to be updated to reflect the respective system change.

6. Test depends on context

Depending on the type and nature of the software, we will apply different methods, techniques, and types of testing.

Banking-related software, for example, will need to be tested more thoroughly than a video game. Similarly, if you are testing web and mobile apps using the same testing strategy, then that’s wrong. The strategy for testing web apps will be different from Android or IOS mobile app testing.

7. Misconceptions about “error free”

Maybe the software with 99% error is still unavailable. This can happen if the system does not respond to user needs & requirements. Software testing is not only about finding defects but also checking whether the software meets the needs of the business. Absence of Errors is Errors i.e. Finding and fixing defects will not help if the system building is unusable and does not meet the needs & requirements of the user.

Conclude

Test Principles will help you create an effective Test Strategy and list test cases to catch errors. Following the above 7 principles will give us a better overview of testing as well as help us evaluate the effectiveness of the test being executed.

References

https://www.guru99.com/software-testing-seven-principles.html

Share the news now

Source : Viblo