Regression Testing of Virtual Prototypes Using Symbolic Execution
This addresses a specific problem for electronics companies in accelerating software development, but it is incremental as it applies existing symbolic execution techniques to virtual prototypes.
The paper tackles the challenge of testing and validating virtual prototypes by introducing a regression testing approach using symbolic execution to compare device states between old and new versions, detecting numerous differences in experiments.
Recently virtual platforms and virtual prototyping techniques have been widely applied for accelerating software development in electronics companies. It has been proved that these techniques can greatly shorten time-to-market and improve product quality. One challenge is how to test and validate a virtual prototype. In this paper, we present how to conduct regression testing of virtual prototypes in different versions using symbolic execution. Suppose we have old and new versions of a virtual prototype, we first apply symbolic execution to the new version and collect all path constraints. Then the collected path constraints are used for guiding the symbolic execution of the old version. For each path explored, we compare the device states between two versions to check if they behave the same. We have applied this approach to a widely-used virtual prototype and detected numerous differences. The experimental results show that our approach is useful and efficient.