Atomyste is a project funded by Progress, an initiative of NWO (Dutch Organization for Scientific Research), the ministry of Economic Affairs and Industry. The research is carried out as a joint effort by the Formal Methods and Software Engineering research groups at the University of Twente (UT) and the Software Technology research group at Nijmegen University (KUN) in the Netherlands. Industry is represented by Philips Research Laboratories, Ordina, CMG, Siemens and ASML. The main goal of the project is the development of methods, techniques and tools to support the automatic generation of tests from specifications. The project is aimed at practically applicable results that have a sound theoretical basis.

Testing is one of the most universally used methods for checking the correctness of systems. Also in the area of embedded software systems testing is an important issue. Correct functioning is especially important because errors discovered after delivery can be very costly, as their repair may involve recalling already sold systems.

Atomyste is a spin off of the Côte de Resyste project. Côte de Resyste aimed at completely automating the test process. They did a wonderfull job and generated a lot of theory and techniques all coming together in the test tool TorX. While applying the theory and tools, the Côte de Resyste project recognized that atom splitting or action refinement was a problem in the test generation process. This problem arises because test cases are derived from the specification. In most cases the specification is on an abstracter level than the implementation. As a result the derived test cases are also abstract and hence may be incompatible with the implementation.

There are basically two remedies for this problem:
1) Refinement of the specification, or
2) Refinement of the test case.

Refinement means that more detailed information is added. For example a specification may state that after pressing a button one should get coffee with milk. The implementation however requires two buttons to be pressed, one for the coffee and one for the milk. We say the atomic action "coffee with milk button" is split to "milk button followed by coffee button", hence the term atom splitting. So to put it more formal: given the refinement function R("coffee with milk button", "milk button" ; "coffee button") (";" stands for followed by) we can refine the specification or the test case to the same level as the implementation.

The Atomyste project will concentrate entirely on developing methods, techniques and tools for the generation of concrete test cases from abstract specifications, given a refinement function. This means the generation of test cases that are at the same abstraction level as the implementation. With this part of the automated testing puzzle solved, the applicability of automated testing comes one step closer.



Here are the publications related to the Atomyste project


This page was last updated by Machiel van der Bijl on 2004-09-16