[发明专利]一种使用生成式网络进行失败测试用例生成的方法有效

专利信息
申请号: 202111145441.7 申请日: 2021-09-28
公开(公告)号: CN113836027B 公开(公告)日: 2023-07-21
发明(设计)人: 胡安林;谢欢;雷晏;刘春燕;李茂锦 申请(专利权)人: 重庆大学
主分类号: G06F11/36 分类号: G06F11/36;G06F18/2135;G06N3/0464;G06N3/084;G06N3/0455;G06N3/0475;G06N3/045;G06N3/094
代理公司: 重庆晟轩知识产权代理事务所(普通合伙) 50238 代理人: 王海凤
地址: 400044 *** 国省代码: 重庆;50
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 使用 生成 网络 进行 失败 测试 方法
【权利要求书】:

1.一种使用生成式网络进行失败测试用例生成的方法,其特征在于:包括如下步骤:

S100:任意选择一个有缺陷的程序P和一组原始测试用例T,有缺陷的程序P包含N条可执行语句,原始测试用例T包含的测试用例数量为M,原始测试用例T中第i个测试用例为Ti,且Ti相对于程序P的已知输出为Ai

S110:使用P执行T中第i个测试用例Ti,得到第i个测试用例Ti在程序P中的语句覆盖信息和第i个测试用例Ti经过程序P的实际输出Bi

S120:对比Ai和Bi,若Ai和Bi相同,则第i个测试用例的标签Yi为0,若Ai和Bi不同,则第i个测试用例的标签Yi为1;

S130:重复S110和S120,遍历T中所有测试用例,得到所有测试用例的语句覆盖信息和所有测试用例的标签;

所有测试用例的语句覆盖信息组成覆盖矩阵X,其中X的维度为M×N;

所有测试用例的标签组成标签向量y,其中y的维度为M×1;

S200:对覆盖矩阵X进行特征选择处理,得到筛选降维后的特征空间X,具体步骤如下:

S210:建立降维覆盖矩阵Xreduce,预设Xreduce中的特征向量数量为q,可执行语句数量为K且KN,Xreduce矩阵维度为M×K;

S220:计算覆盖矩阵X的协方差矩阵covX,且covX的维度为N×N;

S230:计算协方差矩阵covX的特征值eigenVal和每个特征值eigenVal对应的特征向量eigenVec;

其中,eigenVal包含N个特征值,eigenVec包含N个特征向量且每个特征向量的维度为N×1;

S240:将特征值eigenVal进行降序排列,选取前q个的特征值对应的特征向量组成特征向量矩阵V,且其矩阵V的维度为N×q;

S250:计算P中每条可执行语句的贡献值通过对贡献值的筛选,得到降维后的特征空间;

其中u∈{1,2,3,…,N},u表示P中的第u条可执行语句;p表示V的第p列,且p=1,2,…q;Vup表示V的第u行,第p列;

S251:将贡献值cu进行降序排列,选取前K个值,依据前K个值对应的下标u,则将Xu依次加入Xreduce中,得到筛选降维后的特征空间X

其中,Xu表示覆盖矩阵X的第u列,特征空间X的维度为M×K;

S300:构建条件变分自编码网络模型;

条件变分自编码网络模型包括一个编码器和一个解码器,编码器和解码器分别由多个深度学习组件构成,其中编码器用于输出隐变量,解码器用于还原输入给编码器的样本数据;

所述编码器包括一层输入层、两层卷积层和一层输出层;

所述解码器包括一层输入层、两层卷积层和一层输出层;

S400:使用特征空间X和特征空间X中每个测试用例对应的标签作为训练数据,对条件变分自编码网络模型进行训练,最终得到训练好的条件变分自编码网络模型,具体训练过程如下:

S410:预设训练最大迭代次数,预设条件变分自编码网络模型输出的隐变量维度为s,并对该网络模型进行初始化;

S420:设起始行为第i′行,依次向后选择,每次选择特征空间X中的h行,并将这h行对应的标签转换为one-hot向量,得到h个one-hot向量;

其中,i′∈{1,1+h,1+2h,…,1+(└M/h┘+1)*h};

S430:将h个one-hot向量与h行特征空间X结合得到矩阵W,将矩阵W作为条件变分自编码网络模型的输入,输出得到h个隐变量,计算隐变量的具体步骤如下:

S431:将输入数据经过两层卷积层计算后,得到均值向量m和噪声权重向量σ,并使用KLD损失函数对噪声权重向量σ进行约束;

S432:利用高斯分布随机生成噪音向量t;

S433:利用均值向量m、噪声权重向量σ和噪音向量t计算隐变量z,具体表达式如下:

z=m+eσ*t(1)

其中,z的维度为s×h;

S440:将h个隐变量对应的标签转换为one-hot向量,将每个隐变量与相对应的one-hot向量进行叠加,得到数据组D,其中D的维度为(s+2)×h;

S450:将数据组D作为解码器的输入,经过两层卷积层处理,输出得到Xreconstruct,且Xreconstruct的维度与编码器的输入维度一致;

S460:计算损失函数衡量Xreconstruct的还原质量,具体表达式如下:

其中,MSEloss表示损失函数,j=1,2,…K;

S470:根据总损失值total_loss对条件变分自编码网络模型中的参数使用误差逆传播进行参数更新,总损失total_loss表达式如下:

total_loss=KLD loss+MSE loss (3)

其中,KLD loss表示KLD损失;

S480:重复S420-S470,遍历特征空间X中所有测试用例数据,当训练达到最大迭代次数时停止训练,得到训练好的条件变分自编码网络模型,然后进行下一步,否则返回S420;

S500:从训练好的条件变分自编码网络模型中提取出解码器;

S600:对高斯分布进行数据采样,得到噪音向量,将标签指定为1并进行转换得到带标签的one-hot向量;

S700:将噪音向量和带标签的one-hot向量输入到解码器中,得到最终的失败测试用例结果。

2.如权利要求1所述的一种使用生成式网络进行失败测试用例生成的方法,其特征在于:所述S431中的对噪声权重向量σ进行约束的KLD损失函数具体表达式如下:

其中,KLDloss表示损失函数。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆大学,未经重庆大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202111145441.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top