论文部分内容阅读
随着面向对象编程OOP(Object-Oriented Programming)技术的快速发展,面向对象软件OOS(Object-Oriented Software)应运而生,其可靠性和质量问题一直倍受用户的关注。随机测试RT(Random Testing)作为一种常用的软件测试方法,其测试效果并不是十分理想。基于此,T Y Chen等人在改进RT的基础上提出了自适应随机测试ART(Adaptive Random Testing),其研究结论表明ART相比于RT具有更好的缺陷检测效果。ART的核心原理是:在测试执行过程中,需使得测试用例在整个输入域上达到尽可能均匀的分布。ART执行时一般会生成两个集合:已执行测试用例集和候选测试用例集,采用特定的距离度量机制计算候选测试用例集到已执行测试用例集的距离,再从候选集中挑出距离已执行测试用例集最远的测试用例以生成后续测试用例,并将测试执行后未引发程序失效的测试用例添加到已执行测试用例集中。由此可知,已执行测试用例集将伴随测试执行不断膨胀,进而导致测试开销的增加及缺陷检测效果的降低等问题。为解决测试用例池伴随测试执行不断膨胀所引发的问题,本文聚焦于研究ART中基于k均值聚类的OOS测试方法,以提高ART中内存选择技术即k均值聚类技术在OOS测试中的测试效果。本研究中提出了一种ART中基于k均值聚类的OOS测试方法以及一种ART中k均值聚类的最佳聚类数k值的确定方法,并分别展开实验分析论证,实验结果表明本文所提方法在OOS测试方面具有较好的可行性和缺陷检测有效性。同时,本研究中设计并实现了一个kOOSTT(k-means clustering Object Oriented Software Testing Tool)测试原型系统作为本研究的实验平台。本文主要完成的工作阐述如下:1.在掌握基于ART的OOS测试的基本理论和相关技术的基础上,本研究关注到测试用例距离度量机制在基于ART的OOS测试中的重要作用,在充分分析OO测试用例自身特点的情况下,本研究着重考虑了OO测试用例的方法序列中方法调用顺序信息对于OO测试用例距离度量的影响,并基于此认知提出了一种基于IWT(Improved Wavelet Transform)的OOS测试用例距离度量机制。本研究通过将所提度量机制应用在ART中基于k均值聚类的OOS测试中,继而提出一种新的OOS测试算法即IWTClustering-ART(ART with Clustering based on Improved Wavelet Transform)算法,该算法运用基于IWT的OOS测试用例距离度量公式计算测试用例之间的距离,用于指导后续测试用例的挑选,使得挑选出的后续测试用例在缺陷检测过程中发挥较好的测试效果。本研究将所提IWTClustering-ART方法的缺陷检测效果与现有的WClustering-ART(ART with Clustering based on Wavelet Transform)、OMISS-ART(ART with Object and Method Invocation Sequence Similarity)、ARTOO(Adaptive Random Testing for Object-Oriented Software)以及RT-ms(RT with method sequence)方法进行实验对比,实验结果显示本文所提ART中基于k均值聚类的OOS测试方法IWTClustering-ART具有最好的缺陷检测效果。2.提出ART中k均值聚类的最优聚类个数k值的确定方法,并进行实验对比分析验证。本研究提出一种基于实验过程的最优k值确定方法,该方法包含一个基于实验过程确定最优k值的求解模型以及一个适用于ART中k均值聚类的最优k值确定算法即kValue算法,该算法针对具体的被测类库为测试方法IWTClustering-ART的聚类过程确定最佳的聚类个数k。最后,本研究基于所提的最优k值求解模型和最优k值生成算法kValue进行大量实验分析,实验结果论证了所提ART中k均值聚类的最优聚类个数k值确定方法具有可行性和有效性,实验结果显示使用所提方法确定出的k值能够进一步提高ART中基于k均值聚类的OOS测试的方法的缺陷检测效果且对后续的研究具有一定的指导意义。3.设计并实现了一个测试原型系统kOOSTT。该系统的主要功能模块包括类图录入模块、参数分析模块、k值确定模块、测试执行模块以及结果分析模块等。kOOSTT系统为本研究所提方法提供了实验平台,且其中部分功能模块已经能够达到较高的自动化程度,本研究基于该系统验证了本文所提方法在OOS自适应随机测试中的有效性。