07.01.2013 Views

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

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.

15 Case Studies 453<br />

Motivations for the Abstractions The test models of the SUTs described <strong>in</strong> the<br />

literature are all abstractions of the SUTs. Note that the test model must be<br />

an abstraction and a simplification of the SUT because if not one could validate<br />

directly the SUT without spend<strong>in</strong>g extraord<strong>in</strong>ary efforts to build and validate a<br />

model. Generally the description techniques for model<strong>in</strong>g are <strong>in</strong>dependent of the<br />

implementation languages of the SUTs. The models represent artifacts of the<br />

the SUT symbolically <strong>in</strong> order to be more human readable and comprehensible.<br />

The most important motivation is probably that models are specified to<br />

support the validation process. Because the test models concentrate on the parts<br />

or certa<strong>in</strong> aspects of the SUT that are to be verified, they are simpler and<br />

easier to understand than the whole complexity of the SUT. Hence they can be<br />

managed <strong>in</strong>tellectually, validated by reviews and ma<strong>in</strong>ta<strong>in</strong>ed more easily. Even<br />

formal methods like model check<strong>in</strong>g or theorem prov<strong>in</strong>g are applicable to them<br />

sometimes. In other words, we get the confidence more easily that the model<br />

meets the requirements of the system and thus the model serves as an abstract<br />

reference implementation of the SUT.<br />

Another important motivation is a technical one: generally the test generators<br />

suffer from the state explosion problem. In order to support efficient test case<br />

generation the models have to be as simple i.e. as abstract as possible.<br />

Yet another aspect is that <strong>in</strong> some cases the models should be platform <strong>in</strong>dependent,<br />

i.e. <strong>in</strong>dependent from, respectively, the test framework, the simulation<br />

environment or the implementation language of SUT. This is achieved by model<strong>in</strong>g<br />

the SUT’s artifacts symbolically and by build<strong>in</strong>g an adaptor which translates<br />

the abstract test cases to concrete ones (cf. Sec. 15.7.3). Hence the models can<br />

be used to test several implementations realized on different platforms because<br />

the model leaves unchanged and only the adaptor has to be adjusted. Clearly,<br />

<strong>in</strong> this case, platform-specific issues cannot be tested.<br />

Functional Abstraction The purpose of functional (or behavior) abstraction is<br />

to concentrate on the “ma<strong>in</strong>” functionality of the SUT which has to be verified.<br />

This leads to an omission of cumbersome details <strong>in</strong> the test model that are not <strong>in</strong><br />

the focus of the verification task. 2 By do<strong>in</strong>g so the model often implements only<br />

parts of the complete behavior determ<strong>in</strong>ed <strong>in</strong> specification documents, i.e., the<br />

model does not completely def<strong>in</strong>e the <strong>in</strong>tended behavior of the SUT but models<br />

significant aspects only. In addition, functional abstraction supports the modelbased<br />

test<strong>in</strong>g process: if the SUT’s functionality can be divided <strong>in</strong>to <strong>in</strong>dependent<br />

parts, one can build a separate model for each part <strong>in</strong> order to verify each<br />

functionality separately. An obvious drawback is that only the modeled parts<br />

of the specification can be tested and that special care must be taken to detect<br />

feature <strong>in</strong>teractions between different functionalities.<br />

Examples for functional abstraction The case study described by Philipps and<br />

Pretschner [PPS + 03] concentrates on test<strong>in</strong>g the protocols between a smart card<br />

2<br />

This does not necessarily mean that special cases are omitted—if these have to be<br />

tested, they have to be modeled.

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

Saved successfully!

Ooh no, something went wrong!