27.07.2013 Views

2 Why We Need Model-Based Testing

2 Why We Need Model-Based Testing

2 Why We Need Model-Based Testing

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

276 Further Reading<br />

An approach of using scenario style modeling with model programs written in<br />

AsmL (see, e.g., Gurevich et al., 2005) was elaborated in Grieskamp et al. (2004).<br />

In order to address a practical demand of Spec Explorer (SpecExplorer, 2006) users,<br />

a limited support for scenario-oriented modeling was added to the Spec Explorer<br />

tool through scenario actions. In Spec Explorer, the user can write models either<br />

in AsmL (Gurevich et al., 2005) or in Spec# (Barnett et al., 2005). The need for a<br />

general notion of composition, in order to handle other forms of scenario control and<br />

parameter generation, has been discussed in several sources (Campbell et al., 2005a;<br />

Veanes et al., 2005, 2007a). In this context, action machines have been proposed to<br />

compose partial behavioral descriptions as a variation of symbolic-labeled transition<br />

systems (Grieskamp et al., 2006).<br />

The use of scenarios in the form of live sequence charts is discussed as a way<br />

both to model and to program reactive systems with the Play-Engine (Harel and<br />

Marelly, 2003).<br />

The idea of property checking using model program composition (see Section<br />

14.4.4) is related to the automata theoretic approach to model checking where an<br />

automaton corresponding to the negation of the property to be checked is composed<br />

with the model (Clarke et al., 1999; Holzmann, 2004).<br />

<strong>Model</strong>ing objects. The formal treatment of objects is based on the notion of reserve<br />

elements from the ASM theory (Gurevich, 1995). In particular, creation of a new<br />

object corresponds to importing of a reserve element. The support for modeling with<br />

objects was already supported in the AsmL-T tool (Barnett et al., 2003) that is the<br />

predecessor of Spec Explorer. Support for dynamic object graphs was also present<br />

in the Agedis tools (Hartman and Nagin, 2004).<br />

The state isomorphism problem discussed in Section 15.5 arises when unordered<br />

data structures and objects are combined and is as hard as graph isomorphism<br />

(Ullmann, 1976; McKay, 1981). The problem occurs very frequently. Already the<br />

standard Spec Explorer example known as the chat system uses objects as well as<br />

sets and maps; see Utting and Legeard (2006, Section 6.5) for a detailed exposition<br />

of this example. The state isomorphism problem was not solved in Spec Explorer.<br />

If objects are not used, then state isomorphism reduces to state equality that can<br />

be checked in linear time. This is possible because the internal representation of<br />

all data structures can then be canonicalized. The same argument is true if objects<br />

are used but all data structures are ordered. Then state isomorphism reduces to<br />

heap canonicalization in the context of model checking and can be implemented in<br />

linear time (Iosif, 2004; Musuvathi and Dill, 2005). Bogor (Robby et al., 2006)isa<br />

customizable software model checking engine that uses the method of Iosif (2004)<br />

to perform heap canonicalization based on an ordering of object ids. Korat (Boyapati<br />

et al., 2002) is a tool for automated test generation based on Java specifications. It also<br />

uses the concept of heap isomorphism. Symstra (Xie et al., 2005) uses a technique<br />

more free ebooks download links at:<br />

http://www.ebook-x.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!