Databases Reference
In-Depth Information
(b) We create a statistical inference algorithm that can deal with imperfect
execution traces (Section 8.2.5).
(c) We develop two heuristics for eliminating uninteresting properties (Sec-
tion 8.2.6). These heuristics increase the percentage of interesting prop-
erties in the inference results and are crucial for the approach to be
useful in practice.
(d) We present a chaining method for constructing large finite state au-
tomata out of a set of smaller ones (Section 8.2.7). This method is useful
for presenting a large number of inferred properties in a more readable
way.
In order to evaluate our approach, we built a prototype tool called Perra-
cotta and applied it to several real systems including Microsoft Windows and
the JBoss Application Server. The results demonstrate that the dynamic an-
alysis technique is useful in several different software development activities.
Section 8.3 presents the inference results on real systems with a focus on help-
ing program understanding. Section 8.4 describes other uses of the inferred
properties. Section 8.4.1 describes combining Perracotta with two program
verification tools. Section 8.4.2 presents the experiments of using Perracotta
in program differencing. We show that the technique can aid in program dif-
ferencing by discovering important differences among multiple versions of real
systems.
8.2 Specification Inference
To illustrate our dynamic temporal specification inference approach we use
a simple Producer-Consumer program as a running example (Section 8.2.1).
Our inference approach follows the steps shown in Figure 8.1. An instrumentor
instruments the program to monitor information of interest (Section 8.2.2).
Then, the instrumented program is executed against a set of test cases to
User
Report
Instrumented
Program
Execution
Traces
Inferred
Properties
Program
Property
Templates
Test Suite
FIGURE 8.1: Overview of our approach.
 
Search WWH ::




Custom Search