【技术实现步骤摘要】
一种基于多种群协同进化的变异测试数据生成方法
本专利技术涉及计算机软件测试领域,设计了一种基于多种群协同进化的变异测试数据生成方法。该方法区别于原有方法的特色在于,针对难杀死的变异体,采用多种群协同进化遗传算法生成测试数据时,根据种群进化提供的信息,逐渐的缩减搜索域,以提高生成变异测试数据的效率。
技术介绍
软件测试是保证软件质量的重要手段,通过测试,不但能够检测软件可能存在的缺陷,而且能够提高软件的可靠度。变异测试是一种面向缺陷的测试技术。变异测试常被用于评价测试数据集的质量,也被用于辅助生成测试数据。难杀死的变异体是指很少测试数据都不能杀死的变异体。Yao等采用静态分析方法,对难杀死变异体产生的机理及其分布进行了分析,并通过大量实验,考察了变异算子、程序大小对难杀死变异体的影响。Visser采用符号执行方法,分析了变异语句的可达概率和变异算子等因素对杀死难杀死变异体的影响。这些成果为变异测试的进一步研究奠定了基础。为了有效生成变异测试数据,Demilli提出基于约束的方法,Offutt等提出动态域约简方法 ...
【技术保护点】
1.一种基于多种群协同进化的变异测试数据生成方法,其特征在于如下步骤:/n步骤1.1:基于变异语句的可达难度和涉及程序输入变量个数,确定变异体杀死难度;/n步骤1.2:建立基于路径覆盖约束的生成变异测试数据问题的数学模型;/n步骤1.3:针对难杀死变异体,采用多种群协同进化遗传算法,根据种群进化时提供的信息,确定搜索域缩减的时机和策略,然后逐渐动态缩减搜索域,生成变异测试数据。/n
【技术特征摘要】
1.一种基于多种群协同进化的变异测试数据生成方法,其特征在于如下步骤:
步骤1.1:基于变异语句的可达难度和涉及程序输入变量个数,确定变异体杀死难度;
步骤1.2:建立基于路径覆盖约束的生成变异测试数据问题的数学模型;
步骤1.3:针对难杀死变异体,采用多种群协同进化遗传算法,根据种群进化时提供的信息,确定搜索域缩减的时机和策略,然后逐渐动态缩减搜索域,生成变异测试数据。
2.根据权利要求1中所述一种基于多种群协同进化的变异测试数据生成方法,其特征在于,确定变异体杀死难度时,设计的评价指标为变异语句的可达难度和涉及程序输入变量个数;
变异语句的可达难度,记为指标I,如果变异语句s'是可达的,那么,从变异体M的开始到变异语句s',至少存在一条可执行路径。假设从M开始到变异语句s',存在L条可执行路径;那么设第l条路径,包含的条件语句为sl1,sl2,…,sl|l|,|l|为条件语句的个数;这些条件语句执行的概率分别为p(sl1),p(sl2),…,p(sl|l|),那么,第l条路径的执行概率pl为:
pl=p(sl1)×p(sl2)×…×p(sl|l|)
记通过第l条路径到达s'的难度为Rl,可以表示为:
Rl=1-pl
变异语句涉及程序输入的个数,记为指标II;M的输入向量记为X=(x1,x...
【专利技术属性】
技术研发人员:党向盈,巩敦卫,姚香娟,鲍蓉,申坤,
申请(专利权)人:徐州工程学院,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。