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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

452 Wolfgang Prenn<strong>in</strong>ger, Mohammad El-Ramly, and Marc Horstmann<br />

F<strong>in</strong>ally, to generate a sequence of <strong>in</strong>structions, the test generation procedure<br />

accepts the required number of <strong>in</strong>struction <strong>in</strong>stances as <strong>in</strong>put and activates the<br />

<strong>in</strong>struction tree traversal. It also <strong>in</strong>terleaves <strong>in</strong>struction generation with <strong>in</strong>struction<br />

execution us<strong>in</strong>g the behavioral simulator. The <strong>in</strong>termediate processor state<br />

is checked after the new <strong>in</strong>struction <strong>in</strong>stance has been executed and a decision<br />

is taken whether to <strong>in</strong>clude the new <strong>in</strong>stance <strong>in</strong> the test or reject it. If the simulator<br />

state after an executed <strong>in</strong>struction is undesirable, then it is rejected and<br />

the state of the simulator is reverted.<br />

15.7 Test Case Instantiation<br />

Let us recall the follow<strong>in</strong>g part of the model-based process described <strong>in</strong> Sec. 15.2:<br />

A test model together with a test specification is used to generate one or more<br />

test cases. S<strong>in</strong>ce the test model is an abstraction from the SUT the generated<br />

test cases are abstract, too. In order to be able to execute the generated test<br />

cases with the SUT they have to be <strong>in</strong>stantiated. With this part of the process<br />

<strong>in</strong> m<strong>in</strong>d we describe the follow<strong>in</strong>g aspects <strong>in</strong> this section:<br />

• What is the motivation for the abstract test models and what abstraction<br />

techniques are used <strong>in</strong> the literature? 1<br />

• What limitations for test<strong>in</strong>g are implied by these abstractions? 1<br />

• What structures of test cases can be found <strong>in</strong> the literature?<br />

• What methods are used to translate an abstract test case to a concrete one?<br />

Note that the abstraction of the test model <strong>in</strong> respect to the SUT arises three<br />

times <strong>in</strong> the model-based test<strong>in</strong>g process: firstly, when build<strong>in</strong>g the abstract test<br />

model, secondly, when bridg<strong>in</strong>g the abstraction gap between abstract test cases<br />

and the SUT by <strong>in</strong>stantiat<strong>in</strong>g the test cases, and f<strong>in</strong>ally, when evaluat<strong>in</strong>g the<br />

test executions by compar<strong>in</strong>g the abstracted system runs of the SUT with the<br />

expected ones of the test model.<br />

15.7.1 Abstractions <strong>in</strong> the Test Model<br />

The purpose of the test models is: to support the validation process and the verification<br />

process of the system under development. On the one hand the model is<br />

used to formalize and to validate the system’s requirements. On the other hand<br />

the model serves as specification and is used to test a system’s implementation<br />

<strong>in</strong> order to verify the implementations behavior. Due to these requirements<br />

the models abstract as far as possible from implementation details and concentrate<br />

on the ma<strong>in</strong> aspects of the system. In this section we summarize briefly<br />

the motivation for specify<strong>in</strong>g abstract test models and we describe the different<br />

abstraction techniques which are used <strong>in</strong> the reviewed literature.<br />

1 the correspond<strong>in</strong>g paragraph is partly taken from [PP04].

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

Saved successfully!

Ooh no, something went wrong!