Theory of Fault-Based Predicate Testing for Computer Programs

Predicates appear in both the specification and implementation of a program. One approach to software testing, referred to as predicate testing, 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. BOR (boolean operator) 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. BRO (boolean and relational operator) testing requires a set of tests to guarantee the detection of boolean operator faults and relational operator faults (i.e., incorrect relational operators). BRE (boolean and relational expression) 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 n, n>0, AND/OR operators, at most n+2 constraints are needed for BOR testing and at most 2*n+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 (Weyuker et al., 1994) is described.

[1]  Kuo-Chung Tai,et al.  Test generation for Boolean expressions , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.

[2]  Lori A. Clarke,et al.  A Close Look at Domain Testing , 1982, IEEE Transactions on Software Engineering.

[3]  Mladen A. Vouk,et al.  Automatic test generation for predicates , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[4]  A. Jefferson Offutt,et al.  An Empirical Evaluation of Weak Mutation , 1994, IEEE Trans. Software Eng..

[5]  Lee J. White,et al.  Detection of linear errors via domain testing , 1992, TSEM.

[6]  Mladen A. Vouk,et al.  Evaluation of a Predicate-Based Software Testing Strategy , 1994, IBM Syst. J..

[7]  Larry J Morell,et al.  A Theory of Fault-Based Testing , 1990, IEEE Trans. Software Eng..

[8]  William E. Howden,et al.  Weak Mutation Testing and Completeness of Test Sets , 1982, IEEE Transactions on Software Engineering.

[9]  Steven P. Miller,et al.  Applicability of modified condition/decision coverage to software testing , 1994, Softw. Eng. J..

[10]  Mladen A. Vouk,et al.  Empirical studies of predicate-based software testing , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[11]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[12]  Debra J. Richardson,et al.  The RELAY model of error detection and its application , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[13]  Jeffrey M. Voas,et al.  PIE: A Dynamic Failure-Based Technique , 1992, IEEE Trans. Software Eng..

[14]  Kuo-Chung Tai Predicate-based test generation for computer programs , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[15]  Kenneth A. Foster Error Sensitive Test Cases Analysis (ESTCA) , 1980, IEEE Transactions on Software Engineering.

[16]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[17]  Lee J. White,et al.  A Domain Strategy for Computer Program Testing , 1980, IEEE Transactions on Software Engineering.

[18]  Elaine J. Weyuker,et al.  Automatically Generating Test Data from a Boolean Specification , 1994, IEEE Trans. Software Eng..

[19]  Lori A. Clarke,et al.  An information flow model of fault detection , 1993, ISSTA '93.

[20]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[21]  Tarak Goradia Dynamic impact analysis: a cost-effective technique to enforce error-propagation , 1993, ISSTA '93.

[22]  K. A. Foster,et al.  Sensitive test data for logic expressions , 1984, SOEN.