Predicate Interpretation Analysis Based on Soot.

Chunrong Fang,Qingkai Shi,Yang Feng,Zicong Liu,Xiaofang Zhang,Baowen Xu
DOI: https://doi.org/10.18293/seke2017-052
2017-01-01
Abstract:Symbolic execution maintains a path condition pc for every possible path of a program. It is challenging to construct a pc if some complex issues are involved in the path. A predicate interpretation pi is a subexpression of a pc and a pc of a path is a conjunction of all pis in the path. Predicate interpretation has been widely used in theoretical analysis on domain testing and related fields. It recently emerges new impact on software testing by using partial path constraints to generate test data. In this paper, we propose an approach to produce pis in a program. A tool for predicate interpretation analysis for Java programs is implemented based on the data-flow framework of Soot. Most of Java features can be handled in our tool. Moreover, a formal rule of predicate interpretation analysis is presented for more applications in the future. The experimental results show that our tool can produce pis of a program effectively and efficiently.
What problem does this paper attempt to address?