论文部分内容阅读
信息化时代中,软件对人们生活所起的作用越来越重要,移动应用表现尤为明显。然而,当前软件的业务逻辑和开发过程变得比以前复杂许多,这不可避免地导致软件自身缺陷增多。随着软件规模的增大和回归测试次数的增加,软件测试成本也会大大提高。因此,如何在保证较高测试效率的同时减小测试过程的工作量成为当前软件测试的研究重点。对测试用例集约简是降低回归测试中测试用例执行成本的有效方法。针对测试用例约简问题,本文给出一种将经典测试用例集约简算法HGS(HittingSet algorithm)与蚁群算法相结合的算法(HGS and Ant Colony Optimization,HGS-ACO)对该问题进行求解。该算法利用HGS算法思想赋予每个测试用例“重要度”,并根据其设置蚁群算法中的初始信息素浓度。然后用挥发系数可变的蚁群算法进行搜索,同时对搜索过程中的用例选择和信息素更新机制进行分析和改进。最后用SIR(Software-artifact Infrastructure Repository)系统中的五个程序及其测试用例集进行实验,实验结果验证了所提算法在测试用例约简问题中的有效性。实际测试中,通常需要在有限的时间内尽早发现被测软件的缺陷。为解决这一问题,本文设计了一种基于两属性分级调整的测试用例动态调整算法(Two Attribute and Hierarchic Adjust,TA&HA)。该算法首先将原始测试用例集根据规定属性划分。然后根据测试用例属性建立关联矩阵,对具有耦合关系的关联矩阵进行解耦。在此基础上,赋予待调整测试用例各自的提升等级,执行时根据调整规则对其进行动态调整。最后将所提算法应用于开源网站Google Code中一个安卓项目的测试用例执行过程,对比测试数据表明该算法能增强选择待调整用例的针对性,并缩短发现错误的时间。自动化测试是提高测试效率的有效手段。但传统的自动化测试只能按照测试工具的默认排序静态执行测试用例,不能动态调整用例顺序。本文结合安卓应用自动化测试框架Robotium,将所提出的优先级动态调整算法加入到测试用例自动化执行过程,并修改测试结果数据的文件写入方式,使其能够生成综合多个测试用例执行过程的测试报告。为方便测试人员使用,设计开发了针对安卓应用的测试用例执行工具,实现了安卓应用测试用例执行自动化与调整自动化过程的统一。