Techniques for Evolution-Aware Runtime Verification

Owolabi Legunsen, Yi Zhang, Milica Hadzi-Tanovic, Grigore Roşu, D. Marinov
{"title":"Techniques for Evolution-Aware Runtime Verification","authors":"Owolabi Legunsen, Yi Zhang, Milica Hadzi-Tanovic, Grigore Roşu, D. Marinov","doi":"10.1109/ICST.2019.00037","DOIUrl":null,"url":null,"abstract":"Runtime Verification (RV) can help find bugs by monitoring program executions against formal properties. Developers should ideally use RV whenever they run tests, to find more bugs earlier. Despite tremendous research progress, RV still incurs high overhead in (1) machine time to monitor properties and (2) developer time to wait for and inspect violations from test executions that do not satisfy the properties. Moreover, all prior RV techniques consider only one program version and wastefully re-monitor unaffected properties and code as software evolves. We present the first evolution-aware RV techniques that reduce RV overhead across multiple program versions. Regression Property Selection (RPS) re-monitors only properties that can be violated in parts of code affected by changes, reducing machine time and developer time. Violation Message Suppression (VMS) simply shows only new violations to reduce developer time; it does not reduce machine time. Regression Property Prioritization (RPP) splits RV in two phases: properties more likely to find bugs are monitored in a critical phase to provide faster feedback to the developers; the rest are monitored in a background phase. We compare our techniques with the evolution-unaware (base) RV when monitoring test executions in 200 versions of 10 open-source projects. RPS and the RPP critical phase reduce the average RV overhead from 9.4x (for base RV) to 1.8x, without missing any new violations. VMS reduces the average number of violations 540x, from 54 violations per version (for base RV) to one violation per 10 versions.","PeriodicalId":446827,"journal":{"name":"2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-04-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICST.2019.00037","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10

Abstract

Runtime Verification (RV) can help find bugs by monitoring program executions against formal properties. Developers should ideally use RV whenever they run tests, to find more bugs earlier. Despite tremendous research progress, RV still incurs high overhead in (1) machine time to monitor properties and (2) developer time to wait for and inspect violations from test executions that do not satisfy the properties. Moreover, all prior RV techniques consider only one program version and wastefully re-monitor unaffected properties and code as software evolves. We present the first evolution-aware RV techniques that reduce RV overhead across multiple program versions. Regression Property Selection (RPS) re-monitors only properties that can be violated in parts of code affected by changes, reducing machine time and developer time. Violation Message Suppression (VMS) simply shows only new violations to reduce developer time; it does not reduce machine time. Regression Property Prioritization (RPP) splits RV in two phases: properties more likely to find bugs are monitored in a critical phase to provide faster feedback to the developers; the rest are monitored in a background phase. We compare our techniques with the evolution-unaware (base) RV when monitoring test executions in 200 versions of 10 open-source projects. RPS and the RPP critical phase reduce the average RV overhead from 9.4x (for base RV) to 1.8x, without missing any new violations. VMS reduces the average number of violations 540x, from 54 violations per version (for base RV) to one violation per 10 versions.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
进化感知运行时验证技术
运行时验证(RV)可以根据正式属性监视程序的执行,从而帮助发现bug。开发人员应该在运行测试时理想地使用RV,以便尽早发现更多的bug。尽管研究取得了巨大的进展,但是RV仍然会带来很高的开销(1)监控属性的机器时间和(2)等待和检查不满足属性的测试执行的违例的开发人员时间。此外,所有以前的RV技术只考虑一个程序版本,并且随着软件的发展浪费地重新监视未受影响的属性和代码。我们提出了第一个进化感知的RV技术,可以减少跨多个程序版本的RV开销。回归属性选择(RPS)只重新监视受更改影响的代码部分中可能违反的属性,从而减少了机器时间和开发人员时间。违规消息抑制(VMS)简单地只显示新的违规,以减少开发人员的时间;它不会减少机器时间。回归属性优先级(RPP)将RV分为两个阶段:在关键阶段监控更容易发现bug的属性,以便向开发人员提供更快的反馈;其余的则在后台进行监控。在监视10个开源项目的200个版本的测试执行时,我们将我们的技术与不了解进化的(基础)RV进行比较。RPS和RPP关键阶段将平均RV开销从9.4倍(基本RV)减少到1.8倍,没有遗漏任何新的违规行为。VMS将违规的平均数量减少了540倍,从每个版本54个违规(对于基本RV)减少到每10个版本一个违规。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Parallel Many-Objective Search for Unit Tests SeqFuzzer: An Industrial Protocol Fuzzing Framework from a Deep Learning Perspective Classifying False Positive Static Checker Alarms in Continuous Integration Using Convolutional Neural Networks Automated Function Assessment in Driving Scenarios Techniques for Evolution-Aware Runtime Verification
×
引用
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