[发明专利]一种基于RankNet的混合软件错误定位方法及系统有效
申请号: | 202010350329.6 | 申请日: | 2020-04-28 |
公开(公告)号: | CN111581086B | 公开(公告)日: | 2023-03-31 |
发明(设计)人: | 肖喜;彭震东;郑海涛;江勇;夏树涛 | 申请(专利权)人: | 清华大学深圳国际研究生院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳新创友知识产权代理有限公司 44223 | 代理人: | 江耀纯 |
地址: | 518055 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 ranknet 混合 软件 错误 定位 方法 系统 | ||
1.一种基于RankNet的混合软件错误定位方法,其特征在于,包括以下步骤:
S1.RankNet排序模型的训练:所述RankNet排序模型自动提取代码语句的文本特征,再将所述文本特征与代码语句的数值特征结合并输入RankNet排序模型进行排序学习;
所述RankNet排序模型包含两个子网络,所述两个子网络共享参数权值;步骤S1包括:
S11.对同一个错误软件中的代码语句构造代码语句对,使用所述两个子网络分别提取代码语句对中第一代码语句的第一文本特征以及第二代码语句的第二文本特征;
S12.将所述第一文本特征与第一代码语句的第一数值特征结合形成第一高维度特征向量,经RankNet排序模型训练得到第一可疑性分数;将所述第二文本特征与第二代码语句的第二数值特征结合形成第二高维度特征向量,经RankNet排序模型训练得到第二可疑性分数;
S13.将所述第一可疑性分数与所述第二可疑性分数的差值经过Sigmoid函数计算得到所述第一代码语句比所述第二代码语句更加可疑的概率;
所述第一高维度特征向量和所述第二高维度特征向量分别进行归一化处理后再输入RankNet排序模型进行训练;
S2.利用训练好的RankNet排序模型进行代码语句排序,得到可疑代码语句列表来进行软件错误定位。
2.如权利要求1所述的方法,其特征在于,归一化公式如下:
其中,vi和ui分别表示第i个代码语句的特征向量u归一化之后和归一化之前的值,max(u)和min(u)分别表示同一个错误软件中所有代码语句的特征向量u的最大值和最小值。
3.如权利要求1所述的方法,其特征在于,所述步骤S13中,所述差值经过Sigmoid函数计算后用于计算交叉熵,并使用交叉熵作为RankNet排序模型的目标函数。
4.如权利要求3所述的方法,其特征在于,所述交叉熵的公式为:
其中,L表示损失;即模型的预测值与真实值之间的差距;N表示一个批次中样本的数量;yi表示真实的标签,yi的值为0或1,当yi为1时,表示第一代码语句有错,第二代码语句没错,也就是第一代码语句更可疑,当yi为0时,则相反;表示预测值,即RankNet排序模型认为第一代码语句比第二代码语句更加可疑的概率。
5.如权利要求1所述的方法,其特征在于,所述数值特征包括下列中的一种或多种:代码语句在执行测试用例期间的频谱,基于频谱的错误定位方法计算的可疑性分数,代码语句的统计特征,代码语句的类型。
6.如权利要求1所述的方法,其特征在于,所述RankNet排序模型自动提取代码语句的文本特征中,文本特征提取的对象包括:代码语句本身的内容,软件的开发历史,软件的错误报告。
7.如权利要求1所述的方法,其特征在于,所述文本特征的粒度包括:代码语句,函数和文件。
8.一种基于RankNet的混合软件错误定位系统,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现权利要求1-7任一项所述的基于RankNet的混合软件错误定位方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学深圳国际研究生院,未经清华大学深圳国际研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010350329.6/1.html,转载请声明来源钻瓜专利网。