|
[26 Jan]Slicing + Model Checking applied to Fault Localization/Verification:"Programmers use slicing while debugging", is well known. But while researching for dynamic slicing, I found two pieces of recent work that are very interesting because they combine slicing and model checking. They are: [1] Error Explanation with Distance Metrics, Alex Groce, TACAS 04. (Fault Localization) [2] Static Program Transformations for Efficient Software Model Checking. S. Vasudevan et. al., World Computer Congress. 04. (Verification) Fault localization The first paper is one of the latest of a series of paper by Alex Groce, which started with the paper "What went Wrong? Explaining Counterexamples" with Willam Visser. The goal here is: Localize the fault in a counterexample prodcued by a model checker. Model checker finds a counter-example, which is a trace showing how the property of interest is violated. It is similar to a trace of failing test case. This paper tries to find the cause of the bug in the failing trace by computing a trace using the model checker(statically) that is as "similar" as possible to the failing trace, but such that the property is not violated. That is, they find a successful, but very similar trace. Then the cause of the bug is the difference between the two. He defines it as delta-slicing – "the smallest subset of changes in values between two executions that result in a change in the value of this predicate?" Comments:
[3] Backward conditioning: A new specialization technique and its application to program comprehension. Workshop on Program Comprehension 2001. [4] Pre/Post Conditioned Slicing. ICSM 2001. Verification I have not read this paper well enough. But the idea is to use conditioned slicing and amorphous slicing to reduce the size of the program that is subjected to model checkeing. The numbers look extremely impressive: an order of improvement in speed on average. Looks to me a lot to do in this area as this is their first paper and also, amorphous and conditioned slicing are relatively recent ideas – atleast their use to aid model checking is most probably novel. [5] Amorphous Program Slicing. WPC 97. Last modified 27 January 2005 at 12:13 am by Saswat Anand |