Fault-based testing selects test cases to detect hypothesized faults. In logic expression testing, many fault classes have been defined by researchers based on the syntax of the expressions. Due to the syntactic nature of the logic expressions, some fault classes may exist in one form (say, disjunctive normal form -DNF) of the logic expressions but not in other forms (say, general form). As a result, different faultbased testing techniques have been developed for different types of logic expressions and these techniques have different fault detecting capabilities. For example, some have high detecting power in DNF but low detecting power in the general form. Another complication arises when software developers decide which forms of logic expressions should be used in the first place. Should software developers use the general form for flexibility but compromise that with fewer fault classes and less fault detection? Or should they use DNF for more fault classes and, hence, better fault detection (because software developers have more "hypothesized faulty" scenarios to test) but sacrificing the generality of the expressions. In this paper, we propose a set of uniform definitions of fault classes such that they can be applied irrespective of the syntactic nature of the logic expressions, to produce consistent fault-based testing techniques and fault detection capabilities.
One of the requirements of Modified Condition and Decision Coverage (MCDC) is that test cases should be selected to demonstrate that a condition can independently affect the outcome of a decision. However, it is known that test cases cannot be selected to satisfy this "independently-affect" requirement when a decision contains strongly coupled conditions. Researchers have proposed various forms of MCDC in addressing this issue. In last 20 years, these variant MCDC forms have been discussed and applied as test data adequacy criteria in white-box testing, and as fault revealing techniques in empirical studies. In this paper, we performed a systematic literature review (SLR) on these MCDC variants. By clarifying the existing meanings of these variants, we are able to define another MCDC form. Moreover, we performed an empirical study to compare the fault detecting ability of this new form with other existing MCDC variants. The results showed that this new form of MCDC has a higher fault detecting ability than the others.
Abstract-Fault based testing is a technique in which test cases are chosen to reveal certain classes of faults. At present, testing professionals use their personal experience to select testing methods for fault classes considered the most likely to be present. However, there is little empirical evidence available in the open literature to support these intuitions. By examining the source code changes when faults were fixed in seven open source software artifacts, we have classified bug fix patterns into fault classes, and recorded the relative frequencies of the identified fault classes. This paper reports our findings related to "if-conditional" fixes. We have classified the "if-conditional" fixes into fourteen fault classes and calculated their frequencies. We found the most common fault class related to changes within a single "atom". The next most common fault was the omission of an "atom". We analysed these results in the context of Boolean specification testing.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.