This application provides a method and device for determining code quality. The method includes: acquiring the target code file to be tested; analyzing the target code file to obtain the abstract grammar tree of the target code file; and determining the result of code quality analysis of the target code file according to the abstract grammar tree and code quality analysis model of the target code file. The code quality analysis results include bug BUG or no BUG. The code quality analysis model is used to represent the mapping relationship between abstract grammar tree and code quality analysis results. The code quality analysis model is trained by two-way long-term and short-term memory loop neural network LSTM. The method and device for determining code quality provided in this application can be used to evaluate the quality of code files.
【技术实现步骤摘要】
确定代码质量的方法和装置
本申请涉及计算机领域,并且更具体地,涉及计算机领域中确定代码质量的方法和装置。
技术介绍
随着信息技术的蓬勃发展,计算机已经越来越广泛的应用到各行各业中,作为信息技术的灵魂,软件的规模也在日益扩大,这不仅导致了程序复杂度的提高,也降低了软件自身的可靠性。因此保证软件的代码质量,是贯穿到整个生命周期的重要问题,而如何对软件的代码质量进行有效的评价则是保证软件质量的一种重要手段。传统会通过静态分析的方式对代码做一些静态检查,诸如BUG检查、编码规范等。这类静态分析无法感知到项目的业务逻辑、人员编码习惯等信息,因此很难识别出业务类型的BUG、不规范行为。并且,传统的静态分析的方式进行检查时需要进行大量的逻辑判断,在实际项目中运用是不现实的。
技术实现思路
本申请提供一种确定代码质量的方法和装置,能够对代码文件的质量进行评估。为实现上述目的,本申请提供一种确定代码质量的方法,包括以下内容:获取待测试的目标代码文件;对所述目标代码文件进行分析,得到所述目标代码文件的抽象语法树;根据所述目标代码文件的抽象语法树和代码质量分析模型,确定所述目标代码文件的代码质量分析结果,所述代码质量分析结果包括存在BUG或不存在BUG,所述代码质量分析模型用于表示抽象语法树与代码质量分析结果之间的映射关系,且所述代码质量分析模型是通过双向长短时记忆循环神经网络LSTM训练得到的。在一种可能的实现方式中,在根据所述目标代码文件的抽象语法树和代码质量分析模型,确定所述目标代码文件的代码质量分析结果之前,所述方法还包括:获取多个样本代码文件和所述多个样本代码文件中每个样 ...
【技术保护点】
1.一种确定代码质量的方法,其特征在于,包括:获取待测试的目标代码文件;对所述目标代码文件进行分析,得到所述目标代码文件的抽象语法树;根据所述目标代码文件的抽象语法树和代码质量分析模型,确定所述目标代码文件的代码质量分析结果,所述代码质量分析结果包括存在漏洞BUG或不存在BUG,所述代码质量分析模型用于表示抽象语法树与代码质量分析结果之间的映射关系,且所述代码质量分析模型是通过双向长短时记忆循环神经网络LSTM训练得到的。
【技术特征摘要】
1.一种确定代码质量的方法,其特征在于,包括:获取待测试的目标代码文件;对所述目标代码文件进行分析,得到所述目标代码文件的抽象语法树;根据所述目标代码文件的抽象语法树和代码质量分析模型,确定所述目标代码文件的代码质量分析结果,所述代码质量分析结果包括存在漏洞BUG或不存在BUG,所述代码质量分析模型用于表示抽象语法树与代码质量分析结果之间的映射关系,且所述代码质量分析模型是通过双向长短时记忆循环神经网络LSTM训练得到的。2.根据权利要求1所述的方法,其特征在于,在根据所述目标代码文件的抽象语法树和代码质量分析模型,确定所述目标代码文件的代码质量分析结果之前,所述方法还包括:获取多个样本代码文件和所述多个样本代码文件中每个样本代码文件的代码质量分析结果;对所述每个样本代码文件进行分析,得到所述每个样本代码文件的抽象语法树;将所述每个样本代码文件的抽象语法树和所述每个样本代码文件的代码质量分析结果输入到所述双向长短时记忆循环神经网络LSTM模型中,训练得到所述代码质量分析模型。3.根据权利要求2所述的方法,其特征在于,对所述目标代码文件进行分析,得到所述目标代码文件的抽象语法树,包括:通过语法分析器对所述目标代码文件进行词法和语法分析,得到分析结果;将所述分析结果通过抽象语法树的形式表示。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:当所述目标代码文件的代码质量分析结果为存在BUG时,发送第一提醒信息,所述第一提醒信息用于提醒用户修复所述目标代码文件中的BUG。5.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括...
【专利技术属性】
技术研发人员:秦天欢,张宗勇,
申请(专利权)人:平安壹钱包电子商务有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。