Databases Reference
In-Depth Information
Trace collection results
Clustered Weighted union
Union / Weighted union
up
up
up
sign
verify
initV
up
1'
2'
3'
4
up
initS
0
1
2
3
initS
initS
initV
verify
(a)
initV
up
0
0
1
2
3
up
initV
initS
sign
up
initV
initV
0
1'
2'
3'
1
2
3
up
verify
(b)
(c)
initS
up
FIGURE 6.10: Summarization: clustered weighted union versus weighted
union.
where the two usage patterns are combined. A clustered union, on the other
hand, will identify that these are two different usage patterns, and will return
(a) and (b) as two clusters.
Assume further that the code base also produced the automaton (c) of Fig-
ure 6.10. Automaton (c) refers to the same usage pattern as (a), but contains
an additional transition from the initial state, which represents an invocation
of initSign . This transition is erroneous in this particular usage pattern, al-
though it is not erroneous in the global view of the API, since an invocation of
initSign from the initial state is a legal behavior in another context { that of
pattern (b). In the weighted union, this transition simply increases the weight
of the bold edge by 1, but it is not recognized as an error. Our clustered weighted
union, on the other hand, recognizes that (c) belongs to the cluster of (a), and
as a result it identifies and removes the erroneous transition.
Note that after transitions are removed, the include relation can change as
disparate clusters sometimes converge. As such, we iterate the entire process,
starting from the clustering, until reaching a fixpoint. As a post-pass, an entire
cluster can be removed as noise based on further statistical analysis.
6.6 Refining Mining Results Using Inspection
When performing mining, some of the loss of precision is due to the (es-
sential) abstraction of the history. Spurious behavior that is included in the
mined automata due to the history abstraction sometimes eludes the statis-
tical summarization approaches since it repeats itself in multiple automata.
Thus, other techniques are needed to deal with such noise.
In this section, we describe a number of approaches for refining the re-
sults obtained through mining. These approaches are based on making the
history abstraction more precise. Our refinement is based on the observation
that the mined automata indicate where more analysis effort could help make
the results more precise. Namely, we select candidate paths from the mined
 
Search WWH ::




Custom Search