Boundary Value Analysis

Basics

Boundary Value Analysis (BVA) is a data domain test design technique based on extreme input values. The idea is that bugs often occur at the extreme ends of these ranges due to common errors made by developers. For example, common mistakes are to use greater than or less than (>, <) instead of greater than and equals or less than and equals (=>, <=), or vice versa, in a programming Boolean conditions. This often results in the first or last input values of a data input range exhibiting undesirable behaviour leading to bugs. The boundary value analysis design technique can be modelled using a simple linear graph (FIG 1):

Lower Invalid Range Valid Range Upper Invalid Range
Min – 1 Min Max Max + 1

FIG 1: A boundary value analysis table

 

Using the model identifies four tests, two valid inputs and two invalid inputs, to test data inputs:

  • Minimum valid value
  • Minimum value minus one
  • Maximum valid value
  • Maximum valid value plus one

 

Partitions

Boundary values aren’t just limited to the extreme input values. Wherever an equivalence partition is identified, boundaries are also tested with the same rules (FIG 2):

Lower Invalid Range Valid Range Partition 1 Valid Range Partition 2 Valid Range Partition 3 Upper Invalid Range
Min – 1 Min Max Min Max Min Max Max + 1

FIG 2: A boundary value analysis table with equivalence partitions

 

However this means it’s also subject to the same problems as equivalence classes in that they can be hidden. Identifying extreme inputs conditions is easy as it’s often clear from the user interface. Some boundary partition may be researched from specifications or inferred from the problem that is being solved. However, sometimes equivalence partitions may only be visible from the code. The code handles different inputs in different ways using Boolean conditions. Even with a user interface or documentation, the code might have been implemented incorrectly meaning boundaries exist where they shouldn’t. White box testing can help, including asking or pair-testing with a developer. For the black box tester, the only way to uncover these partitions is with automated tools that can input lots of data into the system. The results can then be examined for patterns that identify hidden boundaries.

 

Citations

Leave a Reply

Your email address will not be published. Required fields are marked *

You may also like these