测试数据生成及测试案例管理方法技术

技术编号:33864913 阅读:11 留言:0更新日期:2022-06-18 10:55
本发明专利技术公开了一种测试数据生成及测试案例管理方法,属于软件测试技术领域。本发明专利技术通过参数名称相似度计算,实现了对参数值未知的参数的参数值获取,解决了测试数据构造中参数值难以获取这一最关键一步。另外,通过断言数据增强、测试案例去重以及测试函数合并方式实现了在多人编码场景下对同个单元测试案例的不同版本的有效管理,有利于提升所开发的软件的交付质量和交付效率。的交付质量和交付效率。的交付质量和交付效率。

【技术实现步骤摘要】
测试数据生成及测试案例管理方法


[0001]本专利技术涉及软件测试
,具体涉及一种测试数据生成及测试案例管理方法。

技术介绍

[0002]在软件开发过程中,需要准备测试数据,测试数据越符合业务规则,对后续的测试活动越有效。现有技术中,测试数据通过人工准备或自动构造获得,人工准备的数据是否符合测试要求依赖于个人对软件业务架构的理解,通常不会过多的考虑软件业务之间的相关性,导致人工准备的数据测试价值不高。而自动构造的数据虽然考虑了业务间的相关性,但普遍存在所构造的测试数据准确度不足、误差较大的技术问题。因此,急需提供一种自动构造测试数据的方法,既能够考虑软件业务间的相关性,又能够确保所构建的测试数据的准确性。
[0003]测试数据构造完成后若对生成的单元测试案例缺乏有效的管理,同样会影响业务软件的交付质量和交付效率。目前,对于已生成的单元测试案例的管理主要存在以下几个难点:1、案例有效性低。单元测试案例需要有明确的断言,而自动生成的单元测试案例,断言可能出现不准确,导致单元测试案例的有效性较低。
[0004]2、案例重复度高。单元测试案例的自动生成方法主要有数据构造和数据录制两种方法,案例对应的函数路径可能重复,大量的重复会导致案例数量呈指数级增长。
[0005]3、案例合并难。在多人对同个单元测试案例进行编码时,可能出现代码文本冲突,比如,对于案例A,有被改动了的两个不同的版本A1、A2,假设A1的第10行编码为c+2=d,而A2中的第10行编码为c

2=d,则A1和A2由于第10行的代码文本冲突在合并时会出现合并冲突,导致案例合并难。

技术实现思路

[0006]本专利技术以提高自动生成的测试数据的准确度,并提高对单元测试案例管理的有效性为目的,提供了一种测试数据生成及测试案例管理方法。
[0007]为达此目的,本专利技术采用以下技术方案:提供一种测试数据生成及测试案例管理方法,包括:步骤S1,构建变量命名规则最小单词库和数据库,构建方法为:获取各类软件测试过程中的每个被调用的测试函数的第一入参信息保存到所述数据库中,所述第一入参信息包括输入到所述测试函数的每个第一参数的参数名称、参数类型以及参数值,然后基于人为经验规则将每个所述第一参数的参数名称拆分为若干个单词并形成拆分结果与参数名称的拆分关系保存到所述数据库中,关联每个所述第一参数的参数名称的所述拆分结果集合在一起形成为所述变量命名规则最小单词库;步骤S2,获取被调用的所述测试函数的第二入参信息,包括输入到所述测试函数
的每个第二参数的参数名称和参数类型,然后对每个所述第二参数的参数名称进行分词得到分词结果后与所述变量命名规则最小单词库中的各所述拆分结果进行分词匹配,并判断匹配度是否大于预设的分词匹配度阈值,若是,则基于所述拆分关系从所述数据库中获取所匹配到的所述拆分结果对应的所述第一参数的所述第一入参信息然后转入步骤S3;若否,则赋予所述第二参数对应的参数值,并将所述第二参数的参数名称、参数类型和参数值形成为所述第一入参信息保存到所述数据库中,并同时将所述第二参数的参数名称与其所述分词结果的所述拆分关系保存到所述数据库中,同时将对所述第二参数的参数名称的所述分词结果加入到所述变量命名规则最小单词库以更新所述变量命名规则最小单词库;步骤S3,根据预设的参数名称相似度计算方法,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度,并将具有最高参数名称相似度的所述第一参数的参数值作为所述第二参数的参数值;步骤S4,基于步骤S2赋予或步骤S3获取到的每个所述第二参数的参数值构造单元测试案例,并根据预设的断言增强、案例去重和案例合并规则对所构造的所述单元测试案例进行管理。
[0008]作为优选,步骤S2中,以所述变量命名规则最小单词库作为NLP算法中的数据词典,通过所述NLP算法对每个所述第二参数的参数名称进行分词。
[0009]作为优选,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:步骤A1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,若是,则转入步骤A2;若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤A2;步骤A2,判断经过滤剩余的所述第一参数的参数名称的数量是否为“0”,若是,则返回步骤S2;若否,则转入步骤A3;步骤A3,计算参与分词匹配的所述第二参数的参数名称与经步骤A1过滤剩余的每个所述第一参数的参数名称的字符长度距离,并获取具有最小字符长度距离的所述第一参数的参数值作为所述第二参数的参数值。
[0010]作为优选,步骤A3中,若与同个所述第二参数的参数名称具有相同的所述最小字符长度距离的所述第一参数的个数有两个及以上,则随机获取任意一个所述第一参数的参数值作为参与分词匹配的所述第二参数的参数值。
[0011]作为优选,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:步骤B1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,若是,则转入步骤B2;
若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤B2;步骤B2,判断经过滤剩余的所述第一参数的参数名称的数量是否为“0”,若是,则返回步骤S2;若否,则转入步骤B3;步骤B3,计算参与分词匹配的所述第二参数的参数名称与经步骤B1过滤剩余的每个所述第一参数的参数名称的Levenshtein距离,并获取具有最小Levenshtein距离的所述第一参数的参数值作为所述第二参数的参数值。
[0012]作为优选,步骤B3中,若与同个所述第二参数的参数名称具有相同的所述Levenshtein距离的所述第一参数的个数有两个及以上,则随机获取任意一个所述第一参数的参数值作为参与分词匹配的所述第二参数的参数值。
[0013]作为优选,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:步骤C1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,若是,则转入步骤C2;若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤C2;步骤C2,判断经过滤剩余的所述第二参数的参数名称的数量是否为“0”,若是,则返回步骤S2;若否,则转入步骤C3;步骤C3,计算参与分词匹配的所述第二参数的参数名称与经步骤C1过滤剩余的每个所述第一参数的参数名称的字符长度距离;步骤C4,判断所计算的各所述字符长度距离中是否具有小于预设的字符长度距离阈值的字符长度距离,若是,则从小于预设的所述字符长度距离阈值的各所述字符长度距离中获取具有最小字符长度距离的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种测试数据生成及测试案例管理方法,其特征在于,包括:步骤S1,构建变量命名规则最小单词库和数据库,构建方法为:获取各类软件测试过程中的每个被调用的测试函数的第一入参信息保存到所述数据库中,所述第一入参信息包括输入到所述测试函数的每个第一参数的参数名称、参数类型以及参数值,然后基于人为经验规则将每个所述第一参数的参数名称拆分为若干个单词并形成拆分结果与参数名称的拆分关系保存到所述数据库中,关联每个所述第一参数的参数名称的所述拆分结果集合在一起形成为所述变量命名规则最小单词库;步骤S2,获取被调用的所述测试函数的第二入参信息,包括输入到所述测试函数的每个第二参数的参数名称和参数类型,然后对每个所述第二参数的参数名称进行分词得到分词结果后与所述变量命名规则最小单词库中的各所述拆分结果进行分词匹配,并判断匹配度是否大于预设的分词匹配度阈值,若是,则基于所述拆分关系从所述数据库中获取所匹配到的所述拆分结果对应的所述第一参数的所述第一入参信息然后转入步骤S3;若否,则赋予所述第二参数对应的参数值,并将所述第二参数的参数名称、参数类型和参数值形成为所述第一入参信息保存到所述数据库中,并同时将所述第二参数的参数名称与其所述分词结果的所述拆分关系保存到所述数据库中,同时将对所述第二参数的参数名称的所述分词结果加入到所述变量命名规则最小单词库以更新所述变量命名规则最小单词库;步骤S3,根据预设的参数名称相似度计算方法,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度,并将具有最高参数名称相似度的所述第一参数的参数值作为所述第二参数的参数值;步骤S4,基于步骤S2赋予或步骤S3获取到的每个所述第二参数的参数值构造单元测试案例,并根据预设的断言增强、案例去重和案例合并规则对所构造的所述单元测试案例进行管理。2.根据权利要求1所述的测试数据生成及测试案例管理方法,其特征在于,步骤S2中,以所述变量命名规则最小单词库作为NLP算法中的数据词典,通过所述NLP算法对每个所述第二参数的参数名称进行分词。3.根据权利要求1所述的测试数据生成及测试案例管理方法,其特征在于,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:步骤A1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,若是,则转入步骤A2;若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤A2;步骤A2,判断经过滤剩余的所述第一参数的参数名称的数量是否为“0”,若是,则返回步骤S2;若否,则转入步骤A3;步骤A3,计算参与分词匹配的所述第二参数的参数名称与经步骤A1过滤剩余的每个所
述第一参数的参数名称的字符长度距离,并获取具有最小字符长度距离的所述第一参数的参数值作为所述第二参数的参数值。4.根据权利要求3所述的测试数据生成及测试案例管理方法,其特征在于,步骤A3中,若与同个所述第二参数的参数名称具有相同的所述最小字符长度距离的所述第一参数的个数有两个及以上,则随机获取任意一个所述第一参数的参数值作为参与分词匹配的所述第二参数的参数值。5.根据权利要求1所述的测试数据生成及测试案例管理方法,其特征在于,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括:步骤B1,判断匹配到的每个所述第一参数的参数类型是否全部与参与分词匹配的所述第二参数的参数类型一致,若是,则转入步骤B2;若否,则从匹配到的各所述第一参数的参数名称中过滤掉与参与分词匹配的所述第二参数的参数类型不一致的参数名称然后转入步骤B2;步骤B2,判断经过滤剩余的所述第一参数的参数名称的数量是否为“0”,若是,则返回步骤S2;若否,则转入步骤B3;步骤B3,计算参与分词匹配的所述第二参数的参数名称与经步骤B1过滤剩余的每个所述第一参数的参数名称的Levenshtein距离,并获取具有最小Levenshtein距离的所述第一参数的参数值作为所述第二参数的参数值。6.根据权利要求5所述的测试数据生成及测试案例管理方法,其特征在于,步骤B3中,若与同个所述第二参数的参数名称具有相同的所述Levenshtein距离的所述第一参数的个数有两个及以上,则随机获取任意一个所述第一参数的参数值作为参与分词匹配的所述第二参数的参数值。7.根据权利要求1所述的测试数据生成及测试案例管理方法,其特征在于,步骤S3中,计算参与分词匹配的所述第二参数的参数名称与匹配到的各所述第一参数的参数名称的相似度的方法包括...

【专利技术属性】
技术研发人员:吴平福陈鹏坤
申请(专利权)人:杭州优诗科技有限公司
类型:发明
国别省市:

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

1