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...
Main Authors: | , , , , |
---|---|
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 |