[发明专利]一种基于机器学习和静态分析的软件集成测评方法在审
申请号: | 202111667193.2 | 申请日: | 2021-12-31 |
公开(公告)号: | CN114490344A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 杨顺昆;杨明浩;王杰凯 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
代理公司: | 北京快易权知识产权代理有限公司 11660 | 代理人: | 陈伟斯 |
地址: | 100190*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 机器 学习 静态 分析 软件 集成 测评 方法 | ||
1.一种基于机器学习和静态分析的软件集成测评方法,其特征在于,包括如下步骤:
步骤S1,收集历史版本软件源码的缺陷信息,并进行统一的格式化处理;
步骤S2,使用多个静态分析工具对上述历史版本软件源码进行扫描分析,提取原始缺陷分析结果中的关键信息;
步骤S3,通过代码度量工具提取上述的历史版本软件源码的代码特征信息;
步骤S4,将已知的缺陷信息、缺陷分析结果、代码特征信息进行数据组合,构建机器学习算法模型的输入数据;
步骤S5,根据模型测试指标、软件代码量级与代码类型自动化地设定训练模型及参数,完成机器学习算法模型的训练和调优;
步骤S6,对待分析的目标代码重复执行步骤S2-步骤S4,获得目标代码的特征数据;
步骤S7,将待分析的目标代码特征数据输入机器学习算法模型,获得软件缺陷分析结果。
2.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S1中所述的收集历史版本软件源码的缺陷信息,并进行统一的格式化处理,方法如下:收集目标测评软件的历史版本信息,其中主要关注缺陷的识别和更改记录信息,将其中关键信息进行提取,包括:代码文件名、是否包含缺陷、缺陷所在位置以及缺陷类型;提取后的数据使用json文件格式进行格式化存储。
3.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S2中所述的使用多个静态分析工具对上述历史版本软件源码进行扫描分析,提取原始缺陷分析结果中的关键信息,方法如下:通过python脚本调用多个静态分析工具对历史版本软件进行静态分析扫描,将命令行中的原始分析结果重定向至指定文本文件中;根据不同静态分析工具的缺陷告警格式,使用字符串切分方法提取其中的关键信息,包括:代码文件名、代码文件路径、缺陷所在位置、缺陷级别以及缺陷描述。
4.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S3中所述的提取已知缺陷信息的历史版本软件源码的代码特征信息,方法如下:扫描所有的已知缺陷信息的历史版本软件源码文件,扫描过程中记录源码文件名并完成包括根据换行符统计源码文件代码行数、根据编程语言注释符号统计注释行数进而计算有效代码行数以及根据编程语言函数定义格式统计源码文件函数个数特征信息的计算提取。
5.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S4中所述的将已知的缺陷信息、静态分析结果、代码特征信息进行数据组合,构建机器学习算法模型的输入数据,方法如下:在前三步之后,收集到了软件历史版本的已知的缺陷信息、静态分析结果、代码特征信息,并使用了统一格式进行存储。以其中源码文件名作为关键字纽带,将三种信息进行组合,进行归一化处理并对其中部分不合法的数据进行过滤或格式转换,最终构建机器学习算法模型可接受的数据集。
6.根据权利要求5所述的一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S5中所述的根据模型测试指标、软件代码量级与代码类型自动化地设定训练模型及参数,完成机器学习算法模型的训练和调优,方法如下:以历史版本软件是否包含缺陷和缺陷所在位置作为数据标签,将步骤S4中构建的数据集切分为训练集和测试集,将训练集输入机器学习分类算法模型;在以第一次训练模型时,设置默认模型参数,完成模型训练,然后使用测试集对模型进行测试,统计相关评估指标,根据模型测试指标、软件代码量级与代码类型自动化修改模型参数,再次优化训练模型,重复多次获得具有较高评价指标的分类模型。
7.根据权利要求1所述一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S6所述的对待分析的目标代码重复执行步骤S2-步骤S4,获得目标代码的特征数据,方法如下:针对目标代码文件,依次执行步骤S2、步骤S3和步骤S4,获得新的缺陷分析数据。
8.根据权利要求1所述一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S7所述的将待分析的目标代码特征数据输入机器学习算法模型,获得软件缺陷分析结果,方法如下:将步骤S6中的目标软件的缺陷分析特征数据输入至步骤S5中完成调优的机器学习分析算法模型,获得分类优化结果,该结果即为优化后的软件缺陷分析结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111667193.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:服务端应用架构的诊断方法及装置
- 下一篇:一种多域作战多传感器属性识别方法