DocumentCode
2155063
Title
A plethora of paths
Author
Larson, Eric
Author_Institution
Seattle Univ., Seattle, WA
fYear
2009
fDate
17-19 May 2009
Firstpage
40
Lastpage
49
Abstract
A common static software bug detection technique is to use path simulation. Each execution path is simulated using symbolic variables to determine if any software errors could occur. The scalability of this and other path-based approaches is dependent on the number of paths in the program. This paper explores the number of paths in 15 different programs. Often, there are one or two functions that contribute a large percentage of the paths within a program. A unique aspect in this study is that slicing was used in different ways to determine its effect on the path count. In particular, slicing was applied to each interesting statement individually to determine if that statement could be analyzed without suffering from path explosion. Results show that slicing is only effective if it can completely slices away a function that suffers from path explosion. While most programs had several statements that resulted in short path counts, slicing was not adequate in eliminating path explosion occurrences. Looking into the tasks that suffer from path explosion, we find that functions that process input, produce stylized output, or parse strings or code often have significantly more paths than other functions.
Keywords
digital simulation; program debugging; program slicing; program verification; path simulation; plethora; program slicing; program verification; software bug detection technique; static analysis; Computer bugs; Explosions; Flow graphs; Law; Legal factors; Performance analysis; Scalability; Software safety; Software testing; Software tools;
fLanguage
English
Publisher
ieee
Conference_Titel
Program Comprehension, 2009. ICPC '09. IEEE 17th International Conference on
Conference_Location
Vancouver, BC
ISSN
1092-8138
Print_ISBN
978-1-4244-3998-0
Electronic_ISBN
1092-8138
Type
conf
DOI
10.1109/ICPC.2009.5090026
Filename
5090026
Link To Document