kirancodes.me
To Proof Maintenance & Beyond!

Mining exception-handling rules as sequence association rules

Suresh Thummalapenta, Tao Xie

Abstract

Programming languages such as Java and C++ provide exception-handling constructs to handle exception conditions. Applications are expected to handle these exception conditions and take necessary recovery actions such as releasing opened database connections. However, exception-handling rules that describe these necessary recovery actions are often not available in practice. To address this issue, we develop a novel approach that mines exception-handling rules as sequence association rules of the form ldquo(FCc1...FCcn) nland FCarArr (FCe1...FCem)rdquo. This rule describes that function call FCa should be followed by a sequence of function calls (FCe1...FCem) when FCais preceded by a sequence of function calls (FCe1...FCcn). Such form of rules is required to characterize common exception-handling rules. We show the usefulness of these mined rules by applying them on five real-world applications (including 285 KLOC) to detect violations in our evaluation. Our empirical results show that our approach mines 294 real exception-handling rules in these five applications and also detects 160 defects, where 87 defects are new defects that are not found by a previous related approach.

BibTeX
@inproceedings{Thummalapenta-Xie:ICSE09,
  author    = {Suresh Thummalapenta and
               Tao Xie},
  title     = {Mining exception-handling rules as sequence association rules},
  booktitle = {ICSE},
  pages     = {496--506},
  publisher = {{IEEE}},
  year      = {2009},
}

Related papers