×

使用紧域边界对堆操作程序进行有效的有界模型检查。 (英语) Zbl 1467.68092号

Guerra,Esther(编辑)等人,《软件工程的基本方法》,第24届国际会议,FASE 2021,作为欧洲软件理论与实践联合会议的一部分,ETAPS 2021,卢森堡市,2021年3月27日至4月1日。诉讼程序。查姆:斯普林格。莱克特。票据计算。科学。12649, 218-239 (2021).
摘要:软件模型检查器能够详尽地研究由各种非确定性来源引起的不同有界程序执行。这些工具提供语句来为某些变量生成非确定性值,从而迫使相应的模型检查器考虑全部的验证期间这些可能的值。虽然这些语句提供了一种有效的方法来验证处理基本数据类型和简单结构化类型的程序,但它们不适合作为指针的非确定性生成机制,在通过模型检查进行验证时,倾向于使用插入例程来生成动态数据结构,处理此类数据类型的程序。
我们提出了一种改进处理堆分配数据类型的程序的模型检查的技术,方法是通过控制在非确定性初始化堆对象字段时可以构建的候选结构的爆炸性。该技术利用预计算关系边界,它忽略了被结构的类型不变量视为无效的值,从而减少了模型检查器要探索的状态空间。预计算关系边界也是一项具有挑战性且成本高昂的任务,为此,我们还提出了一种基于增量SAT求解的高效算法。我们在CBMC公司有界模型检查器,并表明,对于许多数据结构实现,我们可以处理明显较大的输入结构并检测以下错误CBMC公司无法检测。
有关整个系列,请参见[Zbl 1466.68016号].

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
68第05页 数据结构
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 使用紧字段边界的堆操作程序的有效边界模型检查的网站和复制包。https://sites.google.com/view/bmc-bounds。
[2] 巴勃罗·阿巴德(Pablo Abad)、纳扎雷诺·阿吉雷(Nazareno Aguirre)、瓦莱丽亚·本戈利亚(Valeria S.Bengolea)、丹尼尔·阿尔弗雷多·齐奥莱克(Daniel Alfredo Ciolek)、马塞洛·弗里亚斯(Marcelo F.Frias)、胡安·加莱奥蒂(Juan P.Galeotti)、汤姆·迈鲍姆(Tom Mai。通过严格限制和增量SAT求解改进富合同下的测试生成。第六届IEEE软件测试、验证和确认国际会议,ICST 2013,卢森堡,2013年3月18日至22日,第21-30页。IEEE计算机学会,2013年。
[3] 萨斯瓦特·阿南德(Saswat Anand)、科琳娜·帕萨雷努(Corina S.Pasareanu)和威廉·维瑟(Willem Visser)。JPF-SE:java探路器的符号执行扩展。Orna Grumberg和Michael Huth,编辑,《系统构建和分析的工具和算法》,第13届国际会议,TACAS 2007,作为欧洲软件理论和实践联合会议的一部分举行,ETAPS 2007,布拉加,葡萄牙,2007年3月24日至4月1日,会议记录,《计算机科学讲义》第4424卷,第134-138页。施普林格,2007年。
[4] 杰森·贝尔特、罗比和邓向华。Sireum/topi LDP:用于优化基于符号执行的分析的轻量级半决策程序。Hans van Vliet和Valérie Issarny,编辑,《欧洲软件工程会议第七届联席会议和ACM SIGSOFT国际软件工程基础研讨会会议记录》,2009年,荷兰阿姆斯特丹,2009年8月24-28日,第355-364页。ACM,2009年。
[5] 乔什·伯丁(Josh Berdine)、克里斯蒂亚诺·加尔卡尼奥(Cristiano Calcagno)、拜伦·库克(Byron Cook)、迪诺·迪斯特法诺(Dino Distefano)、彼得·奥赫恩(Peter W.O'Hearn)、托马斯·维斯(Thomas Wies。复合数据结构的形状分析。Werner Damm和Holger Hermann,编辑,《计算机辅助验证》,第19届国际会议,CAV 2007,德国柏林,2007年7月3-7日,《计算机科学讲义》第4590卷,第178-192页。施普林格,2007年·Zbl 1135.68372号
[6] Chandrasekhar Boyapati、Sarfraz Khurshid和Darko Marinov。Korat:基于java谓词的自动化测试。2002年7月22日至24日,意大利罗马,ISSTA 2002,《软件测试与分析国际研讨会论文集》编辑菲利斯·弗兰克尔(Phylis G.Frankl),第123-133页。ACM,2002年。
[7] Edmund M.Clarke、Armin Biere、Richard Raimi和Yunshan Zhu。使用可满足性求解进行有界模型检查。形式方法系统。设计。,19(1):2001年7月34日·Zbl 0985.68038号
[8] Edmund M.Clarke、Daniel Kroening和Flavio Lerda。用于检查ANSI-C程序的工具。Kurt Jensen和Andreas Podelski,编辑,《系统构建和分析的工具和算法》,第十届国际会议,TACAS 2004,作为欧洲软件理论和实践联合会议的一部分,ETAPS 2004,西班牙巴塞罗那,2004年3月29日至4月2日,会议录,《计算机科学讲义》第2988卷,第168-176页。斯普林格,2004年·Zbl 1126.68470号
[9] 格雷格·丹尼斯(Greg Dennis)、费利克斯·盛浩昌(Felix Sheng-Ho Chang)和丹尼尔·杰克逊(Daniel Jackson)。使用SAT对代码进行模块化验证。Lori L.Pollock和Mauro Pezzè,编辑,《ACM/SIGSOFT软件测试与分析国际研讨会论文集》,ISSTA 2006,美国缅因州波特兰,2006年7月17日至20日,第109-120页。ACM,2006年。
[10] Niklas Eén和Niklas Sörensson。一种可扩展的卫星解算器。Enrico Giunchiglia和Armando Tacchella主编,《可满足性测试的理论与应用》,第六届国际会议,2003年SAT。圣玛格丽塔·利古尔,意大利,2003年5月5日至8日,《计算机科学课堂讲稿》第2919卷,第502-518页。斯普林格,2003年·Zbl 1204.68191号
[11] Stephan Falke、Florian Merz和Carsten Sinz。LLBMC:使用LLVM-(竞争贡献)改进C程序的有界模型检查。尼尔·皮特曼(Nir Piterman)和斯科特·斯莫尔卡(Scott A.Smolka),编辑,《系统构建和分析的工具和算法——第19届国际会议》(TACAS 2013),作为欧洲软件理论和实践联合会议的一部分,2013年3月16日至24日,意大利罗马,ETAPS 2013。《计算机科学讲义》第7795卷,第623-626页。施普林格,2013年。
[12] 马塞洛·弗里亚斯(Marcelo F.Frias)、胡安·加莱奥蒂(Juan P.Galeotti)、卡洛斯·洛佩斯·蓬博(Carlos López Pombo)和纳扎雷诺·阿吉雷(Nazareno Aguirre)。Dynalloy:用行动升级合金。2005年5月15日至21日,美国密苏里州圣路易斯,第27届国际软件工程会议(ICSE 2005)编辑,Gruia-Catalin Roman、William G.Griswold和Bashar Nuseibeh,第442-451页。ACM,2005年。
[13] Juan P.Galeotti、Nicolás Rosner、Carlos Gustavo López Pombo和Marcelo F.Frias。TACO:使用对称破缺和紧边界进行高效的基于卫星的有界验证。IEEE传输。软件工程,39(9):1283-13072013。
[14] Juan P.Galeotti、Nicolás Rosner、Carlos López Pombo和Marcelo F.Frias。分析不变量以进行有效的有界验证。Paolo Tonella和Alessandro Orso,编辑,《软件测试与分析第十九届国际研讨会论文集》,ISSTA 2010,意大利特伦托,2010年7月12-16日,第25-36页。ACM,2010年。
[15] 杰科·盖尔登胡伊斯(Jaco Geldenhuys)、纳扎雷诺·阿吉雷(Nazareno Aguirre)、马塞洛·弗里亚斯(Marcelo F.Frias)和威廉·维瑟(Willem Visser)。有界延迟初始化。2013年5月14日至16日,美国国家航空航天局第五届国际研讨会,2013年国家气象局,美国加利福尼亚州莫菲特菲尔德,NASA正式方法编辑纪尧姆·布拉特(Guillaume Brat)、内哈·朗格塔(Neha Rungta)和阿诺德·维内特(Arnaud Venet)。《计算机科学讲义》第7871卷,第229-243页。施普林格,2013年。
[16] 约翰·胡克(John N.Hooker)。求解增量可满足性问题。J.日志。程序。,15(1&2):177-186, 1993. ·Zbl 0787.68049号
[17] 丹尼尔·杰克逊。软件抽象-逻辑、语言和分析。麻省理工学院出版社,2006年。
[18] Daniel Jackson和Mandana Vaziri。使用约束求解器查找错误。Debra J.Richardson和Mary Jean Harold,编辑,《软件测试与分析国际研讨会论文集》,ISSTA 2000,美国俄勒冈州波特兰,2000年8月21日至24日,第14-25页。ACM,2000年·Zbl 1031.68518号
[19] 萨尔夫拉兹·库希德(Sarfraz Khurshid)、科琳娜·帕萨雷努(Corina S.Pasareanu)和威廉·维瑟(Willem Visser)。用于模型检查和测试的广义符号执行。Hubert Garavel和John Hatcliff,编辑,《系统构建和分析的工具和算法》,第九届国际会议,TACAS 2003,作为欧洲软件理论和实践联合会议的一部分,ETAPS 2003,波兰华沙,2003年4月7日至11日,《计算机科学讲稿》第2619卷,第553-568页。斯普林格,2003年·Zbl 1031.68519号
[20] 丹尼尔·克罗宁和迈克尔·陶奇尼格。CBMC-C有界模型检查器-(竞争贡献)。在Erikaábrahám和Klaus Havelund的著作中,系统构建和分析的工具和算法第20届国际会议,TACAS 2014,作为欧洲软件理论和实践联合会议的一部分,ETAPS 2014,法国格勒诺布尔,2014年4月5日至13日。《计算机科学讲稿》第8413卷,第389-391页。斯普林格,2014年。
[21] 胡海阮(Huu Hai Nguyen)、克里斯蒂娜·戴维(Cristina David)、秦胜超(Shengchao Qin)和金伟恩(Wei-Ngan Chin)。通过分离逻辑自动验证形状和尺寸属性。拜伦·库克(Byron Cook)和安德烈亚斯·波德尔斯基(Andreas Podelski),编辑,验证,模型检查和抽象解释,第八届国际会议,VMCAI 2007,法国尼斯,2007年1月14日至16日,会议录,计算机科学讲稿第4349卷,第251-266页。施普林格,2007年·Zbl 1132.68477号
[22] 阿迪蒂亚·诺里(Aditya V.Nori)、斯里拉姆·拉贾马尼(Sriram K.Rajamani)、赛迪普·特塔利(SaiDeep Tetali)和阿迪蒂娅·塔库尔(Aditia V.Thakur)。瑜伽项目:通过静态分析和测试进行软件属性检查。Stefan Kowalewski和Anna Philippou,编辑,《系统构建和分析的工具和算法》,第15届国际会议,TACAS 2009,作为欧洲软件理论和实践联合会议的一部分,ETAPS 2009,英国约克,2009年3月22日至29日。《计算机科学讲义》第5505卷,第178-181页。施普林格,2009年。
[23] Corina S.Pasareanu、Willem Visser、David H.Bushnell、Jacob Geldenhuys、Peter C.Mehlitz和Neha Rungta。符号探索者:集成符号执行和模型检查,用于java字节码分析。自动。柔和。工程,20(3):391-4252013。
[24] 巴勃罗·蓬齐奥(Pablo Ponzio)、纳扎雷诺·阿吉雷(Nazareno Aguirre)、马塞洛·弗里亚斯(Marcelo F.Frias)和威廉·维瑟(Willem Visser)。现场详尽测试。托马斯·齐默尔曼(Thomas Zimmermann)、简·克莱兰德·黄(Jane Cleland-Huang)和苏振东(Zhendong Su),编辑,《第24届ACM SIGSOFT国际软件工程基础研讨会论文集》,2016年11月13-18日,美国西雅图,FSE 2016,第908-919页。ACM,2016年。
[25] 巴勃罗·蓬齐奥(Pablo Ponzio)、尼科拉斯·罗斯纳(Nicolás Rosner)、纳扎雷诺·阿吉雷(Nazareno Aguirre)和马塞洛·弗里亚斯(Marcelo F.Frias)。基于形状谓词的高效紧域边界计算。Cliff B.Jones、Pekka Pihlajasaari和Jun Sun,编辑,FM 2014:形式方法-第19届国际研讨会,新加坡,2014年5月12日至16日。《计算机科学讲义》第8442卷,第531-546页。施普林格,2014年。
[26] 尼科拉斯·罗斯纳(Nicolás Rosner)、杰科·盖尔登胡伊斯(Jaco Geldenhuys)、纳扎雷诺·阿吉雷(Nazareno Aguirre)、威廉·维瑟(Willem Visser)和马塞洛·弗里亚斯(Marcelo F.Frias)。BLISS:通过SAT支持的有界延迟初始化改进了符号执行。IEEE传输。软件工程,41(7):639-6602015。
[27] Willem Visser和Peter C.Mehlitz。使用java探路器对程序进行模型检查。Patrice Godefroid,模型检查软件编辑,第12届国际SPIN研讨会,美国加利福尼亚州旧金山,2005年8月22日至24日,《计算机科学讲稿》第3639卷,第27页。斯普林格,2005年·Zbl 1170.68522号
[28] Willem Visser、Corina S.Pasareanu和Radek Pelánek。使用状态匹配测试java容器的输入生成。编辑Lori L.Pollock和Mauro Pezzè,《ACM/SIGSOFT软件测试与分析国际研讨会论文集》,ISSTA 2006,美国缅因州波特兰,2006年7月17日至20日,第37-48页。ACM,2006年·Zbl 1081.68631号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。