Techniques for Evolution-Aware Runtime Verification

Techniques for Evolution-Aware Runtime Verification
复制标题

DOI:
10.1109/icst.2019.00037
复制
发表时间:
2019-04
期刊:
2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST)
影响因子:
--
通讯作者:
Owolabi Legunsen;Yi Zhang;Milica Hadzi-Tanovic;Grigore Roşu;D. Marinov
Owolabi Legunsen;Yi Zhang;Milica Hadzi-Tanovic;Grigore Roşu;D. Marinov
中科院分区:
其他
文献类型:
--
作者:
Owolabi Legunsen;Yi Zhang;Milica Hadzi-Tanovic;Grigore Roşu;D. Marinov

文献摘要

被引文献

相似文献

运行时验证(RV)可以通过监视针对正式属性的程序执行来帮助查找错误。开发人员应每当运行测试时使用RV,以便早些时候找到更多错误。尽管进行了巨大的研究进展,但RV仍会在(1)机器时间监视属性的时间内造成高间接开销,以及(2)开发人员的时间等待并检查无法满足属性的测试执行的违规行为。此外,所有先前的RV技术仅考虑一个程序版本,并且随着软件的发展而浪费重新调查的属性和代码。我们提出了第一种进化感的RV技术,可减少多个程序版本的RV开销。回归属性选择(RPS)重新监控器仅在受更改影响,减少机器时间和开发人员时间影响的一部分中违反的属性。违规消息抑制(VM)只是显示出新的违规行为,以减少开发人员的时间;它不会减少机器时间。回归属性优先级(RPP)分为两个阶段:更有可能在关键阶段监视错误的属性,以向开发人员提供更快的反馈;其余部分将在背景阶段进行监视。当监视10个开源项目的200款版本时,我们将技术与Evolution-Unaware(基本)RV进行比较。 RPS和RPP临界阶段将平均RV开销从9.4倍(对于基本RV)减少到1.8倍,而不会缺少任何新的违规行为。 VMS的平均违规数量从每个版本的54次违规(基本RV)减少到每10个版本的违规行为。
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.