Require, Test and Trace IT

B. K. Aichernig, F. Lorber, D. Nickovic, and S. Tiran

Abstract:

We present a framework for requirement-driven test-case generation from specifications of synchronous reactive systems. We propose requirement interfaces as the formal specification model. Contract specifications of individual requirements are naturally combined by the conjunction operation. The conjunction of two requirement interfaces has the property that it subsumes all behaviors of the individual interfaces. We exploit this property to generate test cases incrementally. We use a small set of related requirements to drive test-case generation, thus avoiding the explosion of the state space to explore. In addition to test-case generation, we also provide a procedure for incremental consistency checking of the requirements. Our requirement-driven approach has several advantages: (1) both consistency checking and test case generation are incremental and thus more efficient; (2) test cases are naturally related to requirements, hence enabling easier traceability; and (3) fail verdicts in a test case can be mapped to violated requirements. We implemented a prototype using the SMT-solver Z3.



Reference: B. K. Aichernig, F. Lorber, D. Nickovic, and S. Tiran. Require, test and trace it. Technical report, Institute for Software Technology (IST), Graz University of Technology, 2014.

www-data, 2020-09-10