Title: Symbolic Test Generation for Reactive Systems
1Symbolic Test Generation for Reactive Systems
- Elena Zinovieva
- IRISA / INRIA Rennes
- 24 October, 2001
2Testing
Is there difference between expected and actual
behavior of the system?
Test Failed (there are problems with the system
implementation)
Test Passed
3White-Box Testing
White-Box Testing is based on the internal
structure of a computer system. The aim of such
a testing is to exercise thoroughly the systems
code.
4Black-Box Testing
In Black-Box Testing the computer system is
treated as a black-box, no references are made to
the internal structure, so it is possible to
observe only inputs/outputs to/from the system.
5Kinds of the Testing
- White-Box Testing
- Data-Flow Testing
- Mutation Testing
- Domain Testing
- Black-Box Testing
- Performance Testing
- Robustness Testing
- Reliability Testing
- Conformance Testing
6Example Tea Machine
tea button
coffee
tea
7Reactive System
8Software Development
Specification, Test Purpose
System Requirements
IUT
Test Failed an error is in the IUT
Executable Test Case
- Test Case Generation
- TGV
- TorX
- TestComposer
- STG.
Test Passed the system works fine
Test Execution
9Problems and Solution
Possible
- State-space explosion as variables are
instantiated with all their possible values - Test cases are not readily understandable.
Use a new model and symbolic techniques to
produce a test case!
10IOSTS Model (2/1)
Specification
11IOSTS Model (2/2)
Test Purpose
12STG Architecture
Symbolic Test Case IOSTS
Symbolic Specification IOSTS
Symbolic Test Generation
Symbolic Test Purpose IOSTS
Translation IOSTS to C
Executable Test Program C
13Symbolic Test Generation
14Test Case
(vPaidgtpPrice) (mRemValvPaid-pPrice) Return ?
(mRemVal) vPaidpPrice
Test Case
15Results
- The derivation of test cases from formal
specifications can be fully automated. - The test cases are symbolic and concrete.
- The test cases are correct (no false positive
outcomes, no false negative outcomes, etc.)
16Ongoing and Future Work
- Improving heuristic for the simplification
(symbolic test generation) using a constraint
propagation. - Use higher-level languages (LOTOS, etc.) for
specifying systems at the user level, which
translates automatically to IOSTS. - Work on the implementation of mechanism to
automatically compute test purpose from the
system specification.