Image shows possible domain boundary bugs for a two-dimensional domain
A and B are adjacent domains and the boundary is closed with respect to A, which means that it is open with respect to B
Closure Bug
Image (a), shows a faulty closure, which might be due to the usage of a wrong operator (for example, x >= k when x >k was intended, or vice verse)
The two 'on' points will detect this bug as those values get B rather than A processing
Shifted Boundary
In image (b), the bug is a shift up, which converts part of domain B into A processing, denoted by A
This result is caused by an incorrect constant in a predicate, such as x+y>=17 when x+y>=7 was intended
The 'off' point (closed off outside) catches this bug. Image (c), shows a shift down that is caught by the two 'on' points
Tilted Boundary
A tilted boundary occurs when coefficients in the boundary inequality are wrong
Example: 3x+7y>17 when 7x+3y was intended
Image (d), has a tilted boundary, that creates invalid domain segments namely 'A' and 'B'
In this example, the left 'on' point catches the bug
Extra Boundary
An extra boundary is crated by an extra predicate
An extra boundary slices through several difference domains, and results in numerous test failures for the same bug
The extra boundary in image (e), is caught by two 'on' points, and depending on which way the extra boundary goes, possibly by the 'off' points also
Missing Boundary
A missing boundary is created by leaving a boundary predicate out
The missing boundary merges different domains and causes many test failures through the number of bugs present is only one
It is shown in the image (f) that a missing boundary is caught by the two 'on' points as the processing for A is same as the processing for B
A missing boundary, shown in image (f), is caught by the two 'on' points because the processing for A and B is the same - either A or B processing
0 comments:
Post a Comment