论文部分内容阅读
随着面向对象编程OOP(Object Oriented Programming)技术的快速发展,OOP已成为当前主流编程技术之一,并被广泛应用于设计和开发面向对象软件OOS(Object Oriented Software,)。面向对象语言的继承性,封装性和多态性等特性,在提高了软件的可重用性,可扩展性和互操作性的同时也增加了测试OOS的难度。研究人员提出了多种测试方法来测试OO,其中随机测试RT(Random Testing)由于其简单性和易用性而被广泛应用。为了提高RT的故障检测能力,TY Chen等人提出自适应随机测试ART(Adaptive Random Testing)。将ART应用于OOS时,需要合适的计算OOS测试用例之间差异性的距离度量标准。Ciupa等人提出用于测试单个类的面向对象自适应随机测试方法ARTOO(Adaptive Random Testing for Object-Oriented software),其使用的距离度量标准用于计算两个对象之间的距离。Lin等人在ARTOO的基础上,提出一种基于多样化的自适应随机测试方法DO-ART(Divergence-Oriented approach to Adaptive Random Testing)用于处理多维的测试。Chen等人提出对象和方法序列相似性度量OMISS(Object and Method Invocation Sequence Similarity),用于计算包含一个对象集合和一个方法调用序列的测试用例之间的距离,并实现了一个测试方法OMISS-ART。实验表明,ARTOO,DO-ART和OMISS-ART的故障检测效率都高于RT,但是时间开销也远高于RT。为了降低这三个算法的时间开销,本文提出将所有已执行测试用例信息保存成一个整体,并将候选用例与已执行测试用例集合间的一对多的计算,转变为一对一的计算,从而降低算法的时间开销。本文的主要工作如下:1.提出OMISS-ARTsum算法。OMISS-ARTsum算法是使用改进的OMISS度量,并采用max-sum标准的固定候选集自适应随机测试FSCS-ART(Fixed-Sized-Candidate-Set ART)的一个实现版本。OMISS-ARTsum算法在从候选测试用例集合中挑选下一个待执行测试用例时,计算每个候选用例与已执行测试用例集合的总距离,并且与传统的基于max-sum的FSCS-ART算法不同,OMISS-ARTsum不是计算每个已执行测试用例和候选用例的距离再求和得到总距离,而是采用将所有已执行测试用例的信息保存成一个整体,一次计算出已执行测试用例集合与候选用例之间的距离。因此,与OMISS-ART算法相比,OMISS-ARTsum算法具有更低的时间开销。2.提出ARTOOsum和DO-ARTsum算法。ARTOOsum和DO-ARTsum是基于改进的ARTOO度量,并采用max-sum选择标准的FSCS-ART算法的两个实现版本。其中,ARTOOsum用于处理单个类的单方法测试,即其测试用例包含一个对象和一个方法。而DO-ARTsum的测试用例可以包含一个对象和多个方法。ARTOOsum和DO-ARTsum都采用将所有已执行测试用例信息保存成一个整体,然后只利用改进的ARTOO度量公式一次计算出一个候选用例和已执行测试用例集合之间的距离,然后挑选候选用例中到已执行测试用例集合距离最远的那个作为下一个待执行测试用例。因此,ARTOOsum和DO-ARTsum算法都具有接近线性的时间复杂度。3.设计并实现了一个测试原型系统,用于自动化测试本文提出的算法,并验证其有效性和效率。系统包括类图录入模块、测试用例池生成模块、测试驱动模块、算法执行模块和结果统计与分析模块等。