跳到主要导航 跳到搜索 跳到主要内容

Dependence Guided Symbolic Execution

  • Western Michigan University

科研成果: 期刊稿件文章同行评审

45 引用 (Scopus)

摘要

Symbolic execution is a powerful technique for systematically exploring the paths of a program and generating the corresponding test inputs. However, its practical usage is often limited by the path explosion problem, that is, the number of explored paths usually grows exponentially with the increase of program size. In this paper, we argue that for the purpose of fault detection it is not necessary to systematically explore the paths, and propose a new symbolic execution approach to mitigate the path explosion problem by predicting and eliminating the redundant paths based on symbolic value. Our approach can achieve the equivalent fault detection capability as traditional symbolic execution without exhaustive path exploration. In addition, we develop a practical implementation called Dependence Guided Symbolic Execution (DGSE) to soundly approximate our approach. Through exploiting program dependence, DGSE can predict and eliminate the redundant paths at a reasonable computational cost. Our empirical study shows that the redundant paths are abundant and widespread in a program. Compared with traditional symbolic execution, DGSE only explores 6.96 to 96.57 percent of the paths and achieves a speedup of 1.02 \times to 49.56\times. We have released our tool and the benchmarks used to evaluate DGSE^\ast.

源语言英语
文章编号7497518
页(从-至)252-271
页数20
期刊IEEE Transactions on Software Engineering
43
3
DOI
出版状态已出版 - 1 3月 2017

学术指纹

探究 'Dependence Guided Symbolic Execution' 的科研主题。它们共同构成独一无二的指纹。

引用此