Abstract
Fault based testing aims at detecting hypothesized faults based on specifications or program source. There are some fault based techniques for testing Boolean expressions which are commonly used to model conditions in specifications as well as logical decisions in program source. The MUMCUT strategy has been proposed to generate test cases from Boolean expressions. Moreover, it detects eight common types of hypothesized faults provided that the original expression is in irredundant disjunctive normal form, IDNF. Software practitioners are more likely to write the conditions and logical decisions in general form rather than IDNF. Hence, it is interesting to investigate the fault detecting capability of the MUMCUT strategy with respect to general form Boolean expressions. In this article, we perform empirical studies to investigate the fault detection capability of the MUMCUT strategy with respect to general form Boolean expressions as well as mutated expressions. A mutated expression can be obtained from the original given Boolean expression by making a syntactic change based on a particular type of fault.

Similar content being viewed by others
Notes
The seven types of faults are expression negation fault, term omission fault, operator reference fault, literal negation fault, literal omission fault, literal insertion fault and literal reference fault. Please refer to Sect. 2.2 for a detailed discussion of these faults.
Note that, variable reference fault is also used in other studies, say Kuhn (1999), to mean that all occurrences of a particular variable in the expression are replaced by another variable. As such, VRF can be different from LRF when the variable being replaced occurs more than once in the expression (Lau and Yu 2005).
Here, we assume that the \({\tt AND}\) operator will have a higher precedence than the \({\tt OR}\) operator.
References
Chen, T. Y., & Lau, M. F. (2001a). Test case selection strategies based on Boolean specifications. Software Testing, Verification and Reliability, 11(3), 165–180.
Chen, T. Y., & Lau, M. F. (2001b). Test suite reduction and fault detecting effectiveness: An empirical evaluation. In Proceedings of 6th International Conference on Reliable Software Technologies–Ada-Europe 2001, number 2043 in LNCS, (pp. 253–265). Berlin: Ada-Europe, Springer.
Chilenski, J. J. (2001). An investigation of three forms of the modified condition decision coverage (mcdc) criterion. Technical Report DOT/FAA/AR-01/18, Federal Aviation Administration, US Department of Transportation, Washington, DC.
Chilenski, J. J., & Miller, S. P. (1994). Applicability of modified condition/decision coverage to software testing. Software Engineering Journal, 9(5), 193–200.
Dupuy, A., & Leveson, N. (2000). An empirical evaluation of the MC/DC coverage criterion on the HETE-2 satellite software. In Proceedings of Digital Aviation Systems Conference (DASC 2000), Philadelphia, USA.
Foster, K. A. (1980). Error sensitive test cases analysis (ESTCA). IEEE Transactions on Software Engineering, 6(2), 258–264.
Foster, K. A. (1984). Sensitive test data for logic expressions. ACM SIGSOFT Software Engineering Notes, 9(2), 120–125.
How Tai Wah, K. S. (2000). A theoretical study of fault coupling. Software Testing, Verification and Reliability, 10(1), 3–45.
Kobayashi, N., Tsuchiya, T., & Kikuno, T. (2002). Non-specification-based approaches to logic testing for software. Information and Software Technology, 44(2), 113–121.
Kuhn, D. R. (1999). Fault classes and error detection capability of specification-based testing. ACM Transactions on Software Engineering and Methodology, 8(4), 411–424.
Lau, M. F., Liu, Y., & Yu, Y. T. (2006). On detection conditions of double faults related to terms in Boolean expressions. In Proceedings of COMPSAC 2006: The 30th Annual International Computer Software and Application Conference, (pp. 403–410). Chicago, IL: IEEE Computer Society Press.
Lau, M. F., Liu, Y., & Yu, Y. T. (2007a). On detection double faults with term and literal in Boolean expressions. In Proceedings of 7th International Conference on Quality Software (QSIC 2007), (pp. 117–126). IEEE Computer Society Press.
Lau, M. F., Liu, Y., Chen, T. Y., & Yu, Y. T. (2007b). On the detection conditions of double faults related to literals in Boolean expressions. In Proceedings of 12th International Conference on Reliable Software Technologies—Ada-Europe 2007, number 4498 in LNCS, (pp. 55–68). Berlin: Ada-Europe, Springer.
Lau, M. F., & Yu, Y. T. (2005). An extended fault class hierarchy for specification-based testing. ACM Transactions on Software Engineering and Methodology, 14(3), 247–276.
Leveson, N. G., Heimdahl, M. P. E., Hildreth, H., & Reese, J. D. (1994). Requirements specification for process-control systems. IEEE Transactions on Software Engineering, 20(9), 684–707.
Mano, M. M. (1991). Digital design, (2nd ed.). Englewood Cliffs, NJ: Prentice-Hall.
Morell, L. J. (1990). A theory of fault-based testing. IEEE Transactions on Software Engineering, 16(8), 844–857.
Myers, G. J. (1979). The art of software testing, (2nd ed.). New York: Wiley.
Offutt, A. J. (1992). Investigations of the software testing coupling effect. ACM Transactions on Software Engineering and Methodology, 1(1), 5–20.
Sun, C.-A., Dong, Y.-W., Sim, K. Y., Lai, R., & Chen, T. Y. (2006). Analyzing and extending MUMCUT for fault-based testing of general Boolean expressions. In Proceedings of Sixth IEEE International Conference on Computer and Information Technology (CIT 2006), Seoul.
Sun, C.-A., & Sim, K. Y. (2004). An FSM-based parameterized generator for general Boolean expressions. In Proceedings of International Computer Engineering Conference (ICENCO), (pp. 119–126). Cairo, Egypt.
Tai, K. C. (1996). Theory of fault-based predicate testing for computer programs. IEEE Transactions on Software Engineering, 22(8), 552–562.
Tai, K. C., & Su, H. K. (1987). Test generation for boolean expressions. In Proceedings of COMPSAC 1987: The Eleventh Annual International Computer Software and Application Conference, (pp. 278–284). IEEE Computer Society Press.
Weyuker, E. J., Goradia, T., & Singh, A. (1994). Automatically generating test data from a boolean specification. IEEE Transactions on Software Engineering, 20(5), 353–363.
Yu, Y. T., & Lau, M. F. (2006). A comparison of MC/DC, MUMCUT and several other coverage criteria for logical decisions. The Journal of Systems and Software, 79(5), 577–590.
Yu, Y. T., Lau, M. F., & Chen, T. Y. (2006). Automatic generation of test cases from Boolean specifications using the MUMCUT strategy. The Journal of Systems and Software, 79(6), 820–840.
Acknowledgments
The work is supported in part from the Australian Research Council (Discovery Project ID: DP0558597), the Swinburne University of Technology (Research Development Scheme 2006), and the Science and Technology of Beijing Jiaotong University (Grant No. 2007RC099).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Chen, T.Y., Lau, M.F., Sim, K.Y. et al. On detecting faults for Boolean expressions. Software Qual J 17, 245–261 (2009). https://doi.org/10.1007/s11219-008-9064-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-008-9064-5