• 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