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

M. Whalen, S. Person, Neha Rungta, Matthew Staats, D. Grijincu
{"title":"A Flexible and Non-intrusive Approach for Computing Complex Structural Coverage Metrics","authors":"M. Whalen, S. Person, Neha Rungta, Matthew Staats, D. Grijincu","doi":"10.1109/ICSE.2015.68","DOIUrl":null,"url":null,"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.","PeriodicalId":330487,"journal":{"name":"2015 IEEE/ACM 37th IEEE International Conference on Software Engineering","volume":"44 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2015 IEEE/ACM 37th IEEE International Conference on Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSE.2015.68","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9

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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
一种灵活且非侵入式的复杂结构覆盖度量计算方法
软件分析工具和技术经常利用结构代码覆盖信息来推断软件的动态行为。现有的技术用所需的结构义务对代码进行检测,然后监视编译代码的执行,以报告覆盖率。对于复杂的结构覆盖度量,如修改条件/决策(MC/DC),基于仪器的方法通常会产生相当大的运行时开销。通常,必须非常小心地处理代码插装,以确保它不会修改原始代码的行为。此外,检测代码不能与其他分析一起使用,这些分析是对被测代码的结构和语义进行推理的。在这项工作中,我们引入了一种非侵入式的预处理方法来计算结构覆盖信息。它使用源代码中决策的静态部分评估和源代码到字节码的映射来生成必要的信息,以便在执行期间有效地跟踪结构覆盖度量。我们的技术是灵活的;预处理的结果可以被各种覆盖驱动的软件分析任务所使用,包括自动分析,这对于仪器化代码来说是不可能的。在符号执行环境下的实验结果表明了我们的非侵入式计算代码覆盖信息方法的有效性和灵活性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Contributor's Performance, Participation Intentions, Its Influencers and Project Performance ZoomIn: Discovering Failures by Detecting Wrong Assertions Agile Project Management: From Self-Managing Teams to Large-Scale Development How Much Up-Front? A Grounded theory of Agile Architecture Avoiding Security Pitfalls with Functional Programming: A Report on the Development of a Secure XML Validator
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1