terminating conditions of Forloops, While loops and Repeat loops may cause defects to move around the boundary conditions.
c) The requirements themselves may not be clearly understood, especially around the boundaries, thus causing even the correctly coded program to not perform the correct way.
The basic idea of BVA is to use input variable values at their minimum, just above the minimum, a nominal value, just below their maximum and at their maximum. Meaning thereby (min, min+, nom, max, max), as shown in the fiollowing figure.
BVA is based upon a critical assumption that is known as “Single fault assumption theory”. According to this assumption, we derive the test cases on the basis of the fact that failures are not due to simultaneous occurrence of two (or more) faults. So, we derive test cases by holding the values of all but one variable at their nominal values and allowing that variable assume its extreme values.
If we have a function of nvariables, we hold all but one at the nominal values and let the remaining variable assume the min, min+, nom, maxand max values, repeating this for each variable. Thus, for a function of n variables, BVA yields (4n + 1) test cases.
Limitations of BVA:
1) Boolean and logical variables present a problem for Boundary Value Analysis.
2) BVA assumes the variables to be truly independent which is not always possible.
3) BVA test cases have been found to be rudimentary because they are obtained with very little insight and imagination.
Robustness Testing:
Robustness Testing is another variant of BVA
In BVA, we remain within the legitimate boundary of our range i.e. for testing we consider values like (min, min+, nom, max, max) whereas in Robustness testing, we try to cross these legitimate boundaries as well.
Thus for testing here we consider the values like (min, min, min+, nom, max, max, max+)
Again, with robustness testing, we can focus on exception handling. With strongly typed languages, robustness testing may be very awkward. For example, in PASCAL, if a variable is defined to be within a certain range, values outside that range result in runtime errors thereby aborting the normal execution.
For a program with nvariables, robustness testing will yield (6n + 1) testcases. Thus we can draw the following Robustness Test Cases graph.
Each dot represents a test value at which the program is to be tested. In Robustness testing, we cross the legitimate boundaries of input domain. In the above graph, we show this by dots that are outside the range [a, b] of variable x1. Similarly, for variable x2, we have crossed its legitimate boundary of [c, d] of variable x2.
This type of testing is quite common in electric and electronic circuits. Furthermore, this type of testing also works on 'single fault assumption theory'.
Worst Case Testing:
If we reject our basic assumption of single fault assumption theory and focus on what happens when we reject this theoryit simply means that we want to see that what happens when more than one variable has an extreme value. In electronic circuit analysis, this is called as "worstcase analysis". We use this idea here to generate worstcase test cases.
For each variable, we start with the fiveelement set that contains the min, min+, nom, max, and max values. We then take the Cartesian product of these sets to generate test cases. This is shown in following graph
For a program with nvariables, 5n test cases are generated.
Guidelines for BVA:
1) The normal versus robust values and the single fault versus the multiplefault assumption theory result in better ttjung. These methods can be applied to both input and output domain of any program.
2) Robustness testing is a good choice for testing internal variables.
3) We must bear in mind that we can create extreme boundary results from nonextreme input values.
Many More Articles & Tutorials on Black Box Testing

Comments :
Leave Your Comments: (*) Marked Fields are Mandatory
You can apply basic formatting to the text