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.

374 Kirsten Berkenkötter and Raimund Kirner<br />

In pr<strong>in</strong>ciple, the test case generation algorithm depends on the reachability<br />

graph as the traces represented by this are concretized dur<strong>in</strong>g test case generation.<br />

If the reachability graph or even the partition graph is too large further<br />

strategies have to be applied based on pragmatic reasons. These can be:<br />

• Trace length limitation One possibility is limit<strong>in</strong>g the trace length of<br />

a test case to a certa<strong>in</strong> length. After that, process<strong>in</strong>g of reachable states is<br />

aborted.<br />

• Randomized state space exploration Another way of limit<strong>in</strong>g the size<br />

of the partition or reachability graph is choos<strong>in</strong>g the successor states of one<br />

state randomly out of all possible ones. This is done until a fixed number of<br />

states is reached or a specific time limit exceeds.<br />

• Bit-State Hash<strong>in</strong>g It is also possible to use a hash table with fixed length.<br />

Each state is stored there with respect to a key value that must be computed<br />

based on a given algorithm. Therefore, different states may be related to the<br />

same key. As only one bit is used for hash<strong>in</strong>g, there can exist exactly one<br />

entry for each key value. If a state with an already used key is reached, it<br />

overwrites the hash entry. Exploration from the former state is stopped then.<br />

A generated test suite can be reduced further by elim<strong>in</strong>at<strong>in</strong>g redundant test<br />

cases as one test case can be <strong>in</strong>cluded <strong>in</strong> another, longer one. To perform this<br />

reduction, the test suite is transformed to a tree structure called test tree. This<br />

is also helpful for nondeterm<strong>in</strong>istic tests where new <strong>in</strong>puts must be chosen with<br />

respect to the nondeterm<strong>in</strong>istic output of the SUT. Obviously, this technique is<br />

also applicable to test<strong>in</strong>g untimed systems.<br />

Summary: The presented test case generation algorithm for models based on<br />

a dense time doma<strong>in</strong> relies ma<strong>in</strong>ly on the partition<strong>in</strong>g of state sets <strong>in</strong>to equivalent<br />

sets called partitions. Partitions are chosen with respect to state sets that enable<br />

the same transitions and consist of the same states. Therefore, the <strong>in</strong>f<strong>in</strong>itely many<br />

states <strong>in</strong> the TTS underly<strong>in</strong>g an ERA are grouped so that a symbolical f<strong>in</strong>ite<br />

partition graph is the result. This can be used for test case generation.<br />

The generated test suite can still be very large as it depends on the size of<br />

the partition graph. If this is very large, heuristics must be used. Three possibilities<br />

are suggested, namely trace length limitation, randomized state space<br />

exploration, and bit-state hash<strong>in</strong>g.<br />

The delays used <strong>in</strong> timed traces also depend on heuristics. Stress<strong>in</strong>g the SUT<br />

with the shortest possible delay values as well as test<strong>in</strong>g its patience by choos<strong>in</strong>g<br />

the largest delays are claimed to be most important for test<strong>in</strong>g as extreme values<br />

are considered best for f<strong>in</strong>d<strong>in</strong>g errors.<br />

The chosen model<strong>in</strong>g language ERA restricts the orig<strong>in</strong>al timed automata by<br />

us<strong>in</strong>g only event clocks and urgent transitions. However, this seems not to be a<br />

drawback as the result<strong>in</strong>g model is still expressive. The ma<strong>in</strong> problem with this<br />

approach is that the partition graph may be still too large to generate a test<br />

suite with practicable size without us<strong>in</strong>g further heuristics.

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

Saved successfully!

Ooh no, something went wrong!