Issue No. 08 - August (1996 vol. 22)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.536956
<p><b>Abstract</b>—Predicates appear in both the specification and implementation of a program. One approach to software testing, referred to as <b>predicate testing</b>, is to require certain types of tests for a predicate. In this paper, three fault-based testing criteria are defined for compound predicates, which are predicates with one or more AND/OR operators. <b>BOR</b> (<it>b</it>oolean <it>o</it>perato<it>r</it>) testing requires a set of tests to guarantee the detection of (single or multiple) boolean operator faults, including incorrect AND/OR operators and missing/extra NOT operators. <b>BRO</b> (<it>b</it>oolean and <it>r</it>elational <it>o</it>perator) testing requires a set of tests to guarantee the detection of boolean operator faults and relational operator faults (i.e., incorrect relational operators). <b>BRE</b> (<it>b</it>oolean and <it>r</it>elational <it>e</it>xpression) testing requires a set of tests to guarantee the detection of boolean operator faults, relational operator faults, and a type of fault involving arithmetical expressions. It is shown that for a compound predicate with <it>n</it>, <it>n</it> > 0, AND/OR operators, at most <it>n</it> + 2 constraints are needed for BOR testing and at most 2 * <it>n</it> + 3 constraints for BRO or BRE testing, where each constraint specifies a restriction on the value of each boolean variable or relational expression in the predicate. Algorithms for generating a minimum set of constraints for BOR, BRO, and BRE testing of a compound predicate are given, and the feasibility problem for the generated constraints is discussed. For boolean expressions that contain multiple occurrences of some boolean variables, how to combine BOR testing with the meaningful impact strategy developed by Weyuker, Goradia, and Singh [<ref rid="bibe055221" type="bib">21</ref>] is briefly described.</p>
Software testing, predicate testing, fault-based testing, boolean operator faults, relational operator faults, off-by-$\epsilon$ faults.
K. Tai, "Theory of Fault-Based Predicate Testing for Computer Programs," in IEEE Transactions on Software Engineering, vol. 22, no. , pp. 552-562, 1996.