abstract |
We present a data mining method for automating the process of fault localization in software testing. Our method determines frequent patterns in a database of execution traces that carry discriminative information between correct executions and executions that lead to a failure. The execution traces are represented as reduced function call trees. We adapt a frequent subtree mining algorithm to identify the discriminative execution patterns which are used to determine the set of potentially faulty functions. A quantitative metric ranks these functions according to the probability of them containing a fault. The outcome of our data mining method is a static function call tree with function ranking suggesting the order in which to examine the functions during fault analysis. As an input, our method requires only the execution traces classified as correct or faulty executions. We validated our approach experimentally using a subset of Siemens benchmark programs.
|