RISE-TESTCOMP subproject

Evolving Tests with Integrational Development

Test Driven Development is an illustrative example of a process
where testing is highly integrated in programming development. Test
cases are designed and implemented in parallel to production code.

To support regression testing, frameworks such as JUnit are used
to automate test execution. Doing this, testing can be performed
often, and thus decrease complexity in the development process.

However, automatic test execution only makes tests easier to
run. To improve the quality of tests the aim should be on how
tests are generated. In this subproject we investigate how techniques
in automatic test data generation can be applied to integrational
software engineering.

Subproject members

Subproject description

The main idea is to write a formal specification (instead of test
code) and from this automatically generate functional
tests. Structural tests can be generated in a similar fashion from
production code and verified against the formal specification.

In this way the software development tool can automatically
determine any inconsistencies, thus test code (i.e. a specification)
and production code will always be synchronized. This is important
since test code is often as large as (or larger than) production code.

Subproject plan

Phase 1: Study of coverage criteria for specifications.

Phase 2: Experiment on coverage criteria for specifications.

Phase 3: Evaluation of coverage criteria for specifications.

Publications

J. Edvardsson. Derivation of a Minimal Set of Tests in Automatic
Partitioning. Third Conference on Software Engineering Research and
Practise in Sweden (SERPS'03), October, 2003.