Fault-based testing aims at selecting test cases to detect hypothesized faults in a program. Ideally, such selected test cases can guarantee to detect hypothesized faults if they do appear in the programs. Most fault-based testing strategies derive their test cases based on the assumption that at most one of the hypothesized faults is committed by the programmer. However, empirical studies show that multiple faults occur more often in programs and test case selection strategies developed for single faults cannot guarantee to detect multiple faults. In this thesis, double faults that might have occurred within Boolean expressions are studied. A double fault is defined as the occurrences of any two single faults. Since the different order of occurrences of two single faults in a double fault may result in different faulty expressions, double faults were classified into two categories, namely double fault with and without ordering. After modelling faulty expressions from these two categories, we compared these faulty expressions and enumerate all possible faulty expressions of double fault in Boolean expressions. The detection conditions of the considered faulty expression were studied from a theoretical perspective and are characterized based on certain properties of test cases. These conditions helped to identify and develop test case selection strategies to detect such double faults. After examining the fault detection capability of some existing test case selection strategies developed for single faults, six test case selection strategies were proposed to supplement an existing test case selection strategy to detect double faults. We proved that these strategies are guaranteed to detect double faults and investigate the cost of these strategies for double faults detection. This thesis helps us to better understand how different faults occur in a Boolean expression and how they interact with each other. This provides further insight for modelling and detecting multiple faults such as triple faults.
History
Thesis type
Thesis (PhD)
Thesis note
A dissertation presented for fulfillment of the requirements for the award of Doctor of Philosophy, Swinburne University of Technology, 2010.