10.12.2012 Views

Domain Testing: Divide and Conquer - Testing Education

Domain Testing: Divide and Conquer - Testing Education

Domain Testing: Divide and Conquer - Testing Education

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Hutcheson (2003) described boundary value analysis as one of the most<br />

important testing techniques. “Boundary value analysis is a test data selection<br />

technique in which values are chosen to lie along data extremes. Boundary values<br />

include maximum, minimum, just inside <strong>and</strong> outside boundaries, typical values,<br />

<strong>and</strong> error values” (p. 316).<br />

Those who practice boundary value analysis believe that areas on the<br />

boundary <strong>and</strong> around it are risky areas. This, in fact, is a risk-based strategy.<br />

According to Kaner et al. (2002), in boundary testing the values of an equivalence<br />

class are mapped onto a number line <strong>and</strong> the boundary values, which are the<br />

extreme endpoints of the mapping <strong>and</strong> the values just beyond the boundaries, are<br />

chosen as the best representatives of that equivalence class. “A best representative<br />

of an equivalence class is a value that is at least as likely as any other value in the<br />

class to expose an error in the software” (p. 37).<br />

Kaner et al. (1999) depicted different kinds of boundaries, some of which<br />

are described below.<br />

• Numeric boundaries: lower <strong>and</strong> upper boundaries defined by a range of<br />

values or a single boundary defined by equality.<br />

• Boundaries on numerosity: boundaries defined by the length (or ranges<br />

of length) of the elements or the number of constituent characters in the<br />

elements.<br />

• Boundaries in loops: minimum <strong>and</strong> maximum number of times a loop<br />

can execute will determine the lower <strong>and</strong> upper boundaries,<br />

respectively, for the loop iterations.<br />

• Boundaries within data structures: boundaries defined by the lower <strong>and</strong><br />

upper bounds of structures that store data.<br />

• Boundaries in space: boundaries defined by the bounds of objects in<br />

two-dimensional or three-dimensional space.<br />

• Boundaries in time: boundaries defined by time-determined tasks.<br />

29

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!