论文部分内容阅读
回归测试是软件测试的一个重要环节。随着测试版本不断增加,如何提高回归测试效率成为软件测试的重点和难点。本文以需求为出发点,重点研究回归测试优化的一个主要内容:测试用例优先排序。传统测试用例优先排序技术大多是无反馈或无记忆技术,即每次排序为独立排序。随着软件复杂度不断增高,传统测试技术基本达到瓶颈,如何在多元化的软件工程中继续提高回归测试效率降低开销已成为软件测试研究领域亟待解决的问题。针对回归测试下测试用例优先排序效率问题,本文提出一种面向需求的基于测试历史信息的测试用例优先排序技术。该技术将需求信息、错误反馈信息及历史信息三者结合,考虑整个回归过程对测试的不断影响,为每一个测试用例赋予执行概率。执行概率大的测试用例优先执行。通过实验表明,在多轮回归测试场景下,面向需求的基于历史信息的测试排序技术相比其他传统无记忆的排序技术,在纠错速率上更有优势。针对具体的敏捷开发环境场景,本文扩展面向需求的基于历史信息的测试排序技术,提出一种基于敏捷开发环境的面向需求的回归测试优化技术。首先,分别针对当前版本和已发布版本的回归测试设计敏捷优先排序和敏捷测试选择。敏捷优先排序扩展先前基于历史信息的测试排序技术,以新增功能为测试重点,分阶段进行优先排序,以提高纠错速率;敏捷测试选择从以往测试纠错和需求关联出发,筛选失效测试用例和交互测试用例作为子集,以减少测试序列长度。其次,将二者结合设计回归测试优化模型及优化算法。实验证明,在敏捷开发这种特定场景中,与现有的传统优先排序技术、测试选择技术及二者的混合技术相比,本文所提的回归测试优化技术既可达到高错误检测率,又可减少待执行测试用例数量,同时保证较高的安全性。在测试用例优先排序问题的研究上,传统排序方法存在“先排序后执行”的特点。一旦排序确定,在测试执行过程中不会再改变测试序列的顺序。这样,执行阶段产生的反馈信息不能在本轮测试排序中使用,只能被用于下次测试当中。针对执行阶段错误反馈信息滞后使用问题,本文提出一种面向需求的基于聚类的自适应测试用例排序调整技术。该技术基于聚类分析理论设计测试用例的聚类准则,在测试执行之前对测试用例进行聚类,并利用传统优先排序技术对测试用例进行预排序得到有序序列。随后按序执行测试用例。当执行中遇到有测试用例揭露错误时,自适应对剩余未执行的测试用例进行排序调整。通过实验表明,与传统优先排序技术及基于聚类的排序技术相比,本文方法在错误揭露速率上表现更优;与其他自适应排序技术相比,本文方法虽在平均错误揭露百分比上与对比方法相差无几,但在执行时间上花费更少;通过对不同的差异性度量进行比较,在相关性度量下,本文方法具有更好的表现,且如果在本文方法中选择total策略进行优先级处理,将会更好地发挥相关性度量的作用。目前,大多数测试用例优先排序技术都是基于一个目标准则对测试用例计算优先级。然而,随着软件日益复杂多样,多种影响测试排序效率的目标因素逐渐被广泛关注,传统的单目标优先排序技术已不能满足多目标影响下的综合测试效率。针对单目标排序的局限性,本文借助多目标问题优化处理方法,提出一种基于多目标测试用例优先排序技术。该技术选取五种目标准则作为目标函数,在每一个目标维度里,计算测试用例优先级,并将优先级进行归一化处理。加权求和单目标优先级,得到测试用例基于多目标的优先级。最终根据多目标优先级排列测试用例。实验表明,在统一的度量标准下,基于多目标的排序技术相比其他单目标技术表现较优。因此,在实际应用中,可考虑将其作为一种新型排序技术。