论文部分内容阅读
软件行业的不断规范化,不断完善化也随之带动着软件测试行业的不断发展。软件测试工作也由原始的纯手工测试逐步演变为规范化,程序化也是必需化的工作。软件测试工作在软件生命周期中所占的比重也在日益地增大。软件开发过程中的迭代、演化,需要频繁地进行软件测试,测试用例集的规模也越来越大。由于测试用例的设计、执行、管理和维护的开销相当大,而测试资源往往有限,对测试用例集的规模缩减也就成为了一种必然。对原始测试用例集规模的缩减工作也将对软件测试工作带来了极大的便利,即利用尽可能少的测试用例检测出软件中尽可能多的错误,从而提高测试效率、降低软件测试成本是本文研究的重点内容。测试用例集约简(Test Suite Reduction)的目的就是使用尽可能少的软件测试用例,充分测试给定的软件测试目标,从而提高测试效率、降低测试成本。为了求解该测试用例集约简问题,研究人员已提出了多种约简方法,主要包括启发式约简方法、整数规划约简方法、基于需求驱动的约简方法、基于遗传算法的约简方法等。但这些方法都相对存在着一些不足,已有研究表明,当约简用例集到一定程度时,约简后的用例集错误检测率会大大下降,从而影响软件的测试效率。本文查阅了众多的国内外相关文献资料,并总结分析了测试用例集约简问题症结之所在。针对以上问题,本文提出了一种基于K中心点的测试用例集约简算法。该算法利用聚类分析的K中心点算法(K-medoids Algorithm),首先通过该算法对原始的测试用例集进行聚类分析,选择抽样算法,根据测试需求集从得到的各聚类中选择测试用例,从而得到约简后的测试用例集。最后,本文根据测试用例集约简问题利用K中心点算法进行了代码的实现,实验结果数据表明本文提出的基于聚类分析方法的K中心点算法能较快速地得到测试用例较少,错误检测率较高的测试用例集。此外,为验证该算法的有效性,本文利用原有的经典算法做了对比实验,实验结果数据表明,本文提出的算法是可行的并且是有效的。