Databases Reference
In-Depth Information
book
book
Daikon
solution.seats = 7
solution.seats = 4
solution.seats = 4
...
solution.seats > 0
FIGURE 2.4: An example predicate generated by Daikon.
findBestSolution
return.seats > 0
...
getCompaniesIterator
return = iterator
getAvailableFlights
persons > 0
bookFlight
persons > 0
from = 'MXP','BGY'
...
book
solution.seats > 0
getAvailableSeats
return > 0
size
return = 1
…..
…..
…..
1
2
5
6
9
10
13
14
15
16
bookFlight
persons = 6
from = 'BDS'
...
getCompaniesIterator
return = iterator
hasNext
return = true
configurationError
41
42
44
0
43
findCompositeSolution
return.seats = 10
...
getAvailableFlights
persons = 10
getAvailableSeats
return = 7
book
solution.seats = 4
getAvailableSeats
return = 4
size
return = 0
bookFlight
persons = 10
from = 'BGY'
...
…..
…..
…..
…..
17
21
22
25
26
29
30
37
38
39
40
FIGURE 2.5: The initial EFSA obtained from the traces in Figure 2.3.
2.4.4 Merging Equivalent States in EFSA
In the previous steps, gkTail generalizes the values of the attributes and
produces transition constraints. In the last step, gkTail generalizes the order-
ing of the events and produces compact EFSA. The initial EFSA produced in
the third step accepts only sequences of method calls that correspond to the
input traces. However in general, the finite set of input traces is a sample of
the infinitely many behaviors of a component. By generalizing the ordering
of the events in the initial EFSA, gkTail extends the model of the program
behavior including a possibly infinite set of sequences of method calls. gkTail
generalizes the ordering of the events with a heuristic inspired from the heuris-
Search WWH ::




Custom Search