当前位置: 首页 > 专利查询>重庆大学专利>正文

一种基于区域划分的自适应随机软件测试方法技术

技术编号:37324409 阅读:17 留言:0更新日期:2023-04-21 23:03
本发明专利技术涉及一种基于分区与自适应组件的自适应随机测试方法,包括如下步骤:选用公开数据集;构建自适应随机测试模型M;按要求选取被测程序s,并组成程序集D,同时确定M的输入域划分比例参数α;通过选择测试用例输入到程序中的结果,判断该程序是否有缺陷;其中的测试用例选择,通过构建的两个函数,按要求使用与其匹配的计算方式进行选择。本发明专利技术方法可以快速有效的提升FSCS

【技术实现步骤摘要】
一种基于区域划分的自适应随机软件测试方法


[0001]本专利技术涉及测试自动化
,特别涉及一种基于区域划分的自适应随机软件测试方法。

技术介绍

[0002]测试是生产制造过程中的一项常见活动,其结果对产品质量保证起着至关重要的作用。软件测试是一个在软件系统中寻找缺陷的过程,其目标是以最小的代价找到的软件系统中的缺陷。随着越来越多的软件系统的出现,软件系统的可靠性受到越来越多的关注,因此大量的软件测试方法也不断被研究者提出。
[0003]因为随机测试(以下简称“RT”)方法非常简单,RT自从被提出后就一直应用广泛。RT的主要思想是在程序所有可能输入的集合(以下简称“输入域”)中随机找到下一次执行的测试用例,然后在被测软件系统中执行测试用例并分析程序结果,以找出程序中可能的缺陷。RT使用很少的信息,即只考虑程序的输入域,因此生成测试用例的时间非常快,达到以最小的成本在程序中发现缺陷的目标。在现实中,对于许多软件系统程序来说,RT都具有低成本和高效益的特点,甚至它已经成为软件测试策略的基本思想之一。
[0004]然而,一方面,系统的复杂性和智能化对测试人员提出了更高的要求,RT的测试效率不能满足复杂系统的测试要求。另一方面,随着研究的深入,RT也引起了很多争议,如Myers说“可能最糟糕的[测试用例设计]方法是随机输入测试.",因为研究人员发现RT寻找缺陷具有盲目性、冗余性和低效率等问题。
[0005]先前的研究发现,导致错误的输入通常倾向于聚集在一起形成连续的缺陷区域,不导致错误的输入也会聚集在一起,这似乎意味着,生成的测试用例分布越平坦,其缺陷检测能力越好。因此,自适应随机测试被提出,它的思想是希望在之前的输入没有发现错误的情况下,以后生成的测试用例均匀地分布在输入域中,有许多自适应随机测试的方法,但通常来说,最具成本效益的是基于固定大小候选集的自适应随机测试(以下简称“FSCS

ART”)。为了实现测试用例在输入域中的均匀分布,FSCS

ART选取具有最大最近邻值的候选测试用例作为下一次执行的测试用例,因此,FSCS

ART存在一个潜在的边界效应问题,即倾向于选择靠近输入域边界的测试用例,导致靠近输入域中心的测试用例较少。为了缓解FSCS

ART的边界效应来进一步提升FSCS

ART的效果,近年来研究人员提出了许多相关的FSCS

ART算法,但总体而言,对FSCS

ART的效果提升是非常有限的。

技术实现思路

[0006]针对现有技术存在的上述问题,本专利技术要解决的技术问题是:如何提升FSCS

ART的寻找缺陷的效率。
[0007]为解决上述技术问题,本专利技术采用如下技术方案:一种基于区域划分的自适应随机软件测试方法,包括如下步骤:
[0008]S100:选用公开数据集,公开数据集包括若干个真实系统程序,每个真实系统程序
有与其一一对应的输入域;
[0009]S200:构建自适应随机测试模型M,所述自适应随机测试模型包括组件一、组件二和组件三;
[0010]所述组件一用于划分系统程序的输入域,所述组件二用于计算测试用例的自适应相对比所述组件三用于计算测试用例的自适应距离所述测试用例为从输入域中选出的值;
[0011]S300:选取被测程序s,使用现有技术确定s的输入域维度和输入域范围,并从公开数据集中选择P个与s输入域维度相同的真实系统程序组成程序集D,利用组件一确定M的输入域划分比例参数α;
[0012]S400:定义测试用例使用数量阈值,从s的输入域范围中选择第一个候选测试用例t,且令已使用测试用例数量T=1;
[0013]S500:将t作为s的输入,当s的输出结果为正确时,则认为没有找到s的缺陷,然后执行下一步;
[0014]当s的输出结果为错误时,则认为找到s的缺陷,然后输出当前已经输入的测试用例数量F

measure,结束测试;
[0015]S510:从s的输入域范围中随机选择k个候选测试用例组成候选测试用例集C;
[0016]S520:从C中选择第i个候选测试用例c
i
,利用组件二计算c
i
的自适应相对比然后利用组件三计算c
i
的自适应距离其中,C={c1,

,c
i
,

c
k
},i=1,...,k;
[0017]当时,执行S530;
[0018]当时,执行S540;
[0019]exter表示调用函数Exter_func的次数,inter表示调用函数Inter_func的次数;
[0020]S530:使用函数Exter_func采用曼哈顿距离计算最近邻值采用公式(1)计算
[0021][0022]其中,表示自适应距离,E表示所有已经执行但没有找到s中缺陷的测试用例组成的集合,表示自适应相对比,i=1,...,k;
[0023]将k个进行降序排列,选择其中最大自适应距离值所对应的测试用例作为最佳的候选测试用例,将该最佳的候选测试用例赋给t,且令T=T+1,并执行S600;
[0024]S540:使用函数Inter_func,采用欧式距离计算最近邻值采用公式(2)计算
[0025][0026]将k个进行降序排列,选择其中最大自适应距离值所对应的测试用例作为最佳的候选测试用例,将该最佳的候选测试用例赋给t,且令T=T+1,并执行S600;
[0027]S600:当T大于测试用例使用数量阈值时,结束测试,否则返回S500。
[0028]作为优选,所述S100中的系统程序为数值型程序。
[0029]作为优选,所述S300中利用组件一确定M的输入域划分比例参数α的具体步骤如下:
[0030]S310:令α=0.1;
[0031]S320:将D中每个真实系统程序对应的输入域按α均划分为外部区域和内部区域,内部区域表示为α
d
,外部区域表示为1

α
d
,且α∈[0.1,0.9],其中,d表示真实系统程序的维度;
[0032]S330:从D中任选一个真实程序W,且令W=1;
[0033]S340:从W的输入域中选择第一个候选测试用例w;
[0034]S350:将w作为W的输入,当输出结果为正确时,则认为没有找到W的缺陷,然后执行下一步;
[0035]当输出结果为错误时,则认为找到W的缺陷,然后输出当前已经输入的测试用例数量F

measure;并令W=W+1,若W<P,则返回S340,否则执行S380;
[0036]S360:从W的输入域中随机选择k个候选测试用例组成候选测试用例集B;
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区域划分的自适应随机软件测试方法,其特征在于:包括如下步骤:S100:选用公开数据集,公开数据集包括若干个真实系统程序,每个真实系统程序有与其一一对应的输入域;S200:构建自适应随机测试模型M,所述自适应随机测试模型包括组件一、组件二和组件三;所述组件一用于划分系统程序的输入域,所述组件二用于计算测试用例的自适应相对比所述组件三用于计算测试用例的自适应距离所述测试用例为从输入域中选出的值;S300:选取被测程序s,使用现有技术确定s的输入域维度和输入域范围,并从公开数据集中选择P个与s输入域维度相同的真实系统程序组成程序集D,利用组件一确定M的输入域划分比例参数α;S400:定义测试用例使用数量阈值,从s的输入域范围中选择第一个候选测试用例t,且令已使用测试用例数量T=1;S500:将t作为s的输入,当s的输出结果为正确时,则认为没有找到s的缺陷,然后执行下一步;当s的输出结果为错误时,则认为找到s的缺陷,然后输出当前已经输入的测试用例数量F

measure,结束测试;S510:从s的输入域范围中随机选择k个候选测试用例组成候选测试用例集C;S520:从C中选择第i个候选测试用例c
i
,利用组件二计算c
i
的自适应相对比然后利用组件三计算c
i
的自适应距离其中,C={c1,

,c
i
,

c
k
},i=1,...,k;当时,执行S530;当时,执行S540;exter表示调用函数Exter_func的次数,inter表示调用函数Inter_func的次数;S530:使用函数Exter_func采用曼哈顿距离计算最近邻值采用公式(1)计算算其中,表示自适应距离,E表示所有已经执行但没有找到s中缺陷的测试用例组成的集合,表示自适应相对比,i=1,...,k;将k个进行降序排列,选择其中最大自适应距离值所对应的测试用例作为最佳的候选测试用例,将该最佳的候选测试用例赋给t,且令T=T+1,并执行S600;S540:使用函数Inter_func,采用欧式距离计算最近邻值采用公式(2)计算算将k个进行降序排列,选择其中最大自适应距离值所对应的测试用例作为最
佳的候选测试用例,将该最佳的候选测试用例赋给t,且令T=T+1,并执行S600;S600:当T大于测试用例...

【专利技术属性】
技术研发人员:鄢萌夏奕胜孙伟峰张小洪杨丹
申请(专利权)人:重庆大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1