全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111667193.2 (22)申请日 2021.12.31 (71)申请人 北京航空航天大 学 地址 100190 北京市海淀区学院路37号 (72)发明人 杨顺昆 杨明浩 王杰凯  (74)专利代理 机构 北京快易权知识产权代理有 限公司 1 1660 专利代理师 陈伟斯 (51)Int.Cl. G06F 11/36(2006.01) G06K 9/62(2022.01) (54)发明名称 一种基于机器学习和静态分析的软件集成 测评方法 (57)摘要 本发明公开了一种基于机器学习和静态分 析的软件集成测评方法, 包括: 收集历史版本软 件源码的缺陷信息, 进行统一格式化处理; 对历 史版本软件源码扫描分析, 提取原始缺陷分析结 果中的关键信息; 提取历史版本软件源码的代码 特征信息; 将已知缺陷信息、 缺陷分析结果、 代码 特征信息进行数据组合, 构建机器学习算法模型 的输入数据; 设定训练模型及参数, 完成机器学 习算法模型的训练和调优; 对待分析的目标代码 重复执行, 获得目标代码 的特征数据; 将待分析 的目标代码特征数据输入机器学习算法模型, 获 得软件缺陷分析结果。 本发明通过机器学习算法 对原始分析结果进行进一步集 成和优化, 过滤部 分错误报告, 同时补充单一静态工具遗漏的缺 陷。 权利要求书2页 说明书5页 附图2页 CN 114490344 A 2022.05.13 CN 114490344 A 1.一种基于 机器学习和静态分析的软件集成测评方法, 其特 征在于, 包括如下步骤: 步骤S1, 收集历史版本软件 源码的缺陷信息, 并进行统一的格式化处 理; 步骤S2, 使用多个静态分析工具对上述历史版本软件源码进行扫描分析, 提取原始缺 陷分析结果中的关键信息; 步骤S3, 通过代码度量工具提取 上述的历史版本软件 源码的代码特 征信息; 步骤S4, 将已知的缺陷信息、 缺陷分析结果、 代码特征信息进行数据组合, 构建机器学 习算法模型的输入数据; 步骤S5, 根据模型测试指标、 软件代码量级与代码类型自动化地设定训练模型及参数, 完成机器学习算法模型的训练和调优; 步骤S6, 对待分析的目标代码重复执 行步骤S2 ‑步骤S4, 获得目标代码的特 征数据; 步骤S7, 将待分析的目标代码特征数据输入机器学习算法模型, 获得软件缺陷分析结 果。 2.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法, 其特征 在于, 步骤S1中所述的收集历史版本软件源码的缺陷信息, 并进 行统一的格式化处理, 方法 如下: 收集目标测评软件的历史版本信息, 其中主要关注缺陷的识别和更改记录信息, 将其 中关键信息进 行提取, 包括: 代码文件名、 是否包含缺陷、 缺陷所在位置以及缺陷类型; 提取 后的数据使用jso n文件格式进行格式化存 储。 3.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法, 其特征 在于, 步骤S2中所述的使用多个静态分析工具对上述历史版本软件源码进行扫描分析, 提 取原始缺陷分析结果中的关键信息, 方法如下: 通过python脚本调用多个静态分析工具对 历史版本软件进行静态分析扫描, 将命令行中的原始分析结果重定 向至指定文本文件中; 根据不同静态分析工具的缺陷告警格式, 使用字符串切分方法提取其中的关键信息, 包括: 代码文件名、 代码文件路径、 缺陷所在位置、 缺陷级别以及缺陷描述。 4.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法, 其特征 在于, 步骤S 3中所述的提取已知缺陷信息的历史版本软件源码的代码特征信息, 方法如下: 扫描所有的已知缺陷信息的历史版本软件源码文件, 扫描过程中记录源码文件名并完成包 括根据换行符统计源码文件代码行数、 根据编程语言注释符号统计注释行数进而计算有效 代码行数以及根据编程语言函数定义格式统计源码文件函数个数 特征信息的计算 提取。 5.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法, 其特征 在于, 步骤S4中所述的将已知的缺陷信息、 静态分析结果、 代码特征信息进行数据 组合, 构 建机器学习算法模型的输入数据, 方法如下: 在前三步之后, 收集到了软件历史版本的已知 的缺陷信息、 静态分析结果、 代码特征信息, 并使用了统一格式进行存储。 以其中源码文件 名作为关键字纽带, 将三种信息进行组合, 进行归一化处理并对其中部分不合法的数据进 行过滤或格式转换, 最终构建机器学习算法模型 可接受的数据集。 6.根据权利要求5所述的一种基于机器学习和静态分析的软件集成测评方法, 其特征 在于, 步骤S5中所述的根据模型测试指标、 软件代码量级与代码类型自动化地设定训练模 型及参数, 完成机器学习算法模 型的训练和调优, 方法如下: 以历史版本软件是否包含缺陷 和缺陷所在位置作为数据标签, 将步骤S4中构建的数据集切分为训练集和测试集, 将训练 集输入机器学习分类算法模型; 在以第一次训练模型时, 设置默认模型参数, 完成模型训权 利 要 求 书 1/2 页 2 CN 114490344 A 2练, 然后使用测试集对模型进行测试, 统计相关评估指标, 根据模型测试指标、 软件代码量 级与代码类型自动化修改模型参数, 再次优化训练模型, 重复多次获得具有较高评价指标 的分类模型。 7.根据权利要求1所述一种基于机器学习和静态分析的软件集成测评方法, 其特征在 于, 步骤S6所述的对待分析的目标代码重复执行步骤S2 ‑步骤S4, 获得目标代码的特征数 据, 方法如下: 针对目标代码文件, 依次执行步骤S2、 步骤S3和步骤S4, 获得新的缺陷分析数 据。 8.根据权利要求1所述一种基于机器学习和静态分析的软件集成测评方法, 其特征在 于, 步骤S7所述的将待分析 的目标代码特征数据输入机器学习算法模型, 获得软件缺陷分 析结果, 方法如下: 将步骤S6中的目标软件的缺陷分析特征数据输入至步骤S5中完成调优 的机器学习分析算法模型, 获得分类优化结果, 该 结果即为优化后的软件缺陷分析 结果。权 利 要 求 书 2/2 页 3 CN 114490344 A 3

.PDF文档 专利 一种基于机器学习和静态分析的软件集成测评方法

文档预览
中文文档 10 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于机器学习和静态分析的软件集成测评方法 第 1 页 专利 一种基于机器学习和静态分析的软件集成测评方法 第 2 页 专利 一种基于机器学习和静态分析的软件集成测评方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 22:42:46上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。