论文部分内容阅读
随着国家信息化战略的实施,软件在各领域信息化中的地位越来越重要,软件的规模越来越大,系统整合、数据集中都对软件系统的可靠性提出了更高的要求,如何开发出可靠、高效、稳定、功能强大的软件系统,已经成为软件开发和研究人员热切关注的话题。软件测试在软件生存周期扮演着重要的角色,是保障软件质量的重要技术措施,对于查找软件缺陷、保障软件产品质量,提高测试效益具有不可替代的作用。本文主要针对测试用例优先级技术进行研究,优先级技术能够在不减少测试用例规模的情况下,提高测试用例集的性能,例如代码覆盖率,缺陷检测率等。国内外许多研究者围绕测试用例优先级问题展开了大量研究,并取得了一定的进展,但仍存在这样两个值得深入研究的问题:如何对存在依赖关系的测试用例进行优先级排序以及如何对这种依赖关系进行定性定量研究。本文对存在有依赖关系的优先级技术进行了深入的研究,主要包括以下几个方面:(1)研究了对软件可测试性起关键作用的依赖关系。针对已有软件可测试性指标的研究中存在的不足,构建了一组测量软件可测试性的度量指标,这种指标度量了对整体可测试性具有关键影响的局部依赖关系。该测量准则能够在软件测试周期早期发现比较严重的缺陷,提高软件测试效率,从而尽快达到测试目标。(2)研究了依赖关系的量化。通过研究和分析测试用例间的依赖关系,组成依赖结构图,依据Floyd算法和Worshall传递闭包算法分别计算出依赖结构的两个图形覆盖指标依赖深度和依赖总数。测试用例间依赖关系表达了软件复杂性,在软件测试的早期优先测试复杂度高的部分有利于尽早地发现更多的缺陷。(3)研究了存在依赖关系的测试用例优先级技术。根据对测试起关键作用的依赖关系量化指标和测试用例间依赖关系的图形覆盖指标,本文设计了基于测试用例间依赖关系的优先级排序算法。此排序方法以待测测试用例为顶点,依赖关系为路径,构成依赖结构图;定义依赖关系的量化指标,将之作为权重函数,运用加权深度优先搜索算法进行优先级排序。最后,本文做了一系列仿真实验,对缺陷检测能力和检测到所有缺陷消耗的单位测试代价在影响测试用例的优先级排序中所起的作用进行了分析,并对本文所提出的优先级技术与随机排序和基于功能覆盖的优先级技术进行比较。实验结果表明,本文的优先级技术能够在较短的时间内检测到更多的缺陷,花费更少的测试代价,表明本文提出的算法具有较好的效果。