• DocumentCode
    1606447
  • Title

    A Flexible and Non-intrusive Approach for Computing Complex Structural Coverage Metrics

  • Author

    Whalen, Michael W. ; Person, Suzette ; Rungta, Neha ; Staats, Matt ; Grijincu, Daniela

  • Author_Institution
    Univ. of Minnesota, Minneapolis, MN, USA
  • Volume
    1
  • fYear
    2015
  • Firstpage
    506
  • Lastpage
    516
  • Abstract
    Software analysis tools and techniques often leverage structural code coverage information to reason about the dynamic behavior of software. Existing techniques instrument the code with the required structural obligations and then monitor the execution of the compiled code to report coverage. Instrumentation based approaches often incur considerable runtime overhead for complex structural coverage metrics such as Modified Condition/Decision (MC/DC). Code instrumentation, in general, has to be approached with great care to ensure it does not modify the behavior of the original code. Furthermore, instrumented code cannot be used in conjunction with other analyses that reason about the structure and semantics of the code under test. In this work, we introduce a non-intrusive preprocessing approach for computing structural coverage information. It uses a static partial evaluation of the decisions in the source code and a source-to-bytecode mapping to generate the information necessary to efficiently track structural coverage metrics during execution. Our technique is flexible; the results of the preprocessing can be used by a variety of coverage-driven software analysis tasks, including automated analyses that are not possible for instrumented code. Experimental results in the context of symbolic execution show the efficiency and flexibility of our non- intrusive approach for computing code coverage information.
  • Keywords
    partial evaluation (compilers); program control structures; program diagnostics; reasoning about programs; software metrics; code behavior; code instrumentation; code semantics; compiled code execution monitoring; coverage reporting; coverage-driven software analysis; flexible nonintrusive approach; instrumentation based approach; modified condition-decision; nonintrusive preprocessing approach; runtime overhead; software analysis technique; software analysis tools; software dynamic behavior reasoning; source code; source-to-bytecode mapping; static partial evaluation; structural code coverage information; structural coverage information; structural coverage metrics tracking; structural obligation; symbolic execution; Electronic mail; Instruments; Java; Measurement; Monitoring; Runtime; Software;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on
  • Conference_Location
    Florence
  • Type

    conf

  • DOI
    10.1109/ICSE.2015.68
  • Filename
    7194601