论文部分内容阅读
随着世界越来越信息化的发展,软件产品越来越多,遍布各行各业,软件质量的重要性也逐渐为人们所察觉,软件测试步入人们的视线。回归测试就是软件测试过程中比重最大的一个环节,其测试用例集由初始用例集和针对软件变更的新增测试用例两部分构成,在不断重复的回归测试过程中规模持续递增,所以对回归测试用例集进行优化将能起到显著效果,有效减少测试代价。目前存在的测试用例集约简算法主要以启发式算法为主,大部分过于简单,对测试用例的优化几乎全部基于集合的交并关系进行,难以应用于实际生活中的软件产品测试。因此本文在研究了国内外几种典型算法的基础上提出了一中基于不可行路径的三目标搜索算法。论文分析了回归测试策略、主要存在问题、测试技术和国内外典型测试用例集约简方法及各算法的缺陷,并针对这些缺陷应该如何改进有了一些想法,决定从测试需求和测试用例本身两个方面对软件测试用例集进行优化。对于测试需求集的约简,本文决定采用不可行路径优化法,根据性质将其分为值依赖不可行路径和谓词依赖不可行路径,并分别就两种情况进行求解其不可行关键分支,根据不可行关键分支得到不可行路径,从而完成了对测试需求的优化,并以此生成初始测试用例集。对于测试用例集的约简,本文构建了一个基于测试用例的路径覆盖率和运行代价的双目标模型,基于这个模型求得各测试用例的选择优先级,并将求得的优先级用于增强蚁群算法作为初始信息素,将各测试用例的错误检测率作为蚂蚁选择节点的影响因子,使其成为一个实质意义上的三目标搜索算法—测试用例覆盖率、运行代价还有错误检测率,以此降低算法的随机性,加快收敛速度,更快得到测试用例优化代表集。论文末尾还设计了实验证明基于不可行路径的测试需求约简算法和三目标搜索算法的可行性和有效性,并将算法与其他典型算法进行比较,研究其优点和缺陷。实验结果证明,本文提出的算法能够以较小测试代价获得一个覆盖了所有测试需求且错误检测率较高的测试用例优化代表集。