引用本文:王博,卢思睿,姜佳君,熊英飞.基于动态分析的软件不变量综合技术.软件学报,2020,31(6):1681-1702
【打印本页】   【下载PDF全文】   查看/发表评论  【EndNote】   【RefMan】   【BibTex】
←前一篇|后一篇→ 过刊浏览    高级检索
本文已被:浏览 5194次   下载 18853 本文二维码信息
码上扫一扫!
分享到: 微信 更多
基于动态分析的软件不变量综合技术
王博1,2, 卢思睿1,2, 姜佳君1,2, 熊英飞1,2
1.北京大学 信息科学技术学院 计算机科学技术系 软件研究所, 北京 100871;2.高可信软件技术教育部重点实验室(北京大学), 北京 100871
摘要:
软件不变量是软件的重要属性,在软件验证、软件调试和软件测试等领域有重要作用.自20世纪末以来,基于动态分析的不变量综合技术成为相关领域的一个研究热点,并且取得了一定的进展.收集了90篇相关论文对该领域进行系统总结.基于动态分析的不变量综合技术是该领域的核心问题,提出了“学习者-预言”框架统一描述相关方法,并且在此框架内根据学习者的归纳方法将综合技术大致分为4类,分别是基于模板穷举的方法、基于数值计算的方法、基于统计学习的方法以及基于符号执行的方法.其次,讨论了基于动态分析综合的不变量在软件验证和软件工程等领域的重要应用.随后,总结不变量生成技术中常用的实验对象程序和开源的不变量综合工具.最后,总结该领域并展望未来的研究方向.
关键词:  不变量|动态分析|软件规约|软件验证|软件测试
DOI:10.13328/j.cnki.jos.006014
分类号:
基金项目:国家自然科学基金(61922003,61672045)
Survey of Dynamic Analysis Based Program Invariant Synthesis Techniques
WANG Bo1,2, LU Si-Rui1,2, JIANG Jia-Jun1,2, XIONG Ying-Fei1,2
1.Software Engineering Institute, Department of Computer Science and Technology, School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China;2.Key Laboratory of High Confidence Software Technologies of Ministry of Education (Peking University), Beijing 100871, China
Abstract:
Program invariants are important properties of software, which play important roles in many software research fields, such as verification, debugging, and testing. Since the end of 20th century, research on dynamic analysis based program invariant synthesis has become a hot topic in related research areas and made remarkable progress. This paper collects 90 related papers to survey researches within this topic. To dynamically synthesize invariants is the key problem of this field. An abstract framework, “learner-oracle”, is proposed to model and subsume synthesis approaches. In general, the synthesis approaches can be classified into four types, i.e. pattern enumeration based approaches, numerical calculation based approaches, statistical learning based approaches, and symbolic execution based approaches. Furthermore, important applications are discussed of dynamic invariants in software engineering and software verification. Then, important subject programs and synthesis tools are briefly summarized. Finally, the remaining opportunities are presented and a conclusion is reached.
Key words:  program invariant|dynamic analysis|software specification|software verification|software testing

引用本文:
【打印本页】   【下载PDF全文】   查看/发表评论  【EndNote】   【RefMan】   【BibTex】
←前一篇|后一篇→ 过刊浏览    高级检索
本文已被:浏览次   下载  
分享到: 微信 更多
摘要:
关键词:  
DOI:
分类号:
基金项目:
Abstract:
Key words: