Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns

4Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

The static analysis plays an important role in many software engineering activities. However, the existence of infeasible paths, which causes lower program test coverage and several false positives in the results of the static analysis, has become one of the biggest challenges for the static analysis. In this paper, based on unsatisfiable path constraint patterns, we present a new approach to detect interprocedural infeasible paths. In our approach, we first discover nine unsatisfiable path constraint patterns by mining the common path constraint features of a large number of infeasible paths. Then, we detect the interprocedural infeasible paths; a detected path is deemed to be an interprocedural infeasible path if its simplified constraint conditions match one of the nine unsatisfiable path constraint patterns. To illustrate and verify the approach, an experimental study is performed on five open source C projects. The results show that compared with the existing approach, our approach requires less time on average and detects more interprocedural infeasible paths among the given paths.

Cite

CITATION STYLE

APA

Zhu, H., Jin, D., Gong, Y., Xing, Y., & Zhou, M. (2019). Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns. IEEE Access, 7, 15040–15055. https://doi.org/10.1109/ACCESS.2019.2894593

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free