[发明专利]一种代码的用例获取方法、装置、电子设备及介质在审
申请号: | 202010785347.7 | 申请日: | 2020-08-06 |
公开(公告)号: | CN112052160A | 公开(公告)日: | 2020-12-08 |
发明(设计)人: | 许维 | 申请(专利权)人: | 中信银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F40/194;G06K9/62 |
代理公司: | 北京市兰台律师事务所 11354 | 代理人: | 张峰 |
地址: | 100020 北京市朝*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 获取 方法 装置 电子设备 介质 | ||
1.一种代码的用例获取方法,其特征在于,所述方法包括:
建立样本用例与样本代码之间的匹配关系;
将所述样本用例与所述样本代码之间的匹配关系进行无监督学习训练,以构建用例与代码的聚类模型;
获取代码变更差异化文件;
根据所述代码变更差异化文件筛选出测试用例;
将所述测试用例作为所述用例与代码的聚类模型的输入,以使得所述用例与代码的聚类模型对所述测试用例进行分类并输出覆盖率最高的用例集合。
2.如权利要求1所述的用例获取方法,其特征在于,所述建立样本用例与样本代码之间的匹配关系,包括:
在工程插入监听包,以在所述样本用例被目标用户触发执行时,根据所述监听包监听所述工程中的代码变更,并确定所述样本代码;
获取所述样本用例的执行状态;
当根据所述样本用例的执行状态判断出所述样本用例执行完成时,建立所述样本用例的ID与所述工程的ID、所述样本代码的行数、所述样本代码所属类的ID之间的关系,并将所述样本用例ID与所述工程的ID、所述样本代码的行数、所述样本代码所属类的ID之间的关系作为所述样本用例与样本代码之间的匹配关系。
3.如权利要求2所述的用例获取方法,其特征在于,在在工程插入监听包,以在所述样本用例被用户触发执行时,根据所述监听包监听所述工程中的代码变更,并确定所述样本代码之前,所述方法还包括:
获取若干个预设用户的IP地址,并将每个预设用户的IP地址作为每个所述预设用户的唯一标识;
当所述样本用例被多个所述预设用户触发执行时,根据每个所述预设用户的唯一标识确定所述目标用户。
4.如权利要求2所述的用例获取方法,其特征在于,所述将所述样本用例与所述样本代码之间的匹配关系进行无监督学习训练,以构建用例与代码的聚类模型,包括:
将所述样本用例ID与所述工程的ID、所述样本代码的行数、所述样本代码所属类的ID之间的关系,转换为关系矩阵;
将所述关系矩阵作为训练数据,对若干个预设聚类模型进行训练,并根据所述若干个预设聚类模型的训练结果,从所述若干个预设聚类模型中确定出最优聚类模型;
将所述最优聚类模型作为所述用例与代码的聚类模型。
5.如权利要求1所述的用例获取方法,其特征在于,所述根据所述代码变更差异化文件筛选出测试用例,包括:
获取所述代码变更差异化文件中的有变更的代码的行号信息;
根据所述有变更的代码的行号信息、所述样本用例与样本代码之间的匹配关系,从若干个所述样本用例中筛选出变更所涉及的用例,并作为所述测试用例。
6.如权利要求5所述的用例获取方法,其特征在于,在所述获取代码变更差异化文件之前,所述方法还包括:
当创建代码分支时,保留原始版本的JAVA文件;
当新版本的JAVA文件被提交时,将所述原始版本的JAVA文件与所述新版本的JAVA文件进行比较,并生成所述代码变更差异化文件。
7.如权利要求1所述的用例获取方法,其特征在于,所述将所述测试用例作为所述用例与代码的聚类模型的输入,以使得所述用例与代码的聚类模型对所述测试用例进行分类并输出覆盖率最高的用例集合,包括:
将所述测试用例作为所述用例与代码的聚类模型的输入,使得所述用例与代码的聚类模输出所述测试用例的覆盖率;
根据所述测试用例的覆盖率确定出覆盖率最高的用例集合;
以及,在所述根据所述测试用例的覆盖率确定出覆盖率最高的用例集合之后,所述方法还包括:
对测试代码执行所述覆盖率最高的用例集合中的每个用例,并统计所述测试代码的用例密度与所述覆盖率最高的用例集合中的每个用例的覆盖率,以使得测试人员评估。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中信银行股份有限公司,未经中信银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010785347.7/1.html,转载请声明来源钻瓜专利网。