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

Eliminating Path Redundancy via Postconditioned Symbolic Execution

  • Qiuping Yi
  • , Zijiang Yang
  • , Shengjian Guo
  • , Chao Wang
  • , Jian Liu
  • , Chen Zhao
  • CAS - Institute of Software
  • Virginia Polytechnic Institute and State University
  • University of Southern California
  • CAS - Institute of Information Engineering

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

33 引用 (Scopus)

摘要

Symbolic execution is emerging as a powerful technique for generating test inputs systematically to achieve exhaustive path coverage of a bounded depth. However, its practical use is often limited by path explosion because the number of paths of a program can be exponential in the number of branch conditions encountered during the execution. To mitigate the path explosion problem, we propose a new redundancy removal method called postconditioned symbolic execution. At each branching location, in addition to determine whether a particular branch is feasible as in traditional symbolic execution, our approach checks whether the branch is subsumed by previous explorations. This is enabled by summarizing previously explored paths by weakest precondition computations. Postconditioned symbolic execution can identify path suffixes shared by multiple runs and eliminate them during test generation when they are redundant. Pruning away such redundant paths can lead to a potentially exponential reduction in the number of explored paths. Since the new approach is computationally expensive, we also propose several heuristics to reduce its cost. We have implemented our method in the symbolic execution engine KLEE [1] and conducted experiments on a large set of programs from the GNU Coreutils suite. Our results confirm that redundancy due to common path suffix is both abundant and widespread in real-world applications.

源语言英语
文章编号7835264
页(从-至)25-43
页数19
期刊IEEE Transactions on Software Engineering
44
1
DOI
出版状态已出版 - 1 1月 2018

学术指纹

探究 'Eliminating Path Redundancy via Postconditioned Symbolic Execution' 的科研主题。它们共同构成独一无二的指纹。

引用此