Validating the Correctness of Reactive Systems Specifications Through Systematic ExplorationFT
Reactive synthesis is an automated procedure to obtain a correct-by-construction reactive system from its temporal logic specification. While the synthesized system is guaranteed to be correct w.r.t. the specification, the specification itself may be incorrect w.r.t. the engineers’ intention or w.r.t. the environment in which the system should execute in. It thus requires validation.
Combinatorial coverage (CC) is a well-known coverage criterion. Its rationale and key for effectiveness is the empirical observation that in many cases, the presence of a defect depends on the interaction between a small number of features of the system at hand.
In this work we propose a validation approach for a reactive system specification, based on a systematic combinatorial exploration of the behaviors of a controller that was synthesized from it. Specifically, we present an algorithm to generate and execute a small scenario suite that covers all tuples of given variable value combinations over the reachable states of the controller.
We have implemented our work in the Spectra synthesis environment. We evaluated it over benchmarks from the literature using a mutation approach, specifically tailored for evaluating scenario suites of temporal specifications for reactive synthesis. The evaluation shows that for pairwise coverage, our CC algorithm is feasible and provide a 1.7 factor of improvement in mutation score compared to random scenario generation. We further report on a case study with students who have participated in a workshop class at our university and have used our tool to validate their specifications. The case study results demonstrate the potential effectiveness of our work in helping engineers detect real bugs in the specifications they write.