Monday, May 3, 2021

Explain the seven testing principles

1. Testing shows the presence of defects, not their absence

Each test checks the program for compliance with specific specified conditions. Therefore, the test can only detect defects that appear only with the parameters specified in the test. Since a finite number of tests are used, it is therefore impossible to establish the absence of defects in the software.

2. Exhaustive testing is impossible

In practice, with the exception of the simplest cases, it is almost impossible to perform full software testing using all possible variants of values and combinations of conditions. Therefore, we need to analyze the risks, apply appropriate testing methods, and prioritize our testing efforts in the right way.

3. Early testing saves time and money

The sooner defects are identified, the easier and faster it is to fix them. Therefore, static and dynamic testing should be started as soon as possible.

4. Defects cluster together

Usually, a small number of modules contains most of the defects and is responsible for the largest number of failures in the program, so predictive determination of such modules can significantly speed up the elimination of existing defects.

5. Beware of the pesticide paradox

Since the tests check specific conditions and parameters, so repeated runs of them eventually stop detecting defects. In order to detect new defects, you need to change the existing tests, their conditions and parameters, as well as create new tests. In the case of regression testing, this paradox has a positive value, showing the minimum number of defects in the already debugged existing code.

6. Testing is context dependent

When planning and performing testing, you need to take into account the context of its use. For example, during the development process, we need to identify and eliminate the largest number of defects, but during acceptance testing, we need to make sure that the program works as it should.

7. Absence-of-errors is a fallacy

It is impossible to create a product without flaws and defects, because people make mistakes, and the possibilities of testing and analysis have objective limitations.

No comments:

Post a Comment

Explain the relationships between software development activities and test activities in the software development lifecycle

Regardless of the development model, there are several principles of good testing: