1 Introduction
Reactis helps engineers build better software faster by automating many
verification and validation tasks in a model-based design process.
Model-based design is growing in popularity among engineers who develop embedded
control software. In model-based design, executable visual models of embedded
control software are developed in advance of system implementation. The models
may be used to drive the development of control software, and may also serve as
a basis for software and system testing. One benefit of model-based design is
that it allows engineers to begin debugging and validation activities at design
time, when the cost of detecting and dealing with design defects is much smaller
than at the software and system implementation level. Another is that models may
be used as a baseline for assessing implementation behavior during system
testing and validation. For these reasons, judicious use of modeling can lead to
quite dramatic over-all reductions in the cost of control-system development,
especially when robust tool support is available. The Reactis tool suite of Reactive Systems, Inc., substantially enhances the
gains organizations realize from model-based design by automating testing and validation
processes based on Simulink/Stateflow models of control systems. Using
Reactis, engineers may:
-
generate tests from a model that thoroughly exercise the model (structural testing);
- find runtime errors (e.g. overflow errors, divide-by-zero errors) in a model;
- execute the model and track coverage (e.g. MC/DC);
- perform functional tests to check whether or not a model can violate its requirements;
- use a Reactis test suite as an oracle to check whether code conforms to a model.
Reactis also includes an array of sophisticated model debug features (e.g.
breakpoints, scopes, reverse execution). In this paper, we discuss how Reactis
and model-based design may be used to automate different verification and
validation activities in your software quality assurance process. In
particular, we show how the tool may be used to develop more robust models, how
it can streamline software and system testing, and how it may be used to support
the reverse-engineering of models from legacy code implementing embedded control
applications.
|