一种基于机器学习的智能分析软件缺陷的方法、系统及存储介质技术方案

技术编号:21377991 阅读:25 留言:0更新日期:2019-06-15 13:30
本发明专利技术提供了一种基于机器学习的智能分析软件缺陷的方法、系统及存储介质,该方法包括:步骤1,获得初始特征集;步骤2,对特征集A、B、C、D进行多次采样,分别形成特征集AA、BB、CC、DD,n为样本大小,N为总样本数;步骤3,预警模型对最终特征集AA、BB、CC、DD综合学习,采用随机森林方法随机生成特征矩阵,得到S个矩阵决策树集S;步骤4,输入新模块时,预警模型采用决策树集S对新模块进行综合分析。本发明专利技术的有益效果是:本发明专利技术对原始的测试数据训练,获得软件模块的特征及相应的软件模块标签;对软件模块数据、人员技能素质进行特征提取,不断优化测试数据,利用学习到特征来计算测试模块是否含有错误缺陷。

【技术实现步骤摘要】
一种基于机器学习的智能分析软件缺陷的方法、系统及存储介质
本专利技术涉及计算机
,尤其涉及一种基于机器学习的智能分析软件缺陷的方法、系统及存储介质。
技术介绍
随着社会的进步,科技的发展,软件已广泛应用于人们生活和生产当中,但是目前缺少对软件的缺陷进行计算测试的方法。
技术实现思路
本专利技术提供了一种基于机器学习的智能分析软件缺陷的方法,包括如下步骤:步骤1,获得初始特征集,初始特征集包括:对历史数据训练抽取软件模块与缺陷数有关的特性,获得缺陷数相关的特征集A={A1,A2...An};对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性,获得开发人员技能的特征集B={B1,B2...Bn};对历史数据训练抽取软件模块与提交代码时间段有关的特性,获得代码提交时间的特征集C={C1,C2...Cn};对历史数据训练抽取有用的模块与应用场景(如、开发语言、类、函数、代码行数、耦合情况等)有关的特性,获得应用场景的特征集D={D1,D2...Dn};步骤2,对特征集A、B、C、D进行多次采样,按照F=n/N比例进行采样分析,分别形成特征集AA、BB、CC、DD,n为样本大小,N为总样本数;步骤3,预警模型对最终特征集AA、BB、CC、DD综合学习,采用随机森林方法随机生成特征矩阵,得到S个矩阵决策树集S;步骤4,输入新模块时,预警模型采用决策树集S对新模块进行综合分析f(x)=S(x)/S(x)+1,将会得到s个分类结果,统计计数分析s类,数目越大则采用其作为软件缺陷分布情况预警,x为随机变量;f(x)为统计分类函数,用于计算S(x)分类情况,S(x)为决策树集。作为本专利技术的进一步改进,对历史数据训练抽取软件模块与缺陷数有关的特性包括语法错误数量、接口错误数量、参数错误数量、逻辑错误数量。作为本专利技术的进一步改进,对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性包括工作年限、学历、行业经验。作为本专利技术的进一步改进,对历史数据训练抽取有用的模块与应用场景有关的特性包括开发语言、类、函数、代码行数、耦合情况。本专利技术还提供了一种基于机器学习的智能分析软件缺陷的系统,包括:初始特征集获得模块,用于获得初始特征集,初始特征集包括:对历史数据训练抽取软件模块与缺陷数有关的特性,获得缺陷数相关的特征集A={A1,A2...An};对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性,获得开发人员技能的特征集B={B1,B2...Bn};对历史数据训练抽取软件模块与提交代码时间段有关的特性,获得代码提交时间的特征集C={C1,C2...Cn};对历史数据训练抽取有用的模块与应用场景(如、开发语言、类、函数、代码行数、耦合情况等)有关的特性,获得应用场景的特征集D={D1,D2...Dn};采样分析模块,用于对特征集A、B、C、D进行多次采样,按照F=n/N比例进行采样分析,分别形成特征集AA、BB、CC、DD,n为样本大小,N为总样本数;生成模块,用于预警模型对最终特征集AA、BB、CC、DD综合学习,采用随机森林方法随机生成特征矩阵,得到S个矩阵决策树集S;预警分析模块,用于输入新模块时,预警模型采用决策树集S对新模块进行综合分析f(x)=S(x)/S(x)+1,将会得到s个分类结果,统计计数分析s类,数目越大则采用其作为软件缺陷分布情况预警,x为随机变量。作为本专利技术的进一步改进,对历史数据训练抽取软件模块与缺陷数有关的特性包括语法错误数量、接口错误数量、参数错误数量、逻辑错误数量。作为本专利技术的进一步改进,对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性包括工作年限、学历、行业经验。作为本专利技术的进一步改进,对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性包括工作年限、学历、行业经验。本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本专利技术所述的方法的步骤。本专利技术的有益效果是:本专利技术对原始的测试数据训练,获得软件模块的特征及相应的软件模块标签;对软件模块数据、人员技能素质进行特征提取,基于测试数据选取与相应测试数据距离最近的训练数据,不断优化测试数据,利用学习到特征来计算测试模块是否含有错误缺陷,提高效率,满足用户需求。附图说明图1是本专利技术的原理框图。图2是本专利技术的方法流程图。具体实施方式如图1所示,本专利技术公开了一种基于机器学习的智能分析软件缺陷的方法,包括如下步骤:步骤1,获得初始特征集,初始特征集包括:对历史数据训练抽取软件模块与缺陷数有关的特性(如语法错误数量、接口错误数量、参数错误数量、逻辑错误数量等),获得缺陷数相关特征集A={A1,A2...An};对历史数据训练抽取软件模块与软件开发人员技能素质(如工作年限、学历、行业经验等)有关的特性,获得开发人员技能特征集B={B1,B2...Bn};对历史数据训练抽取软件模块与提交代码时间段有关的特性(如9:00-12:00,14:00-18:00,19:00-21:00等),获得代码提交时间特征集C={C1,C2...Cn};对历史数据训练抽取有用的模块与应用场景(如、开发语言、类、函数、代码行数、耦合情况等)有关的特性,获得应用场景特征集D={D1,D2...Dn};步骤2,为保证数据的准确性,通过对特征集A、B、C、D进行多次采样,按照F=n/N(n为样本大小,N为总样本数)比例进行采样分析,分别形成最终特征集AA、BB、CC、DD;步骤3,预警模型对最终特征集AA、BB、CC、DD综合学习,采用随机森林方法随机生成特征矩阵,采用方法对特征集进行分析学习。如:矩阵矩阵.....矩阵等,最终得到s个矩阵决策树集S;步骤4,新提交模块M时,采用预测模型决策树S对新模块进行综合分析f(x)=S(x)/S(x)+1,(x为随机变量)将会得到s个分类结果,统计计数分析s类,数目越大则采用其作为软件缺陷分布情况预警;f(x)为统计分类函数,用于计算S(x)分类情况,S(x)为决策树集,x为自然数(1-n)。本专利技术还公开了一种基于机器学习的智能分析软件缺陷的系统,包括:初始特征集获得模块,用于获得初始特征集,初始特征集包括:对历史数据训练抽取软件模块与缺陷数有关的特性,获得缺陷数相关的特征集A={A1,A2...An};对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性,获得开发人员技能的特征集B={B1,B2...Bn};对历史数据训练抽取软件模块与提交代码时间段有关的特性,获得代码提交时间的特征集C={C1,C2...Cn};对历史数据训练抽取有用的模块与应用场景(如、开发语言、类、函数、代码行数、耦合情况等)有关的特性,获得应用场景的特征集D={D1,D2...Dn};采样分析模块,用于对特征集A、B、C、D进行多次采样,按照F=n/N比例进行采样分析,分别形成特征集AA、BB、CC、DD,n为样本大小,N为总样本数;生成模块,用于预警模型对最终特征集AA、BB、CC、DD综合学习,采用随机森林方法随机生成特征矩阵,得到S个矩阵决策树集S;预警分析模块,用于输入新模块时,预警模型采用决策树集S对新模块进行综合分析f(x)=S(x)/S(x)+1,将会本文档来自技高网...

【技术保护点】
1.一种基于机器学习的智能分析软件缺陷的方法,其特征在于,包括如下步骤:步骤1,获得初始特征集,初始特征集包括:对历史数据训练抽取软件模块与缺陷数有关的特性,获得缺陷数相关的特征集A={A1,A2...An};对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性,获得开发人员技能的特征集B={B1,B2...Bn};对历史数据训练抽取软件模块与提交代码时间段有关的特性,获得代码提交时间的特征集C={C1,C2...Cn};对历史数据训练抽取有用的模块与应用场景(如、开发语言、类、函数、代码行数、耦合情况等)有关的特性,获得应用场景的特征集D={D1,D2...Dn};步骤2,对特征集A、B、C、D进行多次采样,按照F=n/N比例进行采样分析,分别形成特征集AA、BB、CC、DD,n为样本大小,N为总样本数;步骤3,预警模型对最终特征集AA、BB、CC、DD综合学习,采用随机森林方法随机生成特征矩阵,得到S个矩阵决策树集S;步骤4,输入新模块时,预警模型采用决策树集S对新模块进行综合分析f(x)=S(x)/S(x)+1,将会得到s个分类结果,统计计数分析s类,数目越大则采用其作为软件缺陷分布情况预警,x为随机变量;f(x)为统计分类函数,用于计算S(x)分类情况,S(x)为决策树集。...

【技术特征摘要】
1.一种基于机器学习的智能分析软件缺陷的方法,其特征在于,包括如下步骤:步骤1,获得初始特征集,初始特征集包括:对历史数据训练抽取软件模块与缺陷数有关的特性,获得缺陷数相关的特征集A={A1,A2...An};对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性,获得开发人员技能的特征集B={B1,B2...Bn};对历史数据训练抽取软件模块与提交代码时间段有关的特性,获得代码提交时间的特征集C={C1,C2...Cn};对历史数据训练抽取有用的模块与应用场景(如、开发语言、类、函数、代码行数、耦合情况等)有关的特性,获得应用场景的特征集D={D1,D2...Dn};步骤2,对特征集A、B、C、D进行多次采样,按照F=n/N比例进行采样分析,分别形成特征集AA、BB、CC、DD,n为样本大小,N为总样本数;步骤3,预警模型对最终特征集AA、BB、CC、DD综合学习,采用随机森林方法随机生成特征矩阵,得到S个矩阵决策树集S;步骤4,输入新模块时,预警模型采用决策树集S对新模块进行综合分析f(x)=S(x)/S(x)+1,将会得到s个分类结果,统计计数分析s类,数目越大则采用其作为软件缺陷分布情况预警,x为随机变量;f(x)为统计分类函数,用于计算S(x)分类情况,S(x)为决策树集。2.根据权利要求1所述的方法,其特征在于:对历史数据训练抽取软件模块与缺陷数有关的特性包括语法错误数量、接口错误数量、参数错误数量、逻辑错误数量。3.根据权利要求1所述的方法,其特征在于:对历史数据训练抽取软件模块与软件开发人员技能素质有关的特性包括工作年限、学历、行业经验。4.根据权利要求1所述的方法,其特征在于:对历史数据训练抽取有用的模块与应用场景有关的特性包括开发语言、类、函数、代码行数、耦合情况。5.一种基于机器学习的智能分析软件缺陷的系统,其特征在于,...

【专利技术属性】
技术研发人员:周洪峰黎平邹秋艳
申请(专利权)人:深圳微品致远信息科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1