COVER – Generating Test-Vectors for Simulink/Stateflow Models

About COVER

COVER is a test-vector generation toolset for Matlab Simulink/Stateflow models. As backend COVER uses bounded model checking for fast generation of test-vectors achieving high coverage.

For questions about COVER, con­tact Daniel Kroening, Nannan He or Michael Tautschnig. You should also read the license.

COVER News

NEW: There is now a Google Group for annoucements related to COVER.

Documentation

Our testing process consists of three main steps:

  1. Translation of the model to goto binaries.
  2. Test-vector generation.
  3. Model-level simulation using test-vectors as input.

Using the binaries available for download below, these steps are performed as follows:

  1. Translation:
      $ ./cprover --convert MODEL.mdl
      $ ./goto-cc -I simulink/ *.c simulink/blocktypes/*.c -o mdl.bin
    For Windows, use the following command line instead:
      $ cprover --convert MODEL.mdl
      $ goto-cl /I simulink *.c simulink\blocktypes\*.c /Femdl.bin
  2. Generate test vectors:
      $ ./cover --unwind 10 mdl.bin --outfile tests
    This step produces a series of testsXYZ.xml files, where each file describes one test vector.
  3. Use the test vectors in the simulation. To do so, add the block from our atc2xml.mdl file as provided in the distribution to your model. Its property dialog allows to select one of the generated test vector files.

To experiment with those steps, you may use our example.mdl file.

We also provide papers that describe how COVER works.

 

Download

We currently only distribute binaries for x86 Linux and Windows.

x86 Windows x86 Linux
  • COVER: cover-0-2-win.zip
    Unzip the archive before running.

  • Important: You need CL (comes with Microsoft Visual Studio) in your PATH for preprocessing. If you don't have Visual Studio, download Visual C++ Express (free!).

  • COVER 64-bit/x64: cover-0-2-linux-64.tgz
    COVER 32-bit/i386: cover-0-2-linux-32.tgz
    Do tar xfz cover-0-2-linux-32.tgz before running.

  • Of course, it's assumed that you have gcc/g++ and the usual header files and libraries installed.

Funding

This research is currently supported by the MOGENTES EU FP7 STREP.