It should be remembered that the main idea of this technique is to isolate values that lead to errors with greater probability than others. This technique is not limited directly to the control components available in the program. In addition to the numerical limits, it is worth remembering the time limits (for example, the period during which the program can be used free of charge), the cycle duration limits (the number of incorrect password entries), the type boundaries (even if according to the specification it is possible to enter an integer in the field, this number one way or another will be limited to the maximum value of the integer data type that the programmer chose to implement this function). There are other boundaries associated with non-functional types of testing – performance and configuration tests.
A very promising area for finding errors relates to the boundaries of the equivalence classes of a function. As a rule, an analysis that involves the definition of equivalence classes also defines these boundaries. Inclusion of several boundary values in test cases for this function will help to measure the user’s satisfaction in terms of compliance with the user requirements.
Let us briefly consider the reasons for developers’ errors when coding boundary values. The causes of errors in software products associated with boundary values are easy to understand by analyzing the number of transformations that are performed from the time when the requirements are developed until the time the dynamic testing is initiated. First of all, only high level requirements are created. They do not contain too many details. As a rule, at the design stage (DS), software developers add the so-called derived requirements to the RTM (requirements traceability matrix), transforming the original requirements into detailed and precise ones from the point of view of the calculations. Software quality assurance companies readily help everyone who wants to improve digital products and identify problems with their performance, usability, reliability, security, functionality, etc.
The staff of organizations that are engaged in rapid testing, have already realized the importance of the design phase for the testing team. If the derived requirements are missing or incorrect, the personnel involved in the coding or testing will, in the course of planning, have to complement the high-level design and the initial requirements with these documented details of the working project, including those that determine the behavior of the program at the boundaries of the equivalence classes.