DocumentCode
251954
Title
Detecting infeasible branches based on code patterns
Author
Sun Ding ; Hongyu Zhang ; Hee Beng Kuan Tan
Author_Institution
Nanyang Technol. Univ., Singapore, Singapore
fYear
2014
fDate
3-6 Feb. 2014
Firstpage
74
Lastpage
83
Abstract
Infeasible branches are program branches that can never be exercised regardless of the inputs of the program. Detecting infeasible branches is important to many software engineering tasks such as test case generation and test coverage measurement. Applying full-scale symbolic evaluation to infeasible branch detection could be very costly, especially for a large software system. In this work, we propose a code pattern based method for detecting infeasible branches. We first introduce two general patterns that can characterize the source code containing infeasible branches. We then develop a tool, called Pattern-based method for Infeasible branch Detection (PIND), to detect infeasible branches based on the discovered code patterns. PIND only performs symbolic evaluation for the branches that exhibit the identified code patterns, therefore significantly reduce the number of symbolic evaluations required. We evaluate PIND from two aspects: accuracy and efficiency. The experimental results show that PIND can effectively and efficiently detect infeasible branches in real-world Java and Android programs. We also explore the application of PIND in measuring test case coverage,
Keywords
program diagnostics; program testing; Android programs; Java programs; PIND method; code pattern based method; code pattern discovery; full-scale symbolic evaluation; infeasible branch detection; pattern-based method; program branches; software engineering tasks; symbolic evaluation; test case coverage measurement; test case generation; test coverage measurement; Accuracy; Androids; Humanoid robots; Java; Pattern recognition; Semantics; Syntactics; Infeasible branch; code patterns; program analysis; test case coverage;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week - IEEE Conference on
Conference_Location
Antwerp
Type
conf
DOI
10.1109/CSMR-WCRE.2014.6747227
Filename
6747227
Link To Document