• DocumentCode
    1370943
  • Title

    Theory of fault-based predicate testing for computer programs

  • Author

    Tai, Kuo-Chung

  • Author_Institution
    Dept. of Comput. Sci., North Carolina State Univ., Raleigh, NC, USA
  • Volume
    22
  • Issue
    8
  • fYear
    1996
  • fDate
    8/1/1996 12:00:00 AM
  • Firstpage
    552
  • Lastpage
    562
  • Abstract
    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
  • Keywords
    Boolean functions; program debugging; program testing; programming theory; AND/OR operators; BOR testing; BRE testing; BRO testing; NOT operators; arithmetical expressions; boolean expressions; boolean operator faults; boolean operator testing; boolean relational expression testing; boolean relational operator testing; boolean variable; compound predicates; fault-based predicate testing; feasibility problem; formal specification; meaningful impact strategy; program implementation; program testing; relational operator faults; Computer science; Digital arithmetic; Fault detection; Materials testing; Software engineering; Software testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.536956
  • Filename
    536956