COPPICE: Discovering Complete API Rules through Mutation Testing
No Thumbnail Available
Date
2012-03-27T09:01:47Z
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Specifications are important for many activities
during software construction and maintenance process such as testing, verification, debugging and repairing. Despite their importance, specifications are often missing, informal or incomplete because they are difficult to write manually. Many techniques have been proposed to automatically mine specifications describing method call sequence from execution traces
or source code using frequent pattern mining. Unfortunately, a sizeable number of such “interesting” specifications discovered
by frequent pattern mining may not capture the correct use patterns of method calls. Consequently, when used in software testing or verification, these mined specifications lead to many false positive defects, which in turn consume much effort for manual investigation.
We present a novel framework for automatically discovering legitimate specifications from execution traces using a mutation testing based approach. Such an approach gives a semantics
bearing to the legitimacy of the discovered specifications. We introduce the notion of maximal precision and completeness as the desired forms of discovered specifications, and describe in detail suppression techniques that aid efficient discovery. Preliminary evaluation of this approach on several open source
software projects shows that specifications discovered through our approach, compared with those discovered through frequent pattern mining, are much more precise and complete.
When used in finding bugs, our specifications also locate defects with significantly fewer false positives and more true positives.