论文部分内容阅读
随着软件行业的快速发展,各行各业都已经离不开软件的支撑,软件的质量问题所引起的损失也越来越大。软件测试作为保障软件质量的一种必要的手段,在软件生命周期中的地位也越来越重要。如何进行高效的软件测试工作也成为当下一个研究的重点。软件测试用例约简作为提高软件测试效率与缩减软件测试成本的一种有效手段关于这方面的研究也日益重要,各种研究都力求在进行高效而低成本的测试方面取得一定研究成果。本文系统的回顾了当前各种测试用例约简技术,并在基于测试需求约简的测试用例约简技术的基础上进行了深入的研究工作,提出了一种需求约简下基于改进DBSCAN算法的测试用例约简技术。具体的研究贡献可以大致概括为以下几个方面:(1)基于需求约简下得出的测试用例集合存在冗余的情况,本文提出一种进一步消除冗余和精简测试用例的方法。需求约简下的测试用例约简方法在宏观上缩减了测试用例的规模,但只是在整体上针对单个需求所对应的测试用例集合进行模块化的约简而并不是针对集合内部单个测试用例之间。所以这种方法所得到的测试用例集合是模块化约简的结果,还存在消除冗余的空间,本文针对这个问题提出了一种基于改进DBSCAN算法的测试用例约简方法,一定程度上消除了测试用例之间冗余的问题,起到了很好的优化作用。(2)DBSCAN算法作为一种有效的聚类方法,其参数取值是提高该算法的关键。本文针对该算法中两个重要参数领域半径E和领域密度阀值MinPts做了有效的取值方法改进,提出了基于距离标准差的领域半径取值方法以及基于最小生成树算法的领域密度阀值取值方法,提高了该算法取值的科学和合理性,提升了算法的执行效率。基于距离标准差的领域半径科学的覆盖了分布相对集中的数据,将具有高相似性和重合性的数据都归于一个类从而为接下来的约简优化提供了类的依据。而基于小生成树算法的领域密度阀值取值方法则以最小的路径成本聚合了类的大小,能够很好的覆盖高密度地区的数据点,做到了类的大小与覆盖的适中。(3)传统的DBSCAN聚类算法主要功能就是输出类,但是在算法的执行过程中也会产生具体的核心数据对象以及噪点数据对象。本文在传统的算法基础上进行了改进将聚类的类输出改进为包含核心数据对象以及噪点对象的数据集合的输出。具体的类在本文的用例优化方法当中只是作为一个优化的前提和基础条件而并非是优化的对象,所以没有必要将得到的所有类进行输出,为了降低算法的时间和空间复杂度以及提高算法解决本文实际问题的能力,本文在原有的算法上进行了改进,提高了其针对问题的适用性,起到了优化测试用例集合的效果。(4)本文具体的用例优化思想是基于黑盒测试中等价类划分以及边界值分析的思想。作为测试用例的约简优化基础理论来源,本文提出了两种类似约简策略即类等价类划分以及类边界值分析策略进行测试用例约简。以该策略作为本文优化的理论基础,进一步的完善了本文的理论和逻辑基础。