【技术实现步骤摘要】
一种基于MoMuTUML的测试用例自动生成方法及系统
[0001]本专利技术涉及软件测试
,具体涉及一种基于MoMuTUML的测试用例自动生成方法及系统。
技术介绍
[0002]MoMuTUML采用基于模型故障的测试用例自动生成方法,依赖于被测系统的模型来创建测试用例,是一种黑盒测试方法。在将故障插入被测系统模型后,它会生成揭示该故障的测试用例,这使得基于模型的测试用例生成方法成为可用的最强大和通用的测试用例生成方法之一,因为它创建了保证揭示某些故障的测试用例,使用其生成的测试用例进行测试既能够证明不存在某些故障,也能够揭示产生故障情况下的行为信息。但MoMuTUML目前仍存在如下几点局限性:
[0003](1)MoMuTUML现有变异算子的功能可能重叠,容易产生语法等效的变异模型,增加了测试用例生成的开销,导致测试用例生成效率低。
[0004](2)MoMuTUML当前变异方法较为低效,无法选择最适合被测模型的变异算子集合,导致测试用例生成效率低。
[0005](3)MoMuTUML整体流程设计不灵活,为顺序执行,无法接收测试用例生成结果的反馈且无法根据反馈对变异过程进行调整,导致测试用例生成效率低。
技术实现思路
[0006]有鉴于此,本专利技术提供了一种基于MoMuTUML的测试用例自动生成方法及系统,能够高效地生成测试用例,并将测试用例生成结果反馈到变异过程,对变异过程进行调整,提高测试用例生成效率。
[0007]本专利技术采用的具体技术方案如下: >[0008]一种基于MoMuTUML的测试用例自动生成方法,包括:
[0009]步骤一、建立被测模型,并根据所述被测模型获得初始全局状态覆盖统计表和初始全局转换覆盖统计表;
[0010]步骤二、根据变异算子集合中每个变异算子对所述被测模型进行变异操作,构建对应的变异模型集合;
[0011]步骤三、根据所述变异模型集合和所述被测模型生成测试用例,并根据所述测试用例删除所述变异模型集合中的等效变异模型,获取有效变异模型,根据所述有效变异模型更新所述初始全局状态覆盖统计表和初始全局转换覆盖统计表,获得全局状态覆盖统计表和全局转换覆盖统计表;
[0012]步骤四、根据所述全局状态覆盖统计表和全局转换覆盖统计表及所述有效变异模型对每个变异算子评分,构建所述被测模型最优变异算子集合;
[0013]步骤五、统计连续未产生新的测试用例的轮数n,若n<N,以步骤四中的所述最优变异算子集合替换步骤二中的所述变异算子集合,重复步骤二至步骤四;若n≥N,停止测试用
例的生成过程,获取已生成的测试用例集合。
[0014]进一步地,步骤一中,根据所述被测模型获得初始全局状态覆盖统计表和初始全局转换覆盖统计表,包括:
[0015]按照谓词逻辑对所述被测模型进行统计分析,根据统计分析结果建立初始全局状态覆盖统计表和初始全局转换覆盖统计表。
[0016]进一步地,步骤二中,根据变异算子集合中每个变异算子对所述被测模型进行变异操作,包括:
[0017]增加三个变异算子分别是:更改转换的源头状态的变异算子、更改转换的目标状态的变异算子、移除某状态的随机转换的变异算子;
[0018]删除四个变异算子分别是:设置警戒条件为假、设置警戒条件为真、设置布尔类型OCL子表达式为假、设置布尔类型OCL子表达式为真;
[0019]根据修改后的变异算子对所述被测模型进行变异操作。
[0020]进一步地,步骤二中,根据变异算子集合中每个变异算子对所述被测模型进行变异操作,还包括:
[0021]对所述修改后的变异算子进行分组,将更改转换的源头状态的变异算子和更改转换的目标状态的变异算子作为状态覆盖增益组,将其它变异算子作为转换覆盖增益组。
[0022]进一步地,步骤三中,所述根据所述变异模型集合和所述被测模型生成测试用例,并根据所述测试用例删除所述变异模型集合中的等效变异模型,获取有效变异模型,根据所述有效变异模型更新初始全局状态覆盖统计表和初始全局转换覆盖统计表,获得全局状态覆盖统计表和全局转换覆盖统计表,包括:
[0023]选取一个所述变异模型集合中的一个变异模型,与所述被测模型进行一致性检查,搜索所述变异模型与所述被测模型的行为差异,如存在差异则根据所述行为差异生成测试用例,将所述变异模型作为有效变异模型,并标记与所述有效变异模型对应的变异算子;如不存在差异则继续从所述变异模型集合中选取变异模型,直至选择到一个与所述被测模型存在行为差异的变异模型或所述变异模型集合遍历完成;
[0024]将所述有效变异模型覆盖到的被测模型的状态及转换在初始全局状态覆盖统计表及初始全局转换覆盖统计表中标记更新,获得全局状态覆盖统计表及全局转换覆盖统计表。
[0025]进一步地,步骤四中,根据所述全局状态覆盖统计表和全局转换覆盖统计表及所述有效变异模型对每个变异算子评分,构建所述被测模型最优变异算子集合,包括:
[0026]根据所述全局状态覆盖统计表与所述全局转换覆盖统计表计算所述已生成的测试用例对所述被测模型的状态覆盖率与转换覆盖率:
[0027]状态覆盖率:
[0028][0029]其中,|S
′
|为已被覆盖的状态数量,|S|为被测模型全部状态数量;
[0030]转换覆盖率:
[0031][0032]其中,|T
′
|为已被覆盖的转换数量,|T|为被测模型全部转换数量;
[0033]根据所述状态覆盖率和所述转换覆盖率以及有效变异模型的比例对所述变异算子进行评分,选取评分前b名(b<count(i),i指变异算子)的变异算子,构建所述被测模型的最优变异算子集合。
[0034]进一步地,所述根据状态覆盖率和所述转换覆盖率以及有效变异模型的比例对所述变异算子进行评分,包括:
[0035]对于状态覆盖增益组中的变异算子,先根据所述状态覆盖率计算状态覆盖率增益:
[0036][0037]再根据所述状态覆盖率增益以及有效变异模型的比例对所述变异算子进行评分:
[0038][0039]其中,F
i
为编号为i的变异算子的评分,|m
i
|为编号为i的变异算子派生的有效变异模型个数,|M
i
|为编号为i的变异算子派生的所有变异模型个数,表示编号为i的变异算子生成的有效变异模型的比例,α、β为权重因子,α>β,StateCovGain为状态覆盖增益;
[0040]对于转换覆盖增益组中的变异算子,先根据所述转换覆盖率计算转换覆盖率增益:
[0041][0042]再根据所述转换覆盖率增益以及有效变异模型的比例对所述变异算子进行评分:
[0043][0044]其中,Fj为编号为j的变异算子的评分,|m
j
|为编号为j的变异算子派生的有效变异模型个数,|M
j
|为编本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于MoMuTUML的测试用例自动生成方法,其特征在于,包括:步骤一、建立被测模型,并根据所述被测模型获得初始全局状态覆盖统计表和初始全局转换覆盖统计表;步骤二、根据变异算子集合中每个变异算子对所述被测模型进行变异操作,构建对应的变异模型集合;步骤三、根据所述变异模型集合和所述被测模型生成测试用例,并根据所述测试用例删除所述变异模型集合中的等效变异模型,获取有效变异模型,根据所述有效变异模型更新所述初始全局状态覆盖统计表和初始全局转换覆盖统计表,获得全局状态覆盖统计表和全局转换覆盖统计表;步骤四、根据所述全局状态覆盖统计表和全局转换覆盖统计表及所述有效变异模型对每个变异算子评分,构建所述被测模型最优变异算子集合;步骤五、统计连续未产生新的测试用例的轮数n,若n<N,以步骤四中的所述最优变异算子集合替换步骤二中的所述变异算子集合,重复步骤二至步骤四;若n≥N,停止测试用例的生成过程,获取已生成的测试用例集合。2.如权利要求1所述的方法,其特征在于,步骤一中,根据所述被测模型获得初始全局状态覆盖统计表和初始全局转换覆盖统计表,包括:按照谓词逻辑对所述被测模型进行统计分析,根据统计分析结果建立初始全局状态覆盖统计表和初始全局转换覆盖统计表。3.如权利要求1所述的方法,其特征在于,步骤二中,根据变异算子集合中每个变异算子对所述被测模型进行变异操作,包括:增加三个变异算子分别是:更改转换的源头状态的变异算子、更改转换的目标状态的变异算子、移除某状态的随机转换的变异算子;删除四个变异算子分别是:设置警戒条件为假、设置警戒条件为真、设置布尔类型OCL子表达式为假、设置布尔类型OCL子表达式为真;根据修改后的变异算子对所述被测模型进行变异操作。4.如权利要求3所述的方法,其特征在于,步骤二中,根据变异算子集合中每个变异算子对所述被测模型进行变异操作,还包括:对所述修改后的变异算子进行分组,将更改转换的源头状态的变异算子和更改转换的目标状态的变异算子作为状态覆盖增益组,将其它变异算子作为转换覆盖增益组。5.如权利要求1所述的方法,其特征在于,步骤三中,所述根据所述变异模型集合和所述被测模型生成测试用例,并根据所述测试用例删除所述变异模型集合中的等效变异模型,获取有效变异模型,根据所述有效变异模型更新初始全局状态覆盖统计表和初始全局转换覆盖统计表,获得全局状态覆盖统计表和全局转换覆盖统计表,包括:选取一个所述变异模型集合中的一个变异模型,与所述被测模型进行一致性检查,搜索所述变异模型与所述被测模型的行为差异,如存在差异则根据所述行为差异生成测试用例,将所述变异模型作为有效变异模型,并标记与所述有效变异模型对应的变异算子;如不存在差异则继续从所述变异模型集合中选取变异模型,直至选择到一个与所述被测模型存在行为差异的变异模型或所述变异模型集合遍历完成;将所述有效变异模型覆盖到的被测模型的状态及转换在初始全局状态覆盖统计表及
初始全局转换覆盖统计表中标记更新,获得全局状态覆盖统计表及全局转换覆盖统计表。6.如权利要求1所述的方法,其特征在于,步骤四中,根据所述全局状态覆盖统计表和全局转换覆盖统计表及所述有效变异模型对每个变异算子评分,构建所述被测模型最优变异算子集合,包括:根据所述全局状态覆盖统计表与所述全局转换覆盖统计表计算所述已生成的测试用例对所述被测模型的状态覆盖率与转换覆盖率:状态覆盖率:其中,|S
′
|为已被覆盖的状态数量,...
【专利技术属性】
技术研发人员:马锐,杨语澈,贺金媛,周旭鸿,王丹,
申请(专利权)人:北京理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。