Boundary Value Testing



Definition

Boundary value testing is a gray-box unit and function testing technique for identifying test cases designed for eliciting failures associated with boundary values.

Discussion

Boundary testing assumes that defects are more likely to occur where data or objects are discontinuous rather than where data or objects are far from such boundaries. Traditional boundary value testing typically involved either boundaries in one dimensional numerical data types such as integers, floating point numbers, or real numbers or else the end points of enumeration types. With such traditional numerical data types, the negative and positive numbers would be bounded by the following three boundary values: the most negative number, 0, and the most positive number. Boundary value testing would create a test case for each of the following values:

Boundary value testing is greatly impacted by the use of object-orientation. Traditional simple numerical data types are rarely used, except to build more complex object abstractions. It is typically much more difficult to identify the boundary conditions of such objects that may have numerous attributes. Modern boundary value testing typically involves decomposing the complete state space of an interaction (including input parameters, output values, attributes, etc.) into a set of disjoint regions in a multidimensional space, each axis of which represents a single object type involved in the interaction. Often, unit testers base their decisions on the state models of the classes involved.

Objectives

The typical objectives of boundary value testing are to:

Preconditions

Boundary value testing can typically begin when the following preconditions hold:

Completion Criteria

Boundary value testing is typically complete if the following postconditions hold:

Steps

During boundary value testing, the unit and functional testers typically perform the following steps (in the following decreasing order of importance):

Work Products

Boundary value testing typically results in the following work products:

Limitations

Boundary value testing is typically subject to the following limitations:

Guidelines