首页 | 本学科首页   官方微博 | 高级检索  
     

基于动态分析的软件不变量综合技术
引用本文:王博,卢思睿,姜佳君,熊英飞.基于动态分析的软件不变量综合技术[J].软件学报,2020,31(6):1681-1702.
作者姓名:王博  卢思睿  姜佳君  熊英飞
作者单位:北京大学 信息科学技术学院计算机科学技术系软件研究所,北京 100871;高可信软件技术教育部重点实验室(北京大学),北京 100871;北京大学 信息科学技术学院计算机科学技术系软件研究所,北京 100871;高可信软件技术教育部重点实验室(北京大学),北京 100871;北京大学 信息科学技术学院计算机科学技术系软件研究所,北京 100871;高可信软件技术教育部重点实验室(北京大学),北京 100871;北京大学 信息科学技术学院计算机科学技术系软件研究所,北京 100871;高可信软件技术教育部重点实验室(北京大学),北京 100871
基金项目:国家自然科学基金(61922003,61672045)
摘    要:软件不变量是软件的重要属性,在软件验证、软件调试和软件测试等领域有重要作用.自20世纪末以来,基于动态分析的不变量综合技术成为相关领域的一个研究热点,并且取得了一定的进展.收集了90篇相关论文对该领域进行系统总结.基于动态分析的不变量综合技术是该领域的核心问题,提出了“学习者-预言”框架统一描述相关方法,并且在此框架内根据学习者的归纳方法将综合技术大致分为4类,分别是基于模板穷举的方法、基于数值计算的方法、基于统计学习的方法以及基于符号执行的方法.其次,讨论了基于动态分析综合的不变量在软件验证和软件工程等领域的重要应用.随后,总结不变量生成技术中常用的实验对象程序和开源的不变量综合工具.最后,总结该领域并展望未来的研究方向.

关 键 词:不变量  动态分析  软件规约  软件验证  软件测试
收稿时间:2019/11/25 0:00:00
修稿时间:2019/12/19 0:00:00

Survey of Dynamic Analysis Based Program Invariant Synthesis Techniques
WANG Bo,LU Si-Rui,JIANG Jia-Jun,XIONG Ying-Fei.Survey of Dynamic Analysis Based Program Invariant Synthesis Techniques[J].Journal of Software,2020,31(6):1681-1702.
Authors:WANG Bo  LU Si-Rui  JIANG Jia-Jun  XIONG Ying-Fei
Affiliation:Software Engineering Institute, School of Electronics Engineering and Computer Science, Department of Computer Science and Technology, Peking University, Beijing 100871, China;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 fileds, such as verification, debugging and testing. Since the end of 20th century, researches on dynamic analysis based program invariant synthesis have 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. We propose an abstract framework, "Learner-Oracle", 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, we discuss important applications of dynamic invariants in software engineering and software verification. Then we briefly summarize important subject programs and synthesis tools. Finally, we present the remaining opportunities and make a conclusion.
Keywords:program invariant  dynamic analysis  software specification  software verification  software testing
本文献已被 维普 万方数据 等数据库收录!
点击此处可从《软件学报》浏览原始摘要信息
点击此处可从《软件学报》下载全文
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号