Author:
W. E. Howden
Affiliation:
CSE, University of California at San Diego, United States
Keyword(s):
Testing, elusive, bugs, oracles, necessary, sufficient, incomplete, BET, JUnit, Elusive Bug Hypothesis.
Related
Ontology
Subjects/Areas/Topics:
Dependable Computing
;
Enterprise Software Technologies
;
Reliable Software Technologies
;
Software Engineering
Abstract:
Elusive bugs involve combinations of conditions that may not fit into any informal or intuitive testing scheme. One way to attack them is with Bounded Exhaustive Testing, in which all combinations of inputs for a bounded version of an application are tested. Studies of BET effectiveness for known bugs indicate that it is a promising approach. Because of the numbers of tests that are involved, BET normally depends on automated test generation and execution. This in turn requires the use of an automated oracle. In some cases the construction of a complete automated oracle would require the development of a second version of the application. This may be avoidable if incomplete oracles are used. Two classes of incomplete oracles are identified: necessity and sufficiency oracles. Examples are given of experiments using a necessity and a sufficiency oracle.