计算机应用 ›› 2018, Vol. 38 ›› Issue (10): 2990-2995.DOI: 10.11772/j.issn.1001-9081.2018030733

• 计算机软件技术 • 上一篇    下一篇

基于证据自动机的软件回归验证

贾尚坤, 贺飞   

  1. 清华大学 软件学院, 北京 100084
  • 收稿日期:2018-04-10 修回日期:2018-05-16 出版日期:2018-10-10 发布日期:2018-10-13
  • 通讯作者: 贺飞
  • 作者简介:贾尚坤(1993-),男,山西大同人,硕士研究生,主要研究方向:概率程序、回归验证;贺飞(1980-),男,湖南永州人,副教授,博士,CCF会员,主要研究方向:抽象精化、概率模型检测、回归验证、组合验证。
  • 基金资助:
    国家自然科学基金资助项目(61672310)。

Software regression verification based on witness automata

JIA Shangkun, HE Fei   

  1. School of Software, Tsinghua University, Beijing 100084, China
  • Received:2018-04-10 Revised:2018-05-16 Online:2018-10-10 Published:2018-10-13
  • Supported by:
    This work is partially supported by the National Natural Science Foundation of China (61672310).

摘要: 为了在多版本程序验证中利用邻近版本之间的共享信息,提取并重用之前版本证据自动机中的循环不变式,提出基于证据自动机的软件回归验证。首先通过证据预处理生成适用于新版程序的证据文件,然后在辅助不变式增强的k-归纳方法的基础上实现了检验新证据文件及验证新版程序的回归验证过程,最后通过对比实验比较了不使用不变式信息的直接验证与结合或不结合数据流分析的三种回归验证的验证性能。与直接验证相比,不结合与结合数据流分析的回归验证的验证耗时分别减少了49%与75%,而内存消耗分别减少了18%与50%。实验结果表明,当程序满足其验证属性时,基于证据自动机的回归验证能极大地提高验证效率,而将证据自动机与数据流分析相结合的验证方式能得到更好的验证效果。

关键词: 回归验证, 证据自动机, 不变式重用, 可配置程序分析检测工具, k-归纳

Abstract: In order to utilize the shared information between adjacent versions in multi-version program verification, and extract and reuse loop invariants in the witness automaton belonging to the previous version, a software regression verification based on witness automata was proposed. Firstly, the witness file applicable to the new version of programs was generated by witness preprocessing. Then, based on the auxiliary-invariant-enhanced k-induction, the regression verification process was implemented to validate the new witness file and verify the new version of programs. Finally, performance of three kinds of regression verification was compared by contrast experiments, including the so-called "direct" verification that did not use invariant information and verification methods combined with or without data flow analysis. Compared with the direct verification, the time consumption of the regression verification combined with or without data flow analysis was reduced by 49% and 75% respectively, and the memory consumption was reduced by 18% and 50% respectively. The results show that when the program satisfies its verification specification, the regression verification based on witness automata can greatly improve verification efficiency, and the regression method combined with data flow analysis can make it even better.

Key words: regression verification, witness automata, invariant reuse, Configurable Program Analysis checker (CPAchecker), k-induction

中图分类号: