Automatic Concolic Test Generation with Virtual Prototypes for Post

Download Report

Transcript Automatic Concolic Test Generation with Virtual Prototypes for Post

AUTOMATIC CONCOLIC TEST GENERATION WITH VIRTUAL PROTOTYPES FOR POST-SILICON VALIDATION

Reviewer: Shin-Yann Ho Instructor: Jie-Hong Jiang

Abstract

 This paper presents a generation of concolic post-silicon prototypes.

testing approach to tests with virtual  The generated test cases have been issued to both virtual prototypes and silicon devices . We observed significant coverage improvement with generated test cases.

Introduction

 Virtual prototypes : fast, fully functional software models of hardware systems, which enable unmodified execution of software code.

 Concolic testing : a hybrid testing technique that integrates concrete execution with symbolic execution

Key Contribution

Concolic testing for post-silicon validation.

Not only integrates concrete and symbolic execution, but also combines virtual and silicon device executions.

The observability and controllability of virtual prototypes are fully leveraged.

Transaction-based test selection .

A transaction-based eliminate redundancy test selection developed to select device states under test and in generated tests.

strategy is

Symbolic Execution & Some Definitions       Symbolic execution executes a program with symbolic values as inputs instead of concrete ones and represents the values of program variables as symbolic expressions.

Def1: device state is denoted as s = ⟨ sI , sN ⟩ Def2: A device request is denoted as

r

which is issued by high-level software to control and operate the device. ( seq = r1, r2….rn

) Def3: A test case is denoted as tc = ⟨ seq, r ⟩ Def4: A state under test is denoted as sut where sut is the device state on which test cases are generated. Def5: device transaction, denoted as t , is a program path of a virtual device.

State under test transaction testcase

Test generation & Selection

To solve the two challenges: 1. State selection problem 2. Test case redundancy problem

Implementation

Harness Generation for Symbolic Execution

Symbolic Execution 1. Path explosion a. loop bound b. time bound

2. Environmental interaction 

Testing with Generated Test Cases

Compares interface states of the real and virtual devices to detect any inconsistency.

Experimental Result

Experimental Result

Conclusion

 Present an approach to generation of post-silicon tests with virtual prototypes, which fully leverages the observability and traceability of virtual prototypes.  Too few test cases  Can propose more advantages of using symbolic execution  Test selection still needs to trace paths (exponential)  Why showing the number of line of codes?

Thanks for your attention!