论文部分内容阅读
软件测试作为软件工程中重要的组成部分,在开发和维护各个阶段都离不开软件测试。作为软件测试中经典的回归测试,主要作用在于软件升级版或者修改版,不断地重复执行以前的全部或者部分相同的测试工作,测试时间长,耗费资源多。因此,如何降低软件成本,提高测试用例的使用效率一直是软件测试领域的研究重点和难点。软件的演化产生可用和不可用的测试用例,不可用的测试用例又分为可修复和不可修复的测试用例。若采取丢弃不可用测试用例的策略,则缩减测试用例的覆盖面,减弱回归测试的有效性,降低用例集检测错误的能力。但是,测试用例修复技术可以解决此问题。本课题在回归测试的背景下,对GUI和WEB测试用例修复进行相关研究和比对,着重对GUI测试用例在版本升级中测试用例失效过程进行研究分析,并通过一个实例阐述回归测试用例修复的基本思路,从而提出由检查器和修复器组成的测试用例修复模型,采用数值化思想实现检查器,利用检查器算法筛选可用和不可用的测试用例,使用修复器修复失效的测试用例,主要针对操作调用图中的边和事件进行修复研究。在测试用例修复技术的基础上,进一步研究当GUI软件发生迭代时,GUI对象的变化影响着组件间的关系,修复时应当充分考虑到这种变化,因此提出事件依赖ED算法,该算法主要分析GUI中事件的新增、删除、修改操作中存在的依赖关系,并针对每种变化给出对应的事件序列修复技术。事件依赖ED算法较Memon A M等人算法相比,细化事件与事件之间的依赖关系,提高测试用例的修复效率,扩大修复测试用例的覆盖面,规避漏测和漏修复的风险。最后,通过两种版本的四个待测软件,基于成熟的测试工具RFT的基础上,提出3个覆盖本课题研究的问题,并设计两个实验验证测试用例修复技术和事件依赖ED算法的可行性和有效性,实验一较Memon A M等人的实验结果提升8.5%的修复效率,实验二较实验一修复效率提升8.7%,说明事件依赖ED算法对提升测试用例修复效率有一定的效果,从而减少测试过程中的开销。