×

连接程序合成和可达性:使用测试输入生成自动修复程序。 (英语) Zbl 1452.68052号

Legay,Axel(编辑)等人,《系统构建和分析的工具和算法》。2017年4月22日至29日,第23届国际会议,TACAS 2017,作为欧洲软件理论和实践联席会议的一部分,ETAPS 2017,瑞典乌普萨拉。诉讼程序。第一部分柏林:施普林格。莱克特。注释计算。科学。10205, 301-318 (2017).
摘要:我们证明了程序综合和可达性的某些公式是等价的。具体地说,我们的构造性证明显示了基于模板的综合问题(以预先指定的形式生成程序)和可达性问题(决定程序位置的可达性)之间的约简。这在两个研究领域之间建立了联系,并允许在它们之间转让技术和结果。
为了证明等价性,我们使用可达性工具开发了一个程序修复原型。我们将一个有缺陷的程序及其所需的规范转换为一个特定的程序,该程序包含一个只有在原始程序可以修复时才能到达的位置,然后在转换后的程序上应用一个离线测试输入生成工具,以找到测试值以到达所需的位置。这些测试值对应于原始程序的维修。初步结果表明,我们的方法优于其他修复方法。
关于整个系列,请参见[兹比尔1360.68015].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] Alur,R.、Bodik,R.,Juniwal,G.、Martin,M.M.、Raghothaman,M.、Seshia,S.A.、Singh,R.和Solar-Lezama,A.、Torlak,E.、Udupa,A.:句法引导合成。可靠的软件。系统。工程40,1-25(2015)
[2] Anand,S.、PéSéreanu,C.S.、Visser,W.:JPF-SE:Java PathFinder的符号执行扩展。收录:Grumberg,O.,Huth,M.(编辑)TACAS 2007。LNCS,第4424卷,第134-138页。斯普林格,海德堡(2007)。doi:10.1007/978-3-540-71209-11·doi:10.1007/978-3-540-71209-11
[3] Artzi,S.、Kiezun,A.、Dolby,J.、Tip,F.、Dig,D.、Paradkar,A.、Ernst,M.D.:在动态web应用程序中查找错误。摘自:ISSTA,第261-272页。ACM(2008)
[4] Attie,P.,Cherri,A.,Al Bab,K.D.,Sakr,M.,Saklawi,J.:通过sat求解进行模型和程序修复。摘自:MEMOCODE,第148-157页。IEEE(2015)
[5] Ball,T.、Rajamani,S.K.:SLAM项目:通过静态分析调试系统软件。收录于:POPL,第1-3页。ACM(2002)
[6] Beyer,D.,Henzinger,T.A.,Jhala,R.,Majumdar,R.:软件模型检查器BLAST。柔软。技术工具。Transf公司。9(5-6),505-525(2007)·doi:10.1007/s10009-007-0044-z
[7] Bloem,R.等人:FoREnSiC——C程序的自动调试环境。收录:Biere,A.,Nahir,A.,Vos,T.(编辑)HVC 2012。LNCS,第7857卷,第260-265页。斯普林格,海德堡(2013)。doi:10.1007/978-3-642-39611-3_24·doi:10.1007/978-3-642-39611-3_24
[8] Cadar,C.、Dunbar,D.、Engler,D.R.:KLEE:为复杂系统程序自动生成高覆盖率测试。载于:OSDI,第8卷,第209-224页。USENIX协会(2008)
[9] Cadar,C.,Sen,K.:软件测试的象征性执行:三十年后。Commun公司。ACM 56(2),82-90(2013)·doi:10.1145/2408776.2408795
[10] Clarke,E.M.,Grumberg,O.,Peled,D.:模型检查。麻省理工学院出版社,剑桥(1999)
[11] Dallmeier,V.,Zeller,A.,Meyer,B.:从对象行为异常中生成修复。收录于:ASE,第550-554页。IEEE(2009)
[12] Debroy,V.,Wong,W.E.:使用变异自动建议修复错误程序。摘自:《软件测试、验证和确认》,第65-74页。IEEE(2010)
[13] Do,H.,Elbaum,S.,Rothermel,G.:用测试技术支持受控实验:基础设施及其潜在影响。恩皮尔。柔和。工程10(4),405-435(2005)·doi:10.1007/s10664-005-3861-2
[14] ExCAPE:计算机增强程序工程考察。http://excape.cis.upenn.edu。访问日期:2016年10月19日
[15] Forrester,J.E.,Miller,B.P.:使用随机测试对Windows NT应用程序的稳健性进行的实证研究。收录于:USENIX Windows系统研讨会,第59-68页(2000)
[16] Godefroid,P.,Klarlund,N.,Sen,K.:DART:直接自动化随机测试。PLDI 40(6),213-223(2005)
[17] Godefroid,P.,Levin,M.Y.,Molnar,D.A.等人:自动白盒模糊测试。摘自:网络和分布式系统安全研讨会,第151-166页(2008)
[18] Gopinath,D.,Malik,M.Z.,Khurshid,S.:使用SAT进行基于规范的程序修复。In:Abdulla,P.A.,Leino,K.R.M.(编辑)TACAS 2011。LNCS,第6605卷,第173-188页。斯普林格,海德堡(2011)。doi:10.1007/978-3-642-19835-9_15·Zbl 1315.68092号 ·doi:10.1007/978-3-642-19835-9_15
[19] Gulwani,S.:使用输入输出示例实现电子表格中字符串处理的自动化。收录于:POPL,第317-330页。ACM(2011)·Zbl 1284.68700号
[20] Gulwani,S.、Harris,W.R.、Singh,R.:使用示例处理电子表格数据。Commun公司。ACM 55(8),97-105(2012)·doi:10.1145/2240236.2240260
[21] Jin,G.,Song,L.,Zhang,W.,Lu,S.,Liblit,B.:自动原子性违规修复。收录于:PLDI,第389-400页。ACM(2011年)
[22] Jobstmann,B.,Griesmayer,A.,Bloem,R.:作为游戏的程序修复。收录:Etessami,K.,Rajamani,S.K.(编辑)CAV 2005。LNCS,第3576卷,第226-238页。斯普林格,海德堡(2005)。数字对象标识代码:10.1007/11513988_23·Zbl 1081.68572号 ·数字对象标识代码:10.1007/11513988_23
[23] Jones,J.A.、Harrold,M.J.:狼蛛自动断层定标技术的实证评估。见:ICSE,第273-282页。IEEE(2005)
[24] Kim,D.、Nam,J.、Song,J.和Kim,S.:从人工编写的补丁中学习自动补丁生成。收录于:ICSE,第802-811页。ACM(2013)
[25] Könighfer,R.,Bloem,R.:命令式程序的自动错误定位和更正。输入:FMCAD。IEEE(2011)
[26] Könighfer,R.,Bloem,R.:用实时程序分析进行修复。收录:Biere,A.,Nahir,A.,Vos,T.(编辑)HVC 2012。LNCS,第7857卷,第56-71页。斯普林格,海德堡(2013)。doi:10.1007/978-3-642-39611-3_11·doi:10.1007/978-3-642-39611-3_11
[27] Li,G.,Ghosh,I.,Rajan,S.P.:KLOVER:C++程序的符号执行和自动测试生成工具。收录:Gopalakrishnan,G.,Qadeer,S.(编辑)CAV 2011。LNCS,第6806卷,第609-615页。斯普林格,海德堡(2011)。doi:10.1007/978-3642-22110-149·doi:10.1007/978-3642-22110-149
[28] Long,F.,Rinard,M.:通过学习正确的代码自动生成补丁。载于:持久性有机污染物清单,第51卷,第298-312页。ACM(2016)
[29] Mechtaev,S.,Yi,J.,Roychoudhury,A.:Angelix:通过符号分析的可扩展多行程序补丁合成。ICSE,第691-701页。ACM(2016)
[30] Miller,B.P.,Fredriksen,L.,So,B.:UNIX实用程序可靠性的实证研究。Commun公司。ACM 33(12),32-44(1990)·doi:10.1145/96267.96279
[31] Necula,G.C.,McPeak,S.,Rahul,S.P.,Weimer,W.:CIL:用于分析和转换C程序的中间语言和工具。收录:Horspool,R.N.(编辑)CC 2002。LNCS,第2304卷,第213-228页。斯普林格,海德堡(2002)。doi:10.1007/3-540-45937-5_16·Zbl 1051.68756号 ·doi:10.1007/3-540-45937-5_16
[32] Nguyen,H.D.T.,Qi,D.,Roychoudhury,A.,Chandra,S.,SemFix:通过语义分析修复程序。收录于:ICSE,第772-781页。ACM(2013)
[33] Nguyen,T.,Kapur,D.,Weimer,W.,Forrest,S.:使用动态分析发现多项式和数组不变量。收录于:ICSE,第683-693页。IEEE(2012)
[34] Nguyen,T.、Kapur,D.、Weimer,W.、Forrest,S.:连接程序合成和可达性。技术报告,内布拉斯加大学,林肯分校,2016年10月
[35] Rice,H.:递归可枚举集的类及其决策问题。事务处理。美国数学。Soc.74(2),358-366(1953)·Zbl 0053.00301号 ·doi:10.1090/S0002-9947-1953-0053041-6
[36] Saha,S.,Garg,P.,Madhusudan,P.:炼金术士:学习保护仿射函数。收录人:Kroening,D.,Psreanu,C.s.(eds.)CAV 2015。LNCS,第9206卷,第440-446页。斯普林格,海德堡(2015)。doi:10.1007/978-3-319-21690-426·doi:10.1007/978-3-319-21690-426
[37] Sen,K.,Agha,G.:CUTE和jCUTE:协调单元测试和显式路径模型检查工具。收录:Ball,T.,Jones,R.B.(编辑)CAV 2006。LNCS,第4144卷,第419-423页。斯普林格,海德堡(2006)。doi:10.1007/11817963_38·doi:10.1007/11817963_38
[38] Singh,R.、Gulwani,S.、Solar-Lezama,A.:介绍性编程作业的自动反馈生成。摘自:PLDI,第15-26页。ACM(2013)
[39] Solar-Lezama,A.:通过草图合成程序。加州大学伯克利分校博士论文(2008)
[40] Solar-Lezama,A.、Arnold,G.、Tancau,L.、Bodík,R.、Saraswat,V.A.、Seshia,S.A.:草图模具。收录于:PLDI,第167-178页。ACM(2007)
[41] Solar-Lezama,A.、Rabbah,R.、Bodík,R.和Ebciolu,k.:比特流程序的草图编程。PLDI 40,281-294(2005)
[42] Srivastava,S.:基于可满足性的程序推理和程序合成。马里兰大学博士论文(2010年)
[43] Srivastava,S.、Gulwani,S.和Foster,J.S.:从程序验证到程序合成。收录于:POPL,第313-326页。ACM(2010)·Zbl 1312.68068号
[44] Srivastava,S.、Gulwani,S.和Foster,J.S.:基于模板的程序验证和程序合成。柔软。技术工具。Transf公司。15(5-6), 497-518 (2013) ·doi:10.1007/s10009-012-0223-4
[45] SyGuS:语法指导合成竞赛。www.sygus.org.2016年10月19日访问
[46] 韦默,W。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。