Font Size: a A A

Pruning Dynamic Slices With Probabilistic Inference

Posted on:2014-01-29Degree:MasterType:Thesis
Country:ChinaCandidate:J B XiaFull Text:PDF
GTID:2248330392961060Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Dynamic program slicing often could capture the faulty codesresponsible for the creation and mutation of the incorrect output.Debugging using dynamic slice also unburdens engineers with its limitedcode size. However, conventional dynamic slices do not present extrametrics for further code condensation thus may still require considerablehuman effort to locate the fault in large slicing results. Automated faultlocalization techniques could be applied to dynamic slicing for betterequipped debugging information. A number of probabilistic approaches areproposed to employ data mining techniques for automated faultlocalization for predicate statements but clearly have some limitations ofapplicable problem scope.In order to increase the productivity of the debugging process, wepropose a novel strategy for prioritizing dynamic program slices byautomatically calculating the probability of correctness of each statementbased on the dynamic slices. Our approach first extracts a runtimedependence graph of the observed program outcome. The next step is thetransformation from the dependence network to a Bayesian network beforewe run a probabilistic inference for the likelihood of correctness of theexecution instances and estimate the corresponding correctness of thestatic statements. Finally we use clustering to prune the slices and verifythe error coverage. Results show that the aggressive clustering strategycaptures27.49%errors with only4%of the slices while conservativestrategy retains84.66%defects with66%of the slices. Programmers canadminister a guided bug locating process using pruned dynamic slices.
Keywords/Search Tags:dynamic slicing, debugging, probabilistic inference, automated program analysis
PDF Full Text Request
Related items