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.

402 Axel Bel<strong>in</strong>fante, Lars Frantzen, and Christian Schallhart<br />

Summary<br />

Lurette is targeted at the fully automated test<strong>in</strong>g of synchronous reactive systems.<br />

It builds a test harness from an environment description, a SUT, and an<br />

oracle. The SUT and the oracle must be given <strong>in</strong> terms of a C-file which implement<br />

a specific set of procedures. The environment description must be given<br />

<strong>in</strong> Lustre. It describes the environment and the test purpose simultaneously.<br />

The generated test sequence is chosen randomly such that relevance and <strong>in</strong>terest<br />

constra<strong>in</strong>ts are satisfied.<br />

Lurette allows to test SUTs which have numerical <strong>in</strong>puts and outputs. However,<br />

Lurette is only able to deal with l<strong>in</strong>ear constra<strong>in</strong>ts between these numerical<br />

parameters. Each step <strong>in</strong> the test sequence generation is subdivided <strong>in</strong>to two<br />

phases, first an abstracted environment description is used to obta<strong>in</strong> a set of<br />

l<strong>in</strong>ear constra<strong>in</strong>ts to be satisfied. Then the obta<strong>in</strong>ed constra<strong>in</strong>t set is solved.<br />

On the other hand, Lurette is not able to deal with liveness properties and<br />

it only allows to specify test purposes <strong>in</strong> terms of safety properties.<br />

14.2.3 GATeL<br />

Introduction<br />

The third Lustre-based tool which is described here is GATeL 5 [MA00]. Its<br />

approach is quite different from the two other Lustre related tools (Lutess and<br />

Lurette) presented <strong>in</strong> this chapter. Lutess and Lurette start the test sequence<br />

generation from the <strong>in</strong>itial state. Then the sequence is generated on the fly, i.e.,<br />

<strong>in</strong> each step the outputs of the SUT are used to compute a new <strong>in</strong>put for the SUT<br />

based on the environment description and the test purpose. This process is iterated<br />

either until a negative test verdict is produced, or until the maximum test<br />

sequence length is reached. In contrast, GATeL starts with a set of constra<strong>in</strong>ts<br />

on the last state of the test sequence to be generated. This set of constra<strong>in</strong>ts can<br />

conta<strong>in</strong> <strong>in</strong>variant properties as well as any other constra<strong>in</strong>t on the past which can<br />

be expressed <strong>in</strong> Lustre. The latter amounts to a test purpose s<strong>in</strong>ce it allows to<br />

state a predicate on all sequences which are of <strong>in</strong>terest. Dur<strong>in</strong>g the test sequence<br />

generation, GATeL tries to f<strong>in</strong>d a sequence which satisfies both, the <strong>in</strong>variant<br />

and the test purpose. To f<strong>in</strong>d such a sequence, GATeL employs constra<strong>in</strong>t logic<br />

programm<strong>in</strong>g (CLP) <strong>in</strong> a search process which extends the sequence backwards,<br />

i.e., from the last state to the first one.<br />

Test<strong>in</strong>g Method<br />

GATeL requires the SUT or a complete specification of the SUT, an environment<br />

description, and a test objective. All three elements must be supplied as Lustre<br />

source code. All three components of the test harness are not allowed to use real<br />

variables or tuples.<br />

5 See also http://www-drt.cea.fr/Pages/List/lse/LSL/Gatel/<strong>in</strong>dex.html.

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

Saved successfully!

Ooh no, something went wrong!