Title :
Discovering complete API rules with mutation testing
Author :
Nguyen, Anh Cuong ; Khoo, Siau-Cheng
Author_Institution :
Dept. of Comput. Sci., Nat. Univ. of Singapore, Singapore, Singapore
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.
Keywords :
application program interfaces; data mining; formal specification; formal verification; legislation; program testing; public domain software; software maintenance; source coding; API rule; automatic mine specification; call sequence; execution trace; false positive defect; frequent pattern mining; legitimate specification; mutation testing; open source software; semantics; software construction; software maintenance; software testing; software verification; source code; suppression technique; Computer bugs; Data mining; Java; Open source software; Semantics; Testing; formal specifications; mutation testing; specification mining;
Conference_Titel :
Mining Software Repositories (MSR), 2012 9th IEEE Working Conference on
Conference_Location :
Zurich
Print_ISBN :
978-1-4673-1760-3
DOI :
10.1109/MSR.2012.6224275