Regression Testing of Virtual Prototypes Using Symbolic Execution
  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. 
Bin Lin and Dejun Qian
cs.SE