关键词:
面向对象软件
自适应随机测试
覆盖率
距离信息
测试用例生成
摘要:
随着信息化程度的不断增强,越来越多的软件采用面向对象编程技术研发,这类软件称之为面向对象软件,其质量问题一直是人们最为关注的热点问题。然而,由于面向对象软件的三大固有特征,使得软件测试面临着前所未有的挑战。在众多的测试方法中,基于随机测试的测试方法应用最为广泛,但是效率以及效果不是很理想,所以近年来有学者对随机测试方法进行了改进,提出了自适应随机测试方法,并且取得了较好的测试效果。软件中的失效区域通常是连续发生的,Chen T Y教授根据这一现象对随机测试方法进行了改进,提出自适应随机测试方法。自适应随机测试方法执行时,通常会产生已执行测试用例集和候选测试用例集两个集合,从候选测试用例集当中挑选出距离所有已执行测试用例最远的测试用例作为下一个可执行用例,如果没有引发程序失效,则将其加入到已执行测试用例集。为了增加所挑选测试用例的有效性,论文决定引入覆盖率信息,将语句覆盖率同距离信息综合考虑来挑选测试用例,从而提高错误检测率。本文针对以上问题分别提出了基于覆盖率的面向对象软件动态测试用例生成方法和基于覆盖率的自适应随机测试方法,并分别进行了实验分析,从而证明了这两种方法的可行性,同时设计并实现了一个测试原型系统。本文主要完成工作阐述如下:1.提出了基于覆盖率的面向对象软件动态测试用例生成方法。在该方法中阐明了覆盖率动态排序监测技术,并且详细分析了该技术的三大组成模块,分别为预处理模块、程序插桩模块以及排序模块,其中程序插桩模块中定义了三类插桩规则,用于监测测试用例在执行过程中的四类覆盖率信息。在四类覆盖率信息中,选择其中的语句覆盖率信息应用到面向对象软件动态测试用例生成技术中,使得生成的测试用例能够拥有较高的语句覆盖率信息,从而提高检错效率。2.提出了基于覆盖率的自适应随机测试方法。在该方法中阐明了利用基于覆盖率的面向对象软件动态测试用例生成方法生成候选测试用例集,定义权重之和的公式为Weight=Distance+Coverage,即先计算候选测试用例集中的每个测试用例与所有已执行的测试用例的距离之和并进行归一化处理,再依据候选测试用例集中每个测试用例的语句覆盖率信息,通过该公式计算得到Weight值,Weight值最大的即为下一个执行测试用例。另外还说明了面向对象软件测试的实现方法,其中包括测试流程、实现的相关算法以及测试结果的自动化分析。3.设计并实现了一个测试原型系统(ARTCovPS)。其中包含了类图录入模块、参数配置模块、DTCG-COV执行模块、测试驱动模块、FSCS-COV算法执行模块以及结果统计模块,ARTCovPS系统完成了整个测试流程,具有较好的可行性。