University of Minnesota
Software Engineering Center

You are here

Steering Model-Based Oracles to Admit Real Program Behaviors

Date of Publication: 
June 2014
Associated Research Groups: 
Publication Files: 
The oracle - an arbiter of correctness of the system under test (SUT) - is a major component of the testing process. Specifying oracles is challenging for real-time embedded systems, where small changes in time or sensor inputs may cause large differences in behavior. Behavioral models of such systems, often built for analysis and simulation, are appealing for reuse as oracles. However, these models typically provide an idealized view of the system. Even when given the same inputs, the model’s behavior can frequently be at variance with an acceptable behavior of the SUT executing on a real platform. We therefore propose steering the model when used as an oracle, to admit an expanded set of behaviors when judging the SUT’s adherence to its requirements. On detecting a behavioral difference, the model is backtracked and then searched for a new state that satisfies certain constraints and minimizes a dissimilarity metric. The goal is to allow non-deterministic, but bounded, behavior differences while preventing future mismatches, by guiding the oracle - within limits - to match the execution of the SUT. Early results show that steering significantly increases SUT-oracle conformance with minimal masking of real faults and, thus, has significant potential for reducing development costs.
2014 International Conference on Software Engineering, Hyderabad, India, June 2014.
@inproceedings{gay2014steering, title={Steering model-based oracles to admit real program behaviors}, author={Gay, Gregory and Rayadurgam, Sanjai and Heimdahl, Mats PE}, booktitle={Companion Proceedings of the 36th International Conference on Software Engineering}, pages={428--431}, year={2014}, organization={ACM} }