Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering 2016
DOI: 10.1145/2950290.2950357
|View full text |Cite
|
Sign up to set email alerts
|

Python predictive analysis for bug detection

Abstract: Python is a popular dynamic language that allows quick software development. However, Python program analysis engines are largely lacking. In this paper, we present a Python predictive analysis. It first collects the trace of an execution, and then encodes the trace and unexecuted branches to symbolic constraints. Symbolic variables are introduced to denote input values, their dynamic types, and attribute sets, to reason about their variations. Solving the constraints identifies bugs and their triggering input… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
3
2
2

Relationship

1
6

Authors

Journals

citations
Cited by 24 publications
(7 citation statements)
references
References 24 publications
0
7
0
Order By: Relevance
“…The defect types include conceptual program elements which are function, check, documentation, assignment, algorithm and violation type. More recently, [23] presents a Python predictive analysis. Their tool is able to detect 46 bugs with 16 unreported before and they also classify those bugs base on their defect in the Python program.…”
Section: Related Workmentioning
confidence: 99%
“…The defect types include conceptual program elements which are function, check, documentation, assignment, algorithm and violation type. More recently, [23] presents a Python predictive analysis. Their tool is able to detect 46 bugs with 16 unreported before and they also classify those bugs base on their defect in the Python program.…”
Section: Related Workmentioning
confidence: 99%
“…Owing to the lack of declarations of variable types and allowing dynamic changes of class/instance structures in Python, type errors and attribute errors are common in Python programs. Xu et al [23] also verified that attribute errors, type errors, and unicode errors are very common in Python applications. isinstance, issubclass and type are often introduced to aid fixing bugs, but they also cause wrong type check bugs.…”
Section: Implications For Developers and Researchersmentioning
confidence: 95%
“…In recent years, researchers began to analyze the dynamic features in Python code. As a typical dynamic language, previous studies on Python language mainly include program slicing techniques [24,25], information flow analysis [26], type analysis [23,[27][28][29], polymorphism analysis [30], and alias analysis [31]. The first study on Python dynamic features was conducted by Holkner and Harland [2], which traced the usages of dynamic features in Python projects.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…However, this dynamic nature has also been reported to cause reduced development productivity (Kleinschmager et al 2012), code usability (Mayer et al 2012), or code quality (Meyerovich and Rabkin 2013;Gao et al 2017). The lack of a (visible static) type system is the main reason for type errors encountered in these dynamic languages (Xu et al 2016a).…”
Section: Introductionmentioning
confidence: 99%