Thursday, September 1, 2016

QA: Boundary Value Analysis as specification-based test design technique

Let start from definition, per ISTQB glossary:
Boundary value analysis (BVA): a black-box design technique in which test cases are designed based on boundary values.
 Boundary Value: an input or output value which is an the edge of an equivalence partition or at the smallest incremental distance on either side of an edge, for example the minimum and maximum value of a range
This technique is an extension of equivalence partitioning technique.  There are two approaches of BVA exists:
  • Two values testing.  Only two values selected for each boundary: one value on the boundary and the previous/following value outside the partition. For example, if an equivalent partition is integer range from 10 to 15, the following values should be tested: 9 (outside of the partition), 10 (boundary); 15 (boundary), 16 (outside of partition). Short description: MIN-1; MIN; MAX; MAX+1; Where "1" is the minimal incremental value
  • Three values testing. This approach uses 3 value as the basis. One value outside of the boundary, the second value is boundary value, and the third value is inside of partition. For example, if the equivalent partition is an integer from 10 to 15, the following value should be tested: 9 (outside of the partition), 10 (boundary), 11 (inside of boundary); 14 (inside of boundary), 15 (boundary), 16 (outside of partition).Short description: MIN-1; MIN; MIN+1; MAX-1; MAX; MAX+1; Where "1" is the minimal incremental value 
Which approach to select? The approach should be selected based on Risks which are associated to tested items. 3-values approach should be selected for the highest risks.
VBA could be applied for ONLY for ordered equivalent partitions. Type of ordered equivalent partitions:
  • Numeric attributes of non-numeric variables (e.g., length) 
  • Loops, including those in use cases 
  • Stored data structures 
  • Physical objects (including memory) 
  • Time-determined activities

Type of defects: functional and non-functional