[发明专利]一种面向条件判定覆盖的测试数据自动生成方法有效
申请号: | 201410271284.8 | 申请日: | 2014-06-17 |
公开(公告)号: | CN104050083B | 公开(公告)日: | 2017-05-03 |
发明(设计)人: | 陈鑫;欧建生;成新;周岩;鞠秀芳 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 江苏银创律师事务所32242 | 代理人: | 孙计良 |
地址: | 210046 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向条件判定覆盖的测试数据自动生成方法。本发明通过对每个分支节点按条件判定覆盖准则寻找可覆盖该分支节点的测试数据产生待测源代码的测试数据集。其中,对个分支节点按条件判定覆盖准则寻找可覆盖该分支节点的测试数据通过以下方法实现首先通过随机方法构建输入向量集,然后对输入向量集的运行分析,再通过线性拟合的手段扩展输入向量集,经重复迭代,获得按条件判定覆盖准则覆盖该分支节点的测试数据。本发明方法高度自动化,能够尽可能的提高单元测试的效率,降低测试成本,并且支持面向节点条件判定的测试覆盖准则。 | ||
搜索关键词: | 一种 面向 条件 判定 覆盖 测试数据 自动 生成 方法 | ||
【主权项】:
一种面向条件判定覆盖的测试数据自动生成方法,包括分析待测源程序获得待测源程序所有路径的集合和所有分支节点的集合BS以及分支节点的关联路径集的集合的步骤,其特征在于,该方法还包括对分支节点集BS中的每一分支节点B执行以下步骤:S1:根据B的关联路径集中各路径上位于B之前的各分支节点的各个条件,构建关于输入变量向量X的分支函数Fk,i,j(X);所述输入变量向量X为所述待测源程序输入变量构成的向量;所述分支函数Fk,i,j(X)表示路径k上第i个分支节点的第j个条件的分支函数;所述路径k经过分支节点B;k为分支节点B的关联路径集中路径的序号;S2:构建初始的输入向量集U;所述初始的输入向量集U至少包含两个输入向量;S3:计算以输入向量集U中每个输入向量作为待测源程序的输入执行待测源程序时与所述分支节点B的关联路径集中各路径上位于B之前的每个分支节点上的各分支函数Fk,i,j(X)获得分支函数值的集合V以及最远公共分支节点mk;当执行待测源程序时的执行路径经过分支节点B时计算B的判定和判定中各个条件的取值;假如输入向量集U中存在一个输入向量执行待测源程序时执行路径经过分支节点B且使B的判定或判定中某个条件产生新的取值,则记录该输入向量作为所述分支节点B的一个测试数据;假如所述分支节点B的测试数据集覆盖了B的判定及判定中各条件所有可能取值,则返回该测试数据集作为所述分支节点B的测试数据集;所述最远公共分支节点mk为路径k的最远公共分支节点;S4:根据分支节点B的关联路径集中各路径上位于B之前的各个分支节点上的各分支函数值的集合V以及最远公共节点mk构建路径k上位于最远公共节点mk之前的每个分支节点的各分支函数的拟合函数LFk,i,j;LFk,i,j表示路径k上第i个分支节点的第j个条件的分支函数的线性拟合函数;S5:根据分支节点B的关联路径集中各路径上位于B之前的每个分支节点中的各分支函数的线性拟合函数LFk,i,j和待测源程序计算可行区间I;所述可行区间I={I1,I2,...,Is},其中,s为输入变量的个数,Ii为第i个输入变量的可行区间,Ii={Ii,1,Ii,2,...,Ii,Mi},其中,Ii,j为第i个输入变量第j个可行分段区间,Mi为第i个输入变量可行分段区间数;S6:在可行区间I内随机选取各输入变量的输入值得到测试数据集加入至输入向量集U中;当Mi为1时,从Ii为第i个输入变量的可行区间的唯一分段区间Ii,1的扩展区间中随机取值构建测试数据;S7:重复执行步骤S3至S6直到步骤S3至S6执行的次数达到限定的次数;S8:返回所有记录的所述分支节点B的测试数据作为所述分支节点B的测试数据集;所述步骤S5包括:S51:计算分支节点B的关联路径集中各路径上位于B之前的各个分支节点中各分支函数的可行区间Dk,i,j;所述可行区间Dk,i,j为路径k上第i个分支节点的第j个分支函数的可行区间;S52:合并每个分支节点内的各分支函数的可行区间Dk,i,j得到各分支节点的可行区间Dk,i;所述可行区间Dk,i为路径k上第i个分支节点的可行区间;S53:合并最远公共分支节点mk前的各分支节点的可行区间Dk,i得到分支节点B在路径k上的可行区间Ik;所述可行区间Ik为路径k的可行区间;S54:合并分支节点B在各路径上的可行区间Ik,得到分支节点B的可行区间I。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410271284.8/,转载请声明来源钻瓜专利网。