欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    4测试用例修复方法与工具.docx

    • 资源ID:9121310       资源大小:414.95KB        全文页数:15页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    4测试用例修复方法与工具.docx

    1、4测试用例修复方法与工具回归测试中测试用例修复的方法与工具1 绪论1.1 研究背景随着社会的发展,软件系统在社会各个领域的作用日益重要,人们对软件系统的要求也日益增高,软件质量首当其冲。2002年,NIST(the National Institute of Standards and Technology)估算软件缺陷每年要耗费美国经济大约6000万美元,如何发现和处理这些软件缺陷直接关系到软件的可靠性和质量。尽管存在代码审查、形式化验证等辅助手段,软件测试依然是目前最主要的软件质量保障手段1, 2。 由于功能增加、性能调优、软件重构、错误修复等原因,软件通常处于动态演化。回归测试旨在通过重

    2、新测试修改以后的软件确保这些改变没有对现有的软件行为带来损坏3。随着软件的演化,新的测试用例不断产生,往往积累大量冗余测试用例。测试用例执行、管理和维护的开销相当大,而测试资源有限,因此我们希望从中挑选部分代表性测试用例,称为测试用例选择(test case selection)。测试用例选择应尽可能满足不同的测试需求,从而提高其错误检测能力。在演化软件测试的实际应用中,仅采用测试用例选择并不能完全解决软件演化带来的挑战:(1) 软件演化可能导致部分测试用例不可用,直接丢弃这些测试用例将降低错误检测能力;(2) 软件演化引发模块的增加和修改,已有测试用例不能完全覆盖这些模块。为了满足软件演化带

    3、来的测试挑战,研究者们提出了测试用例修复(test case repairing)和测试用例集扩增(test suite augmentation)技术。测试用例修复是指对旧版本程序测试用例集中的不可用测试用例进行修复,使得修复后的测试用例能够在新版本程序上执行。测试用例集扩增技术是指根据新版本程序和已有测试用例来生成新的测试用例,促使新测试用例能够覆盖新版本程序的修改部分和新增部分。测试用例选择、测试用例修复和测试用例集扩增构成了测试用例演化的三大主要部分2。测试用例修复是指对不可用的测试用例进行添加、删除或修改等操作,使得修改后的测试用例能够在新版本上正确执行。在软件演化过程中,不可用测试

    4、用例因软件演化导致而成,修复后的不可用测试用例往往更具有针对性,从而比生成新测试用例更为有效。因此,修复不可用测试用例对于满足演化软件测试新需求具有重要意义。不可用测试用例可分为两类:可修复测试用例和不可修复测试用例。不可用测试用例能够被修复使其能够在新版本的程序上执行,我们称其为可修复测试用例。理论上,所有测试用例均可修复,但需要考虑其修复成本。我们通常将修复成本过高的测试用例称为不可修复测试用例。不可修复测试用例的一个简单处理就是丢弃。丢弃不可用测试用例存在两个风险:(1) 不可用测试用例所占比例可能很大,直接丢弃将浪费大量测试资源;(2) 不可用测试用例由软件演化引发产生,直接丢弃将导致

    5、漏测,从而降低测试用例集的错误检测能力。测试用例修复不但能够节省软件的测试成本,还能够获得更有针对性的测试用例,进而提高演化软件的测试效率2。1.2 理论基础1.2.1 回归测试随着软件系统的不断演化,系统会不断发生改变,这些改变往往容易给软件造成影响。为了保证软件新的改变没有影响到改变以前软件已有的行为,回归测试是必要的过程。回归测试旨在验证软件的改变部分没有引进新的不可预期的错误,在整个软件维护过程中占了一半的时间4。在软件的不断改变中,测试用例集会越来越大以至于花销超过设定的范围,为了解决这个问题,测试用例集最小化、测试用例选择、测试用例优先级技术应运而生3。测试用例集最小化旨在通过减少

    6、冗余的测试用例使来减少最终运行的测试用例数量;测试用例选择旨在辨别出与最近的改变相关的测试用例;测试用例优先级旨在通过给测试用例设定优先级使最先发现的错误数量最大化3。1.2.2 测试用例演化软件演化使得原有测试用例集不足以满足变化的测试需求,因而需要演化已有测试用例集以确保新版本软件的质量,我们称其为测试用例演化。定义如下:定义1. 设程序P,P为P的新版本程序,T为P的测试用例集,通过对T进行选择、修复和扩增等操作,构建一个新测试用例集T ,使得T 尽可能地满足P的测试需求,我们称其为测试用例演化2。图1-1描述了测试用例演化的过程,随着程序的变化,会出现可用的测试用例和不可用的测试用例两

    7、类,对于可用的测试用例使用测试用例选择技术尽量选择出满足新版本软件测试需求的测试用例集。对于不可用的测试用例能够修复的执行修复操作,对于不能够修复的用例直接丢弃。图1-1 测试用例演化过程1.2.3 测试用例修复当软件发生改变以后,原有的测试用例变为可用和不可用两种,丢弃所有的不可用测试用例无疑是很大的浪费,我们的目标就是将不可用的测试用例通过修复的方法变为可用的测试用例2, 5。具体定义如下:定义3. 设程序P,P为P的新版本程序,T为P的测试用例集,t 为T中的一个测试用例且t 在P上无法正常执行,通过对t中的测试元素进行添加、修改、删除等修复操作得到一个新测试用例t,使得t能够在P上正常

    8、执行,称为测试用例修复2。1.3 论文组织结构本文通过系统文献综述方法对于测试用例修复技术进行综合分析,对比重要测试用例修复技术并分析测试用例修复技术的研究趋势,帮助研究人员选择适合自己的测试用例修复技术,促进测试用例技术的研究和在工业界的有效应用。本文第1节介绍系统综述的方法,并按照系统综述的过程进行资料收集和分析。第2节对于测试用例修复系统综述的结果进行分析,从测试用例修复方法分类、重要的测试用例修复方法对比方面进行分析。第3节分析测试用例修复的研究趋势。最后对本文进行总结。2 研究方法2.1 系统文献综述系统文献综述(systematic literature review),简称系统综

    9、述,是主要在医学领域和社会学研究领域针对某一个研究性问题开展的基于文献的系统化综述方法,并于2004年引入软件工程领域.系统文献综述的过程包含3个主要的阶段: 制定综述方案:主要进行综述需求分析,明确综述的目的,设计开展综述的规程,以指导后期的文献收集等工作; 开展综述:根据综述方案预定的目标,按照综述步骤进行文献收集,主要工作包括确定主要的文献来源、确定收录标准、实现文献质量评价、开展数据抽取与综合; 形成综述报告:对于综述进行总结.本文按照图2-1的系统文献综述框架开展了回归测试中测试用例修复方法和工具的系统文献综述。图2-1 系统文献综述框架2.2 文献计量分析2.2.1 作者出现频次将

    10、从SCI、EI、CNKI、万方数据库中检索出文献删除重复文献以后,总共302篇相关文献。利用工具Bibexcel对这302篇文献的作者进行分析,图2的结果表示每位作者在302篇文献中出现的总次数,其中Khurshid Safraz和Orso Alessandro出现的次数分别为6次和5次,是较为有影响力的作者。图2选取出现次数大于2的作者,总共有14位作者,通过工具Pajek对其进行分析,图的结果反映了这14位作者之间的合作关系。图32.2.2 期刊类型使用Endnote工具对302篇文献进行期刊类型分析,分为Book、Book Section、Conference Proceedings、J

    11、ournal Artide、Patent、Report。其中Conference Proceedings、Journal Artide最多,分别有184篇和75篇。2.2.3 年份分布通过阅读文献的关键词进行第一轮筛选,剩下84篇文献,图4为这84篇文献的年份分布情况,其中2010年和2011年的文献最多。图4 文献的年代分布情况2.2.4 关键词进一步阅读文献的摘要和整体内容删除与研究对象相关度不大的文献以及篇幅小于5页的文献。最后剩下的53篇文献用于文献综述,其中包括37篇Conference Proceeding、13篇期刊Journal Artide、2篇Thesis和1篇Book S

    12、ection。通过工具Bibexcel对剩下的53篇文献进行关键词分析,表1为这53篇文献的关键词使用频率情况,其中test、testing、testingsoftware、program、maintanceSoftware、case、regression在这53篇文献中使用频率都很高。表1 关键词在文献中出现的次数2.2.5 文献被引用次数对最后剩下的53篇文献进行被引用次数的统计,表2是所有引用次数大于等于1次的文献。其中引用次数大于20次的文献有10篇,大于10次的文献有9篇。文献题目被引用次数Regression testing minimization, selection and

    13、prioritization: a survey201Regression testing of GUIs128Automatically repairing event sequence-based GUI test suites for regression testing67Matrix: Maintenance-oriented testing requirements identifier and examiner43Path-oriented test data generation using symbolic execution and constraint solving t

    14、echniques40Automated Behavioral Regression Testing32 ReAssert: Suggesting Repairs for Broken Unit Tests30Regression Testing of Composite Service: An XBFG-Based Approach22On test repair using symbolic execution21 WISE: Automated test generation for worst-case complexity20 Factors affecting the use of

    15、 genetic algorithms in test suite augmentation17 A Systematic Regression Testing Method and Tool For Software Components15A case study on regression test suite maintenance in system evolution15A simulation study on some search algorithms for regression test case prioritization14Test Case Prioritizat

    16、ion for Web Service Regression Testing12 Automatically repairing test cases for evolving method declarations11A clustering approach to improving test case prioritization: An industrial case study11Actionable knowledge model for GUI regression testing11 Water: Web application test repair10Automated G

    17、UI Refactoring and Test Script Repair 9Testing Web Service Orchestrators in Context: A Symbolic Approach9Harnessing Web-Based Application Similarities to Aid in Regression Testing8Scaling up automated test generation: Automatically generating maintainable regression unit tests for programs7Understan

    18、ding myths and realities of test-suite evolution7 Reduce, reuse, recycle, recover: Techniques for improved regression testing6AutoFlow: An automatic debugging tool for AspectJ software6Towards testing future Web applications6ReAssert: a tool for repairing broken unit tests5Automatic test suite evolu

    19、tion4Maintaining multi-tier web applications4Notes on the software evolution within test plans4Prioritizing Requirements-Based Regression Test Cases: A Goal-Driven Practice4The Effectiveness of Regression Testing Techniques in Reducing the Occurrence of Residual Defects4 Software regression as chang

    20、e of input partitioning2Automated testing using symbolic execution and temporal monitoring2Optimizing a Structural Constraint Solver for Efficient Software Checking2A Method for Testing Software Systems Based on State Design Pattern Using Symbolic Execution1Specification-based test repair using a li

    21、ghtweight formal method1Test-case generation and bug-finding through symbolic execution1Various Techniques of Regression Testing13 失效用例分析3.1 用力失效问题3.2 失效问题分类3.2.1 断言失败3.2.2 程序运行时异常3.2.3 编译错误3.3 方法声明演化分析3.3.1 方法声明定义3.3.2 方法声明演化分类3.3.2.1 方法名称改变3.3.2.2 方法返回参数类型改变3.3.2.3 方法参数改变4 测试用例修复方法与工具4.1 GUI测试用例修复

    22、4.1.1 GUI回归测试问题4.1.2 GUI测试用例修复方法4.1.2.1 基于AKI的多代理框架的修复方法Actionable Knowledge Model for GUI Regression Testing4.1.2.2 基于事件可达性模型的脚本修复方法基于事件可达性模型的图形用户界面测试脚本修复方法Automatically repairing event sequence-based GUI test suites for regression testing4.1.2.3 基于实验的评估手册与工具的脚本维护方法Experimental Assessment of Manual

    23、 Versus Tool-Based Maintenance ofGUI-Directed Test Scripts4.1.2.4 基于启发式框架的测试用例维护方法An Extensible Heuristic-Based Framework for GUI Test Case Maintenance4.1.2.5 人类知识辅助的脚本修复技术人类知识辅助的GUI测试脚本修复技术4.1.3 GUI测试用例修复工具4.1.3.1 REST脚本修复工具Maintaining and evolving GUI-directed test scripts4.2 Web测试用例修复4.2.1 Web回归测

    24、试问题4.2.2 Web测试用例修复方法4.2.2.1 自动修复会话数据方法Automated session data repair for Web application regression testingAdvances in User-Session-Based Testing of Web Applications4.2.2.2 基于版本行为比较的方法Water: Web application test repair4.2.2.3 基于关键词的方法A Keyword-based UI Test Framework for Web Services4.2.3 Web测试用例修复工具

    25、4.2.3.1 ReFit- Eclipse的测试用例维护插件ReFit: A Fit test maintenance plug-in for the Eclipse refactoring plug-in4.3 白盒测试用例修复4.3.1 回归测试问题4.3.2 白盒测试用例修复方法4.3.2.1 符号执行方法On test repair using symbolic execution4.3.2.2 针对方法声明改变的修复方法Automatically repairing test cases for evolving method declarations4.3.3 白盒测试用例修复工

    26、具4.3.3.1 ReAssert工具ReAssert: Suggesting Repairs for Broken Unit TestsReAssert: a tool for repairing broken unit tests4.3.3.2 TestCareAssistant工具TestCareAssistant: Automatic Repair of Test Case Compilation Errors4.3.3.3 TestEvol工具TestEvol: a tool for analyzing test-suite evolution5 挑战与趋势6 总结Reference

    27、s:1 J. D. Strate and P. A. Laplante, A Literature Review of Research in Software Defect Reporting, 2013 2013.2 张智轶, 陈振宇, 徐宝文, and 杨瑞, 测试用例演化研究进展, in 软件学报, ed, 2013.3 S. Yoo and M. Harman, Regression testing minimization, selection and prioritization: a survey, Software Testing, Verification and Reliability, vol. 22, pp. 67-120, 2012 2012.4 A. Ngah, Regression test selection by exclusion, Durham University, 2012.5 A. M. Memon and M. L. Soffa, Regression testing of GUIs, 2003, pp. 118-127.


    注意事项

    本文(4测试用例修复方法与工具.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开