DocumentCode
660569
Title
Detecting and characterizing semantic inconsistencies in ported code
Author
Ray, Bonnie ; Miryung Kim ; Person, Suzette ; Rungta, Neha
Author_Institution
Univ. of Texas at Austin, Austin, TX, USA
fYear
2013
fDate
11-15 Nov. 2013
Firstpage
367
Lastpage
377
Abstract
Adding similar features and bug fixes often requires porting program patches from reference implementations and adapting them to target implementations. Porting errors may result from faulty adaptations or inconsistent updates. This paper investigates (1) the types of porting errors found in practice, and (2) how to detect and characterize potential porting errors. Analyzing version histories, we define five categories of porting errors, including incorrect control- and data-flow, code redundancy, inconsistent identifier renamings, etc. Leveraging this categorization, we design a static control- and data-dependence analysis technique, SPA, to detect and characterize porting inconsistencies. Our evaluation on code from four open-source projects shows that SPA can detect porting inconsistencies with 65% to 73% precision and 90% recall, and identify inconsistency types with 58% to 63% precision and 92% to 100% recall. In a comparison with two existing error detection tools, SPA improves precision by 14 to 17 percentage points.
Keywords
error detection; program debugging; program diagnostics; public domain software; bug fixes; code redundancy; data-dependence analysis technique; data-flow; error detection tools; inconsistent identifier renamings; incorrect control; open-source projects; ported code; porting errors; semantic inconsistency characterization; semantic inconsistency detection; static control; Cloning; Context; History; Linux; OFDM; Semantics; Syntactics;
fLanguage
English
Publisher
ieee
Conference_Titel
Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on
Conference_Location
Silicon Valley, CA
Type
conf
DOI
10.1109/ASE.2013.6693095
Filename
6693095
Link To Document