The Economics of Testing
Most of us know that testing is a process of running software for the purpose of identifying defects. Since such a meaning has been assigned to this term, it is time to discuss the possibility of creating a test that detects all the errors in the program. We will prove that the answer will be NEGATIVE even in respect to the simplest software apps. In general, it is simply impossible to сatch all defects. And this in turn involves economic problems, challenges associated with the role of human being in the debugging process, methods of developing tests.
One way to study the issue is to investigate a test approach called a black box strategy, data management testing, or I / O testing. When using this strategy, the program is viewed as a black box. In other words, such testing is aimed at identifying the circumstances under which the program exhibits the wrong behavior which does not fulfill its specification. Test data are used only in accordance with the specification of the program (i.e., knowledge of its internal structure is not required).
Independent verification and validation services are provided to make it possible for you to satisfy all your qa needs at an affordable price, i.e. cost-effectively and competently.
With this approach, the detection of all errors in the program is the criterion of exhaustive input testing. The latter can be achieved if all possible sets of input data are used as test sets. The necessity of choosing this criterion is illustrated by the following example. If one triangle is correctly recognized as equilateral, there is no guarantee that all other equilateral triangles will also be correctly identified. Thus, for a triangle with sides 3842, 3842, 3842, a special check can be provided and, as a result, it is considered a scalene triangle. Since the program is a black box, the only way to meet the above criterion is to search through all possible input values.
Thus, the exhaustive test for the triangle problem must include equilateral triangles with integer side lengths, up to the greatest possible value for the side. This is certainly an astronomical number, but it does not provide a complete verification. It is likely that there will remain some errors, for example, the method can represent a scalene triangle with sides 3, 4, 5, and equilateral triangle with sides 2, A, 2. In order to detect such errors, you need to look through not only all reasonable, but all generally possible input sets. Consequently, we are coming come to the conclusion that an exhaustive testing of the triangle problem requires an infinite number of tests.