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.

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

• Related Tools: [FGK + 96, Gar98, dVT98, MK99, EW92, Eer94]<br />

• Underly<strong>in</strong>g Theory: [Tre96c, VT01]<br />

• Case Studies: [BFdV + 99, dBRS + 00, dVBF02]<br />

14.2.12 STG<br />

Introduction<br />

STG (Symbolic Test Generator) [CJRZ02] has been developed at IRISA/INRIA<br />

Rennes, France. It is a tool that builds on the ideas on which TGV and TorX are<br />

based, and adds symbolic treatment of variables (data) to these. In TorX and<br />

TGV all variables <strong>in</strong> the specification are <strong>in</strong>stantiated for all possible values 10 .<br />

In contrast, variables <strong>in</strong> STG are treated <strong>in</strong> a symbolic way, lead<strong>in</strong>g to symbolic<br />

test suites that still conta<strong>in</strong> free variables, which are then <strong>in</strong>stantiated dur<strong>in</strong>g<br />

test execution. So, STG supports both generation of symbolic test suites, and<br />

execution of these.<br />

STG is a relatively new tool. The theory underly<strong>in</strong>g it has been published <strong>in</strong><br />

2000 [RdBJ00]; the tool was reported first <strong>in</strong> 2002 [CJRZ02]. STG has been used<br />

to test simple versions of the CEPS (Common Electronic Purse Specification)<br />

and of the 3GPP (Third Generation Partnership Program) smart card. The<br />

results of the CEPS case study are summarized <strong>in</strong> [CJRZ01]. STG was used to<br />

automatically generate executable test cases, and the test cases were executed on<br />

implementations of the systems, <strong>in</strong>clud<strong>in</strong>g mutants. Various errors <strong>in</strong> the source<br />

code of the mutants were detected.<br />

At the time of writ<strong>in</strong>g, STG is not publicly available (this may change <strong>in</strong> the<br />

future).<br />

Test Generation Process<br />

As mentioned <strong>in</strong> the <strong>in</strong>troduction, STG supports both test generation, and test<br />

execution, where the test cases that are generated and executed are symbolic. It<br />

implements a symbolic form of ioconf [Tre96a] but without quiescence (for an<br />

overview of implementation relations see Section 7.4, page 178).<br />

STG takes as <strong>in</strong>put a specification <strong>in</strong> the form of an (<strong>in</strong>itialized, discussed<br />

below) Input Output Symbolic Transition System (IOSTS) and a test purpose<br />

and produces from these a symbolic test case. Such a symbolic test case is a<br />

reactive program that covers all behavior of the specification that is targeted by<br />

the test purpose.<br />

For execution, the abstract symbolic test case is translated <strong>in</strong>to a concrete test<br />

program that is to be l<strong>in</strong>ked with the implementation. The result<strong>in</strong>g executable<br />

program is then run for test execution, which can yield three possible results:<br />

Pass, Fail or Inclusive, with their usual mean<strong>in</strong>g.<br />

An IOSTS differs from an LTS <strong>in</strong> the follow<strong>in</strong>g way. An IOSTS has specification<br />

parameters and variables. Actions are partitioned <strong>in</strong>to <strong>in</strong>put, output and<br />

10 Except when Promela, or LOTOS with Smile, are used <strong>in</strong> TorX.

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

Saved successfully!

Ooh no, something went wrong!