# Boundary Value Analysis Experience has shown that test cases which investigate boundary conditions produce more benefits than test cases that do not do that. Boundary conditions are conditions just on, just above or just below the boundaries of input and output equivalence classes. The boundary value analysis ​​diverges from the equivalence class partitioning in two respects:

1. The choice of any element in the equivalence class as representative during the boundary value analysis ​​is made in such a way as to check each border of this class.
2. In the course of test development, both the input conditions (the input space) and also the result space (namely, the output equivalence classes) are examined.

It is difficult to describe boundary value analysis in detail, since this job requires a certain degree of creativity as well as specialization in the problem under consideration. (That is why the boundary value analysis, similarly to many other aspects of the testing process, is largely based on intelligence capabilities of a human being.) However, there are some general rules for this method.

When it comes to developing a software project you need to know how to prevent the bugs from occurring in the product. Do you possess this important information? If you don’t, it is not a problem since the task can be solved through quality assurance consulting.

1. Develop tests for region boundaries and tests with invalid input data for situations with regions that are slightly out of bounds, if the input condition describes the range of values. For instance, if the correct range of input values ​​is-1.0 1-1.0, you need to write tests for situations – 1.0, 1.0, —1.001 and 1.001.
2. Develop tests for minimum and maximum condition values 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 you need to create tests for 0.1, 255 and 256 entries.
3. Use rule 1 for each output condition. For instance, if the program calculates the monthly expenses and if the minimum consumption is \$ 0.00 and the maximum is \$ 1165.25, then you should write tests that involve prices starting from \$ 0.00 and 1165.25. Added everything else, be ready to write, if possible, tests that cause a negative flow rate and consumption of more than \$ 1165.25. Note that it is important to verify the boundaries of the result space, since input region boundaries do not always represent the same set of conditions as output area boundaries (for instance, when studying the sine calculation subroutine). Besides, it is not always possible to obtain a result outside the output area, but nevertheless this possibility is worth considering.