System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种代码异常检测方法及装置。
技术介绍
1、软件开发过程中,出现代码异常往往会引起应用程序的崩溃或者出错,给用户带来负面的影响。因此,对代码异常的检测和修复至关重要。目前常用的异常检测方法有静态分析、动态分析、模型检测等。这些方法虽然有效,但也存在一些缺陷,如耗时、精度不高等。因此,需要一种更加高效、准确的代码异常检测方法以满足现代化软件开发的需求。
技术实现思路
1、本申请提供一种代码异常检测方法,所述方法包括:
2、接收用户提交的目标版本代码;
3、确定所述目标版本代码与所述目标版本代码提交前的历史版本代码之间的差异代码;
4、将所述差异代码输入预训练的异常检测模型,以由所述异常检测模型确定所述差异代码中的异常代码。
5、可选的,所述确定所述目标版本代码与所述目标版本代码提交前的历史版本代码之间的差异代码,包括:
6、响应于用户针对代码版本的选择操作,确定所述用户选择的代码版本;
7、确定所述目标版本代码与所述用户选择的代码版本对应的历史版本代码之间的差异代码。
8、可选的,所述异常检测模型包括支持向量机模型;所述支持向量机模型基于训练样本预先确定了超平面;所述超平面作为决策边界用于确定代码是否异常;
9、所述将所述差异代码输入预训练的异常检测模型,以由所述异常检测模型确定所述差异代码中的异常代码,包括:
10、将所述差异代码输入预训练的支持向量
11、如果所述距离大于预设阈值,则确定为异常代码;反之,则确定为正常代码。
12、可选的,所述异常检测模型包括贝叶斯网络模型;
13、所述将所述差异代码输入预训练的异常检测模型,以由所述异常检测模型确定所述差异代码中的异常代码,包括:
14、将所述差异代码输入预训练的贝叶斯网络模型,以由所述预训练的贝叶斯网络模型提取所述差异代码的代码特征,并基于所述代码特征计算所述差异代码为异常代码的概率;
15、如果所述概率大于预设阈值,则确定为异常代码;反之,则确定为正常代码。
16、可选的,所述方法还包括:
17、克隆所述历史版本代码生成克隆代码库,以使所述用户向所述克隆代码库提交所述目标版本代码。
18、可选的,所述方法还包括:
19、从所述克隆代码库分别获取正常代码以及异常代码,生成训练样本;其中,所述正常代码包括经过测试并验证为有效的代码;所述异常代码包括经过测试并出现异常的代码;
20、将所述训练样本输入所述异常检测模型,针对所述异常检测模型进行训练。
21、可选的,所述方法还包括:
22、如果所述差异代码中包括异常代码,将所述异常代码保存至所述克隆代码库,并将所述异常检测模型的检测结果向用户进行通知,以使所述用户针对所述异常代码进行处理。
23、本申请还提供一种代码异常检测装置,所述装置包括:
24、代码提交单元,用于接收用户提交的目标版本代码;
25、差异代码确定单元,用于确定所述目标版本代码与所述目标版本代码提交前的历史版本代码之间的差异代码;
26、异常检测单元,用于将所述差异代码输入预训练的异常检测模型,以由所述异常检测模型确定所述差异代码中的异常代码。
27、本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
28、所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
29、本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
30、在以上实施例记载的方案中,通过确定目标版本代码与历史版本代码之间的差异代码,并只针对差异代码进行检测,相比于传统的针对全量代码进行检测更加高效且快捷,且可以在用户每次提交后实时的进行检测,更快的发现代码中的问题。除此之外通过预训练的异常检测模型,可以在模型的使用过程中可以自动学习和适应不同的开发环境和代码库,从而提高检测的精度和效率。
本文档来自技高网...【技术保护点】
1.一种代码异常检测方法,所述方法包括:
2.根据权利要求1所述的方法,所述确定所述目标版本代码与所述目标版本代码提交前的历史版本代码之间的差异代码,包括:
3.根据权利要求1所述的方法,所述异常检测模型包括支持向量机模型;所述支持向量机模型基于训练样本预先确定了超平面;所述超平面作为决策边界用于确定代码是否异常;
4.根据权利要求1所述的方法,所述异常检测模型包括贝叶斯网络模型;
5.根据权利要求1所述的方法,所述方法还包括:
6.根据权利要求5所述的方法,所述方法还包括:
7.根据权利要求5所述的方法,所述方法还包括:
8.一种代码异常检测装置,所述装置包括:
9.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
10.一种计算机可读存储介质,所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-7任一项所述的方法。
【技术特征摘要】
1.一种代码异常检测方法,所述方法包括:
2.根据权利要求1所述的方法,所述确定所述目标版本代码与所述目标版本代码提交前的历史版本代码之间的差异代码,包括:
3.根据权利要求1所述的方法,所述异常检测模型包括支持向量机模型;所述支持向量机模型基于训练样本预先确定了超平面;所述超平面作为决策边界用于确定代码是否异常;
4.根据权利要求1所述的方法,所述异常检测模型包括贝叶斯网络模型;
5.根据权利要求1所述的方法,所述方法...
【专利技术属性】
技术研发人员:方海波,
申请(专利权)人:浙江极氪智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。