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.


    Access

    Access via TIB

    Check availability in my library


    Export, share and cite



    Title :

    Detecting and Characterizing Semantic Inconsistencies in Ported Code


    Contributors:

    Conference:

    IEEE/ACM International Conference on Automated Software Engineering ; 2013 ; Palo Alto, CA, United States


    Publication date :

    2013-11-11


    Type of media :

    Conference paper


    Type of material :

    No indication


    Language :

    English




    Detecting and Characterizing Semantic Inconsistencies in Ported Code

    B. Ray / M. Kim / S. Person et al. | NTIS | 2013


    Detecting and Characterizing Semantic Inconsistencies in Ported Code

    Ray, Baishakhi / Kim, Miryung / Person, Suzette J. et al. | NTRS | 2013


    Detecting and characterizing semantic inconsistencies in ported code

    Ray, Baishakhi / Kim, Miryung / Person, Suzette et al. | IEEE | 2013


    Detecting and Characterizing Semantic Inconsistencies in Ported Code

    B Ray / M Kim / J.S Person et al. | NTIS | 2013