Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns

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 analysi...

Full description

Bibliographic Details
Main Authors: Honglei Zhu, Dahai Jin, Yunzhan Gong, Ying Xing, Mingnan Zhou
Format: Article
Language:English
Published: IEEE 2019-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/8631017/
id doaj-a3ccfb54b79d44d5a957a79bcd7c7666
record_format Article
spelling doaj-a3ccfb54b79d44d5a957a79bcd7c76662021-03-29T22:25:13ZengIEEEIEEE Access2169-35362019-01-017150401505510.1109/ACCESS.2019.28945938631017Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint PatternsHonglei Zhu0https://orcid.org/0000-0002-6983-8181Dahai Jin1Yunzhan Gong2Ying Xing3Mingnan Zhou4State Key Laboratory of Network and Switching Technology, Beijing University of Posts and Telecommunications, Beijing, ChinaState Key Laboratory of Network and Switching Technology, Beijing University of Posts and Telecommunications, Beijing, ChinaState Key Laboratory of Network and Switching Technology, Beijing University of Posts and Telecommunications, Beijing, ChinaAutomation School, Beijing University of Posts and Telecommunications, Beijing, ChinaState Key Laboratory of Network and Switching Technology, Beijing University of Posts and Telecommunications, Beijing, ChinaThe 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.https://ieeexplore.ieee.org/document/8631017/Static analysisinfeasible pathconstraint patterninterprocedural analysis
collection DOAJ
language English
format Article
sources DOAJ
author Honglei Zhu
Dahai Jin
Yunzhan Gong
Ying Xing
Mingnan Zhou
spellingShingle Honglei Zhu
Dahai Jin
Yunzhan Gong
Ying Xing
Mingnan Zhou
Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns
IEEE Access
Static analysis
infeasible path
constraint pattern
interprocedural analysis
author_facet Honglei Zhu
Dahai Jin
Yunzhan Gong
Ying Xing
Mingnan Zhou
author_sort Honglei Zhu
title Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns
title_short Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns
title_full Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns
title_fullStr Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns
title_full_unstemmed Detecting Interprocedural Infeasible Paths Based on Unsatisfiable Path Constraint Patterns
title_sort detecting interprocedural infeasible paths based on unsatisfiable path constraint patterns
publisher IEEE
series IEEE Access
issn 2169-3536
publishDate 2019-01-01
description 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.
topic Static analysis
infeasible path
constraint pattern
interprocedural analysis
url https://ieeexplore.ieee.org/document/8631017/
work_keys_str_mv AT hongleizhu detectinginterproceduralinfeasiblepathsbasedonunsatisfiablepathconstraintpatterns
AT dahaijin detectinginterproceduralinfeasiblepathsbasedonunsatisfiablepathconstraintpatterns
AT yunzhangong detectinginterproceduralinfeasiblepathsbasedonunsatisfiablepathconstraintpatterns
AT yingxing detectinginterproceduralinfeasiblepathsbasedonunsatisfiablepathconstraintpatterns
AT mingnanzhou detectinginterproceduralinfeasiblepathsbasedonunsatisfiablepathconstraintpatterns
_version_ 1724191670810968064