Experience has shown that tests that investigate boundary conditions are of greater benefit than tests that do not investigate them. Boundary conditions are situations that arise directly on, above or below the boundaries of input and output equivalence classes. A boundary value analysis differs from the equivalence class partitioning in two respects:
- Any element in the equivalence class as representative in the analysis of boundary values is selected in such a way as to test each value at the boundary of this class.
- In the development of tests, not only are the input conditions (the input space) considered, but also the result space is taken into account (specifically, the output equivalence classes).
It is rather difficult to describe the decisions made when analyzing boundary values, since this requires a certain degree of creativity and experience of dealing with the problem under consideration. (Therefore, a boundary value analysis, like many other aspects of testing, is largely based on the capabilities of the human intellect.)
Nevertheless, there are several general rules for this method.
- Write test cases for the boundaries of the region and tests with incorrect input data for situations of insignificant violation of the region’s boundary, if the input condition describes the range of values. For instance, if the valid region for input values is from -1.0 to +1.0, then you need to write tests for situations -1.0, 1.0, -1.001 and 1.001. List software testing companies is made up to allow you to choose your dream tester from the best qa experts.
- Write tests for minimum and maximum values of the conditions and tests that are larger and smaller than these values if the input condition satisfies a discrete series of values. For instance, if the input file can contain from 1 to 255 entries, then write tests for 0, 1, 255 and 256 records.
- Use the first rule for each output condition. For example, if the program calculates the monthly expenditure and if the minimum expense is $ 0.00 and the maximum is $ 1165.25, then create tests that cause expenses ranging from $ 0.00 and $ 1165.25. In addition, write, if possible, tests that cause negative values in flow rate and payment of more than 1165.25 dollars. Note that it is important to check the boundaries of the result space, because not always the boundaries of the input regions represent the same set of conditions as the boundaries of the output region (for example, when considering the sine calculation subroutine). In some cases, it is impossible to get a result outside the output area, but nevertheless it is worth considering this possibility.