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
Link To Document :
بازگشت