【技术实现步骤摘要】
一种基于机器学习和静态分析的软件集成测评方法
[0001]本专利技术涉及软件测试
,尤其涉及一种基于机器学习和静态分析的软件集成测评方法。
技术介绍
[0002]静态分析是一种直接扫描目标代码提取有关程序的相关信息,通过分析或检查源程序的语法、结构、过程、接口等来实现检查程序的正确性的软件质量保证技术。在静态分析理论研究的基础上,大量静态分析工具被开发出来,有效帮助开发者改进软件质量。静态分析主要具有以下几个特点:
[0003](1)可以不运行被测程序:通过静态分析识别目标软件代码,不需要配置软件运行环境,直接扫描分析源码即可。
[0004](2)自主性:目前常见的静态分析工具在指定目标代码后,均可以自主完成缺陷分析,并给出相应的缺陷分析报告。
[0005](3)可扩展性:静态分析可以处理不同大小规模软件。
[0006]机器学习(Machine Learning),是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行 ...
【技术保护点】
【技术特征摘要】
1.一种基于机器学习和静态分析的软件集成测评方法,其特征在于,包括如下步骤:步骤S1,收集历史版本软件源码的缺陷信息,并进行统一的格式化处理;步骤S2,使用多个静态分析工具对上述历史版本软件源码进行扫描分析,提取原始缺陷分析结果中的关键信息;步骤S3,通过代码度量工具提取上述的历史版本软件源码的代码特征信息;步骤S4,将已知的缺陷信息、缺陷分析结果、代码特征信息进行数据组合,构建机器学习算法模型的输入数据;步骤S5,根据模型测试指标、软件代码量级与代码类型自动化地设定训练模型及参数,完成机器学习算法模型的训练和调优;步骤S6,对待分析的目标代码重复执行步骤S2
‑
步骤S4,获得目标代码的特征数据;步骤S7,将待分析的目标代码特征数据输入机器学习算法模型,获得软件缺陷分析结果。2.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S1中所述的收集历史版本软件源码的缺陷信息,并进行统一的格式化处理,方法如下:收集目标测评软件的历史版本信息,其中主要关注缺陷的识别和更改记录信息,将其中关键信息进行提取,包括:代码文件名、是否包含缺陷、缺陷所在位置以及缺陷类型;提取后的数据使用json文件格式进行格式化存储。3.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S2中所述的使用多个静态分析工具对上述历史版本软件源码进行扫描分析,提取原始缺陷分析结果中的关键信息,方法如下:通过python脚本调用多个静态分析工具对历史版本软件进行静态分析扫描,将命令行中的原始分析结果重定向至指定文本文件中;根据不同静态分析工具的缺陷告警格式,使用字符串切分方法提取其中的关键信息,包括:代码文件名、代码文件路径、缺陷所在位置、缺陷级别以及缺陷描述。4.根据权利要求1所述的一种基于机器学习和静态分析的软件集成测评方法,其特征在于,步骤S3中所述的提取已知缺陷信息的历史版本软件源码的代码特征信息,方法如下:扫描所有的已知缺陷信息的历史版本软件源码文件,扫描过程中记录源码文件名并完成包括根据换行符...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。