Data Flow Testing for Virtual Prototypes
Muhammad Hassan1,a, Vladimir Herdt1,b, Hoang M. Le1,c, Mingsong Chen2, Daniel Große1,3,d and Rolf Drechsler1,3,e
1Institute of Computer Science, University of Bremen, 28359 Bremen, Germany.
ahassan@informatik.uni-bremen.de
bvherdt@informatik.uni-bremen.de
chle@informatik.uni-bremen.de
dgrosse@informatik.uni-bremen.de
edrechsle@informatik.uni-bremen.de
2Shanghai Key Lab of Trustworthy Computing, East China Normal University, Shanghai, China.
mschen@sei.ecnu.edu.cn
3Cyber-Physical Systems, DFKI GmbH, 28359 Bremen, Germany
ABSTRACT
Data flow testing (DFT) has been shown to be an effective testing strategy. DFT features a high fault detection rate while avoiding the intense scalability problems to achieve full path coverage. In this paper we propose to apply data flow testing for SystemC virtual prototypes (VPs). Our contribution is twofold: First, we develop a set of SystemC specific coverage criteria for data flow testing. This requires to consider the SystemC semantics of using non-preemptive thread scheduling with shared memory communication and event-based synchronization. Second, we explain how to automatically compute the data flow coverage result for a given VP using a combination of static and dynamic analysis techniques. The coverage result provides clear suggestions for the testing engineer to add new testcases in order to improve the coverage result. Our experimental results on real-world VPs demonstrate the applicability and efficacy of our analysis approach and the SystemC specific coverage criteria to improve the testsuite.