with Contracts
MIDHUN
MOHAN
S7
ROLL NO
1
OUTLINE
Introduction
Background
Preliminaries
INTRODUCTION
A programmer always faces two challenges
1.Finding faults
2.Correcting them
tool
What is
th
Autofix
faults
software
AUTOFIX IN ACTION..
A doubly-linked list implementing TWO_WAY_SORTED_SET
Continues
PRELIMINARIES
Contracts
Auto Fix starts with a set of test cases that expose a specific fa
10
Candidate fixes...
11
Snap shots..
It consisting of a triple:
(l,p,v)
where l=program location
p=Boolean predicate
v=Boolean value
The snap shots come from two sources
Enumeration
12
Invariant Analysis
collection of predicates that all hold at l(location)
13
Enumeration
Only considering snapshots corresponding
14
Fault Localization
The goal of the fault localization phase is to
Static Analysis
15
CONTROL
DEPENDENCE
16
EXPRESSION
DEPENDENCE
Dynamic
Analysis
It is used to determine
which locations are likely to host the cause
of failure.
Dynamic score dyn (l,p,v) measure how often it appears in failing runs
as opposed to passing runs.
Principle for computing the dynamic score:
li
(l,p,v) t if li loc (t), l=li and v=[p]
t
For every test t, there is (t) describes ts contribution to the
dynamic score(l,p,v).
Large (t) implies (l,p,v) is a source of error if t is a failing test
cases.
17
18
The evidence
provided by one
failing test case
alone is stronger
than the evidence
provided by one
passing test case
Overall score
AutoFix combines the
various metrics(static
and dynamic) into an
overall score
susp(l,p,v)
19
Behavioral Models
;l
try to modify the program state by calling routines on the current or other objects .
21
22
Fix validation
23
Fix Ranking
The AutoFix algorithm often finds several valid
one to deploy
24
Experimental Evaluation
It addresses the following questions
25
Experimental setup
Experimental subjects:
26
27
Experimental results
28
Other results..
29
conclusion
Auto fix is an important contribution towards the
30