• DocumentCode
    2400902
  • 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
  • fYear
    2012
  • fDate
    2-3 June 2012
  • Firstpage
    151
  • Lastpage
    160
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Mining Software Repositories (MSR), 2012 9th IEEE Working Conference on
  • Conference_Location
    Zurich
  • ISSN
    2160-1852
  • Print_ISBN
    978-1-4673-1760-3
  • Type

    conf

  • DOI
    10.1109/MSR.2012.6224275
  • Filename
    6224275