Help, help, i'm being suppressed! The significance of suppressors in software testing

Software Reliability Engineering(2013)

Cited 21|Views87
No score
Test features are basic compositional units used to describe what a test does (and does not) involve. For example, in API-based testing, the most obvious features are function calls; in grammar-based testing, the obvious features are the elements of the grammar. The relationship between features as abstractions of tests and produced behaviors of the tested program is surprisingly poorly understood. This paper shows how large-scale random testing modified to use diverse feature sets can uncover causal relationships between what a test contains and what the program being tested does. We introduce a general notion of observable behaviors as targets, where a target can be a detected fault, an executed branch or statement, or a complex coverage entity such as a state, predicate-valuation, or program path. While it is obvious that targets have triggers - features without which they cannot be hit by a test - the notion of suppressors - features which make a test less likely to hit a target - has received little attention despite having important implications for automated test generation and program understanding. For a set of subjects including C compilers, a flash file system, and JavaScript engines, we show that suppression is both common and important.
Translated text
Key words
authoring languages,fault diagnosis,file organisation,program diagnostics,program testing,software fault tolerance,API-based testing,JavaScript engines,automated test generation,causal relationships,complex coverage entity,compositional units,fault detection,flash file system,grammar-based testing,large-scale random testing,predicate-valuation,program path,program understanding,software testing,test features
AI Read Science
Must-Reading Tree
Generate MRT to find the research sequence of this paper
Chat Paper
Summary is being generated by the instructions you defined