[发明专利]一种基于测试预言的单元测试用例排序方法有效
| 申请号: | 202110711925.7 | 申请日: | 2021-06-25 |
| 公开(公告)号: | CN113434408B | 公开(公告)日: | 2022-04-08 |
| 发明(设计)人: | 刘辉;朱志浩;李亚辉;李光杰 | 申请(专利权)人: | 北京理工大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/04;G06N3/08 |
| 代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 张利萍 |
| 地址: | 100081 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 测试 预言 单元测试 排序 方法 | ||
1.一种基于测试预言的单元测试用例排序方法,其特征在于,包括以下步骤:
步骤1:根据被测方法输入参数的类型与规则,随机生成数量不少于一百万个的符合被测方法要求的输入;
步骤2:将步骤1的生成结果输入到被测方法中,运行该方法得到各输入对应的输出;步骤1生成的输入与步骤2得到的输出构成该被测方法的测试用例,即方法输入,方法输出;
步骤3:根据被测方法的输入和输出的格式,初始化神经网络的输入层和输出层的神经元个数;
步骤4:使用步骤2生成的测试用例训练初始化后的神经网络;
如果训练神经网络的结果并不稳定和准确,即,如果训练网络的损失函数值大于β=0.02,则方法将失败且终止,否则,进行下一步骤;
步骤5:根据步骤1和步骤2生成新的测试用例,将生成的测试用例的输入传入到训练好的神经网络中,并将测试用例中的输出与神经网络的输出进行比较;其中,神经网络的损失函数分为两种类型,一种是对于测试用例的输入和输出都是数值型的数据,一种是测试用例的输入和输出都是非数值型的数据;
将测试用例中的非数值型数据通过其对应的ASCII码表示每个字符,并将数字ASCII码连接起来形成数字向量,最后,将数字值标准化到[0,1]范围区间;
其中,对于测试用例的输入和输出都是数值型的数据,使用均方误差MSE作为损失函数;
对于测试用例的输入和输出都是非数值型的数据,定义以下损失函数:
其中,loss为模型的损失函数,估量模型的输出和真实值之间的差距;n是训练数据的大小;acti是被测方法中第i个样例的实际输出,是被测方法中第i个样例的预期输出;
其中,表示被测方法中第i个样例的实际输出和预期输出之间的距离,m为方法输出参数的个数,acti是被测方法中第i个样例的实际输出,是被测方法中第i个样例的预期输出;opti,j表示第i个样例第j个输出参数的实际值,是第i个样例第j个输出参数的预期值;表示第i个样例第j个参数的实际输出和预期输出之间的编辑距离与它们长度和的比值;
其中,是两个字符串之间的编辑距离,|str|是字符串str的长度;
acti=opti,1,…,opti,m (4)
步骤6:将测试用例的实际输出和预期输出之间的距离,按降序对测试用例进行排名,并向开发人员展示前k个最可疑的测试用例;如果其中有可疑的测试用例揭示了被测方法的缺陷,开发人员需修复该缺陷。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110711925.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:球囊新型自动充盈装置
- 下一篇:一种用于岩溶地区的大直径管桩施工设备及方法





