- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
同构回归测试
*论文题目:Isomorphic Regression Testing: Executing Uncovered Branches without Test
Augmentation. ( 中文题目:同构回归测试)
*作者:张洁、娄一翎、张令明、郝丹、张路、梅宏
*单位:北京大学博士研究生张洁、博士研究生娄一翎,美国德克萨斯大学达拉斯分校张令明教授,
北京大学郝丹教授、张路教授、梅宏教授。
联系方式:emai 地址zhangjie_marina@
*文章发表信息:(论文集,请提供论文集名称,出版社,出版时间;杂志,请提供杂志名称,年,
卷,期,页码)
论文集:FSE 2016
出版时间:2016 年11 月
*原文链接地址:/citation.cfm?doid=2950290.2950313
*正文:
同构回归测试
在软件开发过程中,软件更新时常发生,怎样保证软件更新后的软件质量呢?这
就是回归测试的任务。传统上,回归测试通过检测软件异常行为来保证软件质量。然
而,在实践中所有的软件行为不可能全部被检测到,尤其针对于大型的复杂软件系统。
为帮助开发人员更好的进行回归测试,传统工作集中在增加测试用例上,即通过人工
或自动生成测试输入的方法,观测测试输出以捕获程序行为。这种方法虽一定程度上
有效,但也存在很大缺陷:人工编写测试用例费时费力,不能覆盖的代码较多,而且
容易受人主观判断的误导 (例如忽略某些特别容易存在缺陷的类、方法等);自动生
成测试用例技术存在很多问题,例如代价大和无法很好的处理数组、字符串等。基于
目前软件测试技术存在的缺陷,很多软件不得不在面临诸多安全威胁的状态下发布,
有时甚至造成重大财产损失甚至人员伤亡。因此,我们迫切需要新技术来辅助现有技
术以更好的进行回归测试、保障软件质量。
基于此,我们提出了“同构回归测试”技术 (Isomorphic Regression Testing),可以在不增
加测试用例的情况下帮助开发人员发现更多缺陷。如第一幅图所示,在软件新版本中,
假设开发人员引入了一个新的bug,但现有测试用例并不能找到这个bug,因为相应的
代码都没有被覆盖到。同构回归测试修改了该版本中的一部分代码,生成了程序变体
(program variant)。在执行程序变体时,一部分测试用例会改变原执行路径,从而在
不增加测试用例的情况下轻而易举的让现有测试用例覆盖原本未覆盖的代码。
修改代码的规则可以有很多种,最简单的修改代码的规则其实就是将条件分支节
点逆转,0 变为1,1 变为0 ,这样一来只要原来有一条分支被覆盖,那么逆转条件后
另外一条分支就肯定能被覆盖。这样通过修改代码来增加覆盖率的方式比通过增加测
试用例来增加覆盖率简单多了。
然而,但是,怎么判断程序中有bug 呢?代码被修改之后,就不是原来的程序了
呀,原来的测试预言根本不能再继续被使用。然而,在回归测试中,完全可以利用上
一个版本的同样的程序变体的行为来充当测试预言。当我们对两个版本做完全相同的
改变时,他们改变后的行为也应该是相同的,除非新版本中存在change 或者bug。
同构回归测试技术可以被分解为三个基本步骤。首先,为保证能够在两个版本上
做相同的代码改变,该技术可以使用控制流图匹配的方法,找到完全相同的代码片段。
然后,根据现有测试用例的分支覆盖情况,该技术生成、执行程序变体并记录执行结
果,再将两个版本的程序变体的执行结果与将两个版本的程序变体的执行结果与原程序执行结果进行对比执行结果进行对比。如果两个版本
的原有程序上执行结果相同相同但是程序变体的执行结果不同,就可以说明新的潜在的说明新的潜在的
bug 存在了,而且该bug 是通过通过同构回归测试技术里新执行的分支暴露出来的回归测试技术里新执行的分支暴露出来的。
为验证同构回归测试技术的有效性为验证同构回归测试技术的有效性,我们随机从GitHub 的个most popular
Java projects 上面找了10 个个Java 项目,并使用变异测试工具Pit 植入错误来对检错效植入错误来对检错效
果进行验证。结果表明,同构回归测同构回归测试技术能够多覆盖5.3%~80% 的分支的分支,并能够检
测出5.3%~70%的原来测试用例原来测试用例未检测出来的错误。
您可能关注的文档
最近下载
- 大学有机化学第1章绪论ppt课件.pptx VIP
- Unit 1 Happy Holiday Section B 1a-1d(学案)2025-2026学年人教版英语(2024)八年级上册.docx VIP
- 医美抗衰美容干细胞抗衰产品项目知识课件.pptx VIP
- 合肥市残疾人证课件.ppt VIP
- 牛津译林版初中英语新教材七年级上册全册单词表.xlsx VIP
- 《企业数字化转型之课件解决方案》课件.ppt VIP
- 工程临时用电施工组织设计.doc VIP
- 欧科PT300变频器说明书.pdf
- 2025年广东南粤集团有限公司招聘笔试备考试题及答案解析.docx VIP
- 飞行器总体设计.pptx VIP
文档评论(0)