The current approaches for regression test selection of embedded programs are usually based on data- and control-dependency analyses, often augmented with human reasoning. Existing techniques do not take into account additional execution dependencies which may exist among code elements in such programs due to features such as tasks, task deadlines, task precedences, and inter-task communications.
In this context, we propose a model-based regression test selection technique for such programs. Our technique first constructs a graph model of the program; the proposed graph model has been designed to capture several characteristics of embedded programs, such as task precedence order, priority, intertask communication, timers, exceptions and interrupt handlers, which we consider important for regression-test selection. Our regression test selection technique selects test cases based on an analysis of the constructed graph model.
We have used eight programs from the automotive control domain for our experimental studies. These applications include a simplified adaptive cruise controller, power window controller, and climate controller. These C programs have been auto-generated from Simulink models using the Real-Time Workshop tool in MATLAB [Mathworks 2011] . The size of the un-commented source lines in the programs range from 156 to 737 LOC.
For each program, we systematically created several modified versions by adding, modifying, or deleting one or more lines of code, or by making a change to the Simulink model and then auto-generating the code.
In order to avoid the possibility of making unrealistic changes to programs, we consulted several industry professionals involved in Simulink/Stateflow-based embedded program development. The relative frequency of occurrence of the different types of changes that we introduced are based on feedback from the industry experts.
We have implemented our technique to realize a prototype tool. The experimental results obtained using this tool show that, on average, our approach selects about 28.33% more regression test cases than those selected by a traditional approach. We observed that, on average, 36.36% of the fault-revealing test cases were overlooked by the existing regression test selection technique.
To read more of this external content, download the complete paper from the author archives online at Ohio State University.