论文部分内容阅读
软件测试是软件开发过程中的一个重要环节,是保证软件质量的重要手段。回归测试是一种常用的测试方法,在软件的某些功能发生改变或者推出新的版本之后都需要进行回归测试。然而,由于要尽快推出新版本,测试人员通常没有足够的时间和资源进行回归测试。因此,提高回归测试的效率和效力,降低回归测试的成本成为软件回归测试研究的重点。为了提高回归测试的效率,测试人员需要对测试用例库进行统一管理。测试用例优先级技术(Test Case Prioritization, TCP)能够在不减少测试用例规模的情况下,提高测试用例集的性能,例如代码覆盖率,缺陷检测率等。国内外许多研究者围绕测试用例优先级问题展开了大量研究,并取得了一定的进展,但是还存在一些亟待解决的关键问题。现有的测试用例优先级方法缺乏动态性,这主要体现在:随着测试的进行,未被覆盖的测试需求在不断变动,由此计算出的未被覆盖的测试需求优先级也在不断变化,为了高效的满足测试需求,测试用例排序也应有明显地波动;另外,现有的测试用例优先级方法不能全面的把握测试需求和测试用例的成本收益问题。针对这两个方面,本文提出了基于变化测试需求优先级的成本收益模型,并给出具体的测试用例优先级算法TCP_Req_CB_add,为了验证该算法的高效性,还引入了新的度量优先级方法的标准MR_C_B。该算法首先根据测试历史信息计算测试需求和测试用例的优先级、成本、收益,并提取测试需求和测试用例的二元关系矩阵;然后根据不断变化的测试需求集,动态的调整测试用例的优先级;最后按照测试用例优先级的高低顺序执行。该算法考虑到的影响因素比较全面,因此更加合理。本文最后将该方法应用于电力数据分析系统,并结合新的优先级方法度量标准,对排序结果进行评价,并与以往的算法做出对比,证明了该测试用例优先级算法的有效性。