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 457<br />

level. In the test model, an operation and its operands are conveniently symbolized<br />

by a str<strong>in</strong>g (a name). With this k<strong>in</strong>d of model, the behavior of the smart<br />

cannot be tested directly if it receives byte str<strong>in</strong>g which are for example one byte<br />

too short or too long, respectively. It is up to the test eng<strong>in</strong>eer to decide whether<br />

to cope with such illegal <strong>in</strong>put at the level of the model, or at the level of the<br />

driver component.<br />

Intense data abstraction can lead to <strong>in</strong>formation loss that cannot be coped<br />

with for test case generation. For example the smart card model developed by<br />

Philipps and Pretschner [PPS + 03] abstracts completely from file contents, and<br />

symbolizes files and operations on them without any implementation <strong>in</strong> the<br />

model. Hence the contents of the files and their evolution over runtime could<br />

not be tested with this model. Only static properties like file length could be<br />

verified.<br />

It is hard to detect feature <strong>in</strong>teraction if functional abstraction is applied<br />

to build separate test models for test<strong>in</strong>g dist<strong>in</strong>ct functionalities. For <strong>in</strong>stance,<br />

Farchi et al. [FHP02] use separate models to test different operations of the<br />

POSIX standard. These models help to verify the correct function<strong>in</strong>g of these<br />

operations <strong>in</strong> a stand-alone manner, but do not help to verify the behavior of<br />

the whole SUT where these operations are used <strong>in</strong> comb<strong>in</strong>ation. In other words<br />

unmeant behavior (bad feature <strong>in</strong>teraction) of the SUT caused by comb<strong>in</strong>ation<br />

of operations which were verified separately cannot detected by this approach.<br />

F<strong>in</strong>ally, problems can arise if temporal abstraction is <strong>in</strong>tensively used <strong>in</strong> the<br />

test model. Obviously, <strong>in</strong> the doma<strong>in</strong> of distributed real time systems a rigorous<br />

use of temporal abstraction can prohibit the detection of faults which stems<br />

from the sensitive <strong>in</strong>terleaved tim<strong>in</strong>g behavior of the separate components. As a<br />

counterexample, Dush<strong>in</strong>a et al. [DBG01] explicitly do not use temporal abstraction<br />

<strong>in</strong> their test model. In order to trace generated test cases and to check the<br />

expected performance a clock cycle <strong>in</strong> the test model corresponds exactly to a<br />

clock cycle <strong>in</strong> the real processor design.<br />

15.7.2 Structure of Test Cases<br />

A test case generated from the abstract test model and a test specification<br />

conta<strong>in</strong>s <strong>in</strong>puts for the SUT and expected outputs and observable states from<br />

the SUT. In the literature we f<strong>in</strong>d the different k<strong>in</strong>ds of structur<strong>in</strong>g a test case<br />

as follows:<br />

Test case is a trace In most model-based test<strong>in</strong>g approaches an abstract test<br />

case is a trace of the abstract test model. The test generator computes them<br />

accord<strong>in</strong>g to the test specification. In the approach described by Philipps and<br />

Pretschner [PPS + 03] it is trace of <strong>in</strong>put and output signals, <strong>in</strong> other approaches<br />

[SA99, FKL99, DBG01, FHP02] it is a trace of the model’s FSM conta<strong>in</strong><strong>in</strong>g<br />

actual states of <strong>in</strong>put, output and <strong>in</strong>ternal variables. Overall, the trace describes<br />

<strong>in</strong>puts/stimuli for the SUT and expected outputs or observable states of the<br />

SUT for the verdict def<strong>in</strong>ition. Roughly, one abstract test case corresponds to<br />

one concrete system run of the SUT.

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

Saved successfully!

Ooh no, something went wrong!