Technical Reports (CIS)

Document Type

Technical Report

Date of this Version



Domains such as embedded systems, medical devices, process automation, etc. make use of controller software to make important decisions that can affect people’s lives and well being. Although safety-focused processes such as model-driven development can be used to assure a certain degree of quality in these applications, ultimately software testing still remains the primary mechanism by which faults are detected. However, a variety of challenges arises in identifying test cases for controller software, particularly in closed-loop systems that incorporate feedback from the entity being controlled, potentially leading to exponential growth in the number of paths through the code and difficulty in identifying sequences of inputs to put the application into the desired states for testing. In this paper, we present an approach to efficiently generating a set of test cases that will cover all reachable states in closedloop controller software, describe how it is possible to reduce the number of test cases without losing any coverage of states, and present evidence that, compared to other approaches, the technique significantly reduces the number of test cases (down to less than 1% in our experiments) needed to achieve the same level of coverage, with almost no negative effects on the test suite’s fault-finding capabilities.





Date Posted: 13 February 2013