CN109240929A - 软件质量预测方法、装置、终端和计算机可读存储介质 - Google Patents
软件质量预测方法、装置、终端和计算机可读存储介质 Download PDFInfo
- Publication number
- CN109240929A CN109240929A CN201811088039.8A CN201811088039A CN109240929A CN 109240929 A CN109240929 A CN 109240929A CN 201811088039 A CN201811088039 A CN 201811088039A CN 109240929 A CN109240929 A CN 109240929A
- Authority
- CN
- China
- Prior art keywords
- software
- classification
- module
- characteristic
- quality prediction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提出一种软件质量预测方法、装置、终端和计算机可读存储介质,方法包括:获取待预测软件在软件开发流程中的多个类别的特征数据;将各类别的特征数据进行预处理,并输入到质量预测模型中;质量预测模型是根据反向传播神经网络和多个类别的历史特征数据构建的模型;质量预测模型对各类别的特征数据进行处理,并输出待预测软件的预测结果。本发明实施例根据影响软件质量的相关指标,综合软件开发流程中的各个类别的特征数据,快速且全面的进行软件质量预测,保证预测准确度。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种软件质量预测方法、装置、终端和计算机可读存储介质。
背景技术
在现有技术中,没有综合各类指标因素进行软件质量预测的方法。均是采用简单的指标因素或人为干预的方式进行软件质量预测。由于影响软件质量的因素是多方面的,仅仅把软件质量的预测精简为代码修改行数或代码覆盖率等直接量化的指标是不太合理的,因为这些因素都无法体现真是的软件质量,判断误差较大。而依赖于软件测试员测试的方法可操作性差,不同经验的人员测试的结果存在很大差别。而随着互联网产品的极大丰富,面对海量数据,单纯由人来进行测试是不现实的。
在背景技术中公开的上述信息仅用于加强对本发明的背景的理解,因此其可能包含没有形成为本领域普通技术人员所知晓的现有技术的信息。
发明内容
本发明实施例提供一种软件质量预测方法、装置、终端和计算机可读存储介质,以解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种软件质量预测方法,包括:
获取待预测软件在软件开发流程中的多个类别的特征数据;
将各所述类别的特征数据进行预处理,并输入到质量预测模型中;所述质量预测模型是根据反向传播神经网络和多个所述类别的历史特征数据构建的模型;
所述质量预测模型对各所述类别的特征数据进行处理,并输出所述待预测软件的预测结果。
结合第一方面,本发明实施例在第一方面的第一种实现方式中,所述特征数据的类别包含模块特征、需求特征、开发特征、测试特征、发布上线特征以及线上运维特征中的至少一项。
结合第一方面,本发明实施例在第一方面的第二种实现方式中,还包括:
从若干个软件在软件开发过程的历史数据中,获取多个所述类别的历史特征数据;
对各所述类别的历史特征数据进行预处理;
将预处理后的各所述类别的历史特征数据作为训练样本,基于所述反向传播神经网络进行模型训练,得到所述质量预测模型。
结合第一方面,本发明实施例在第一方面的第三种实现方式中,获取待预测软件在软件开发流程中的多个类别的特征数据,包括:
获取所述待预测软件在软件开发流程中的多个所述类别的原始数据;
各所述类别的原始数据分别通过对应的随机森林模型进行筛选,以获取各所述类别的特征数据。
结合第一方面,本发明实施例在第一方面的第四种实现方式中,还包括:
获取各所述类别最新的历史特征数据;
所述质量预测模型根据所述最新的历史特征数据进行自学习,以优化更新所述质量预测模型。
结合第一方面的第一种实现方式,本发明实施例在第一方面的第五种实现方式中,各所述类别的特征数据包括动态特征和静态特征,具体包括以下至少一项:
模块特征包括模块动态特征和模块静态特征;其中,模块动态特征包括:模块升级迭代频次、模块故障、模块效率以及质量比中的至少一个;模块静态特征包括:模块重要程度评分、模块被依赖程度评分以及模块依赖程度评分中的至少一个;
需求特征包括需求动态特征和需求静态特征;其中,需求动态特征包括:需求的复杂程度、需求文档的完善程度以及需求评审次数中的至少一个;需求静态特征包括:需求讨论的有效时间以及需求提出人的指标中的至少一个;
开发特征包括开发动态特征和开发静态特征;其中,开发动态特征包括:代码评审次数以及持续集成次数中的至少一个;开发静态特征包括:程序语言、开发时间、开发人员指标、变更代码行数、代码注释行数以及自测覆盖率中的至少一个;
测试特征包括测试动态特征和测试静态特征;其中,测试动态特征包括:测试性价比;测试静态特征包括:自动化测试用例通过率、代码行数覆盖率以及静态代码扫描问题数中的至少一个;
发布上线特征包括发布上线动态特征和发布上线静态特征;其中,发布上线动态特征包括:以往问题拦截率;发布上线静态特征包括:分级发布级数和分级发布验证测试用例中的至少一个;
线上运维特征包括线上运维动态特征和线上运维静态特征;其中,线上运维动态特征包括:线上监控成熟度、线上问题召回率以及线上自动止损成熟度中的至少一个;线上运维静态特征包括:容器化部署以及自动化运维成熟度中的至少一个。
第二方面,本发明实施例提供了一种软件质量预测装置,包括:
特征数据获取模块,用于获取待预测软件在软件开发流程中的多个类别的特征数据;
第一预处理模块,用于将各所述类别的特征数据进行预处理,并输入到质量预测模型中;所述质量预测模型是根据反向传播神经网络和多个所述类别的历史特征数据构建的模型;
预测模块,用于通过所述质量预测模型对各所述类别的特征数据进行处理,并输出所述待预测软件的预测结果。
在一个可能的设计中,还包括:
历史特征数据获取模块,用于从若干个软件在软件开发过程的历史数据中,获取多个所述类别的历史特征数据;
第二预处理模块,用于对各所述类别的历史特征数据进行预处理;
模型构建模块,用于将预处理后的各所述类别的历史特征数据作为训练样本,基于所述反向传播神经网络进行模型训练,得到所述质量预测模型。
在一个可能的设计中,所述特征数据获取模块包括:
获取子模块,用于获取所述待预测软件在软件开发流程中的多个所述类别的原始数据;
筛选子模块,用于将各所述类别的原始数据分别通过对应的随机森林模型进行筛选,以获取各所述类别的特征数据。
在一个可能的设计中,还包括:
获取模块,用于获取各所述类别最新的历史特征数据;
更新模块,用于所述质量预测模型根据所述最新的历史特征数据进行自学习,以优化更新所述质量预测模型。
第三方面,本发明实施例提供了一种软件质量预测的终端,包括:
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,软件质量预测的终端的结构中包括处理器和存储器,所述存储器用于存储支持软件质量预测的终端执行上述第一方面中软件质量预测的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。软件质量预测的终端还可以包括通信接口,用于软件质量预测的终端与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储软件质量预测的终端所用的计算机软件指令,其包括用于执行上述第一方面中软件质量预测的方法为软件质量预测的终端所涉及的程序。
上述技术方案中的一个技术方案具有如下优点或有益效果:根据影响软件质量的相关指标,综合软件开发流程中的各个类别的特征数据,快速且全面的进行软件质量预测,保证预测准确度。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明实施方式提供的软件质量预测方法的流程图。
图2为本发明实施方式提供的获取特征数据的流程图。
图3为本发明实施方式提供的构建随机森林模型的流程图。
图4为本发明实施方式提供的特征数据获取的结构框图。
图5为本发明实施方式提供的软件质量预测方法的结构框图。
图6为本发明实施方式提供的构建质量预测模型的流程图。
图7为本发明实施方式提供的质量预测模型优化的流程图。
图8为本发明实施方式提供的六个类别特征数据输入质量预测模型的示意图。
图9为本发明实施方式提供的质量预测模型网络结构的结构示意图。
图10为本发明实施方式提供的软件质量预测装置的结构示意图。
图11为本发明一个实施方式提供的软件质量预测装置的结构示意图。
图12为本发明实施方式提供的特征数据获取模块的结构示意图。
图13为本发明一个实施方式提供的软件质量预测装置的结构示意图。
图14为本发明实施方式提供的软件质量预测终端的结构示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
本发明实施例提供了一种软件质量预测方法,如图1所示,包括以下步骤:
S100:获取待预测软件在软件开发流程中的多个类别的特征数据。软件开发流程可以包含软件生命周期中的各个阶段和过程。例如,按软件开发的周期,将与软件质量有关联的特征分为六个类别,包括模块特征、需求特征、开发特征、测试特征、发布上线特征以及线上运维特征。
S200:将各类别的特征数据进行预处理,并输入到质量预测模型中。质量预测模型是根据反向传播神经网络(BP神经网络,Back Propagation Neural Network)和多个类别的历史特征数据构建的模型。历史特征数据可以是在待预测软件之前的各个软件在软件开发流程中记录和存储的数据。
S300:质量预测模型对各类别的特征数据进行处理,并输出待预测软件的预测结果。待测软件的预测结果指标可根据需要进行选择和调整。例如,把软件的质量归结为软件的bug(漏洞)数目,则待测软件的预测结果即为软件中可能存在的bug数目。
在一个实施例中,各类别的特征数据包括动态特征和静态特征。
在一个具体实施方式中,模块特征包括模块动态特征和模块静态特征。模块动态特征包括:模块升级迭代频次、模块故障、模块效率以及质量比中的至少一个(当模块效率与质量比无法兼顾时,更倾向于模块效率的数据)。模块静态特征包括:模块重要程度评分、模块被依赖程度评分以及模块依赖程度评分中的至少一个。需要说明的是,模块可以理解为是软件中的任意功能模块或开发中的小程序区块。
需求特征包括需求动态特征和需求静态特征。需求动态特征包括:需求的复杂程度、需求文档的完善程度以及需求评审次数中的至少一个。需求静态特征包括:需求讨论的有效时间以及需求提出人的指标中的至少一个。
开发特征包括开发动态特征和开发静态特征。开发动态特征包括:代码评审次数以及持续集成(ci,Continuous integration)次数中的至少一个。开发静态特征包括:程序语言、开发时间、开发人员指标、变更代码行数、代码注释行数以及自测覆盖率中的至少一个。需要说明的是,开发人员指标可以包含开发质量(如千行bug数量、ci失败率、线上问题等)、目前职位等级、主要编程语言等方面指标。
测试特征包括测试动态特征和测试静态特征。测试动态特征包括:测试性价比(测试人员项目排期)。测试静态特征包括:自动化测试用例(case)通过率、代码行数覆盖率以及静态代码扫描问题数中的至少一个。
发布上线特征包括发布上线动态特征和发布上线静态特征。发布上线动态特征包括:以往问题拦截率。发布上线静态特征包括:分级发布级数和分级发布验证测试用例(case)中的至少一个。
线上运维特征包括线上运维动态特征和线上运维静态特征。线上运维动态特征包括:线上监控成熟度、线上问题召回率以及线上自动止损成熟度中的至少一个。线上运维静态特征包括:容器化部署以及自动化运维成熟度中的至少一个。
在一个实施例中,如图2所示,获取待预测软件在软件开发流程中的多个类别的特征数据,包括:
S110:获取待预测软件在软件开发流程中的多个类别的原始数据。各个类别的原始数据在待测软件开发过程中随时记录并进行存储,以便后续调取使用。例如,将原始数据存储到数据库或开发全流程数据平台中。
S120:各类别的原始数据分别通过对应的随机森林模型进行筛选评估,以获取各类别的特征数据。由于每个类别的数据不同,因此需要运用不同的随机森林模型进行筛选。各个类别的随机森林模型可以通过软件的历史数据进行训练并构建,也可以根据类别特性选取现有的随机森林模型。
在一个实施方式中,该方法还可包括步骤S130:将获取到的各类别的特征数据进行存储。其中,特征数据可以存储到数据存储***或开发全流程数据平台中。
需要说明的是,每个特征数据均具有特征值和权重,通过特征值和权重的具体参数实现筛选特征数据以及预测模型结果的计算。
在一个应用示例中,步骤S110-S130可由数据采集功能模块实现。通过采集功能模块实现原始数据的获取、筛选评估以及数据存储,以方便数据管理及后续处理。
在一个实施方式中,各类别的特征数据对应的随机森林模型通过以往软件的历史数据进行模型训练和构建。如图3所示,具体构建步骤包括:
S121:获取以往多个软件在软件开发过程中的原始数据作为历史数据;
S122:创建每个类别的初始模型,并利用每个类别的大量丰富的历史数据作为训练样本,对每个类别的初始模型进行训练,从而为每个类别构建一个合适的筛选模型(例如,随机森林模型)。
在一个应用示例中,如图4所示,步骤S110-S130和步骤S121-122也可由不同的功能模块实现。例如,将在软件开发流程中的多个类别的原始数据存储在全流程平台10中。然后通过数据评估***20采用随机森林模型对各个类别的原始数据进行筛选评估。数据获取模块30获取筛选评估后得到的各类别的特征数据。并将各类别的特征数据存储到数据存储***40中。若全流程平台中的原始数据可直接使用,则数据获取模块也可直接从全流程平台中获取特征数据。
在另一应用示例中,如图5所示,根据用户需求,将在软件开发流程中的多个类别的原始数据存储在全流程平台10中。全流程平台10对各类别的原始数据进行筛选评估并形成各类别的特征数据。质量预测模块50对特征数据进行处理,将预测软件质量的预测结果发送至数据存储***40中存储。数据存储***40根据预测结果向全流程平台10发送信息,全流程平台10根据指示将软件发布上线。全流程平台10中存储的各类别的原始数据随着时间不断进行更新,更新后的原始数据可存储在全流程平台10中供质量预测模型50获取,也可将更新后的原始数据存储在数据存储***中供质量预测模型50获取。质量预测模型50可以利用最新数据优化质量预测模型。
在一个实施例中,如图6所示,本实施例的方法还包括步骤:
S10:从若干个软件在软件开发过程的历史数据中,获取多个类别的历史特征数据。
S20:对各类别的历史特征数据进行预处理。预处理的方式可根据需要进行选择。
S30:将预处理后的各类别的历史特征数据作为训练样本,基于反向传播神经网络进行模型训练,得到质量预测模型。
在一个实施方式中,历史特征数据预处理包括:首先,对各类别的历史特征数据进行筛除,去掉历史数据中的脏数据。如去除明显偏离的数据、空数据等。然后,对不同格式的历史特征数据进行提取处理,例如涉及到文本类或图片类数据的计算获取。最后,将历史特征数据转化为历史特征向量,以便于构建质量预测模型的模型训练使用。
在一个具体实施方式中,构建质量预测模型需要选用s型传递函数,并通过误差反向传播函数不断进行调节。并且通过遗传算法对BP网络进行优化,在解析空间中找出较好的探索空间,在用BP网络在较小的探索空间内搜索最优解。其中,在模型训练过程中,可通过经验公式选取隐藏层神经元个数。
s型传递函数为:其中,x表示BP网络的任意层的输入量,f(x)表示BP网络的任意层的输出量。
误差反向传播函数:其中,E表示任意层的误差,O表示该任意层的实际输出结果,t表示该层的目标输出结果,i表示层次编号。
选取隐藏层神经元个数函数:其中,n为输入层神经元个数,m为输出层神经元个数,a为[1,10]之间的常数。
在一个实施例中,如图7所示,本发明实施例还包括步骤:
S40:获取各类别最新的历史特征数据。
S50:质量预测模型根据最新的历史特征数据进行自学习,以优化更新质量预测模型。
由于进行模型训练的数据中只有部分是随着时间不断变化的,因此完成模型训练的质量预测模型只需要和数据库或开发全流程数据平台连通,即可随时获取最新的历史数据和最新的历史特征数据,并通过不断进行自动的数据获取及学习完成质量预测模型的优化更新。
在一个应用示例中,如图8所示,将待测软件的六个类别的特征数据(模块特征m、需求特征n、开发特征d、测试特征t、发布上线特征r以及线上运维特征o)一并输入到质量预测模型中进行处理,质量预测模型对待测软件的质量进行预测,并将预测出的bug数目作为结果输出。
在另一个应用示例中,如图9所示,获取各个类别的原始数据(原始数据包括静态原始数据和动态原始数据)。将每个类别的原始数据筛选评估生成每个类别的特征数据。例如,对模块特征m的静态原始数据msv1、msv2、msv3以及动态原始数据mdv1、mdv2、mdv3处理,形成模块特征m的特征数据。对线上运维特征o的静态原始数据osv1、osv2、osv3以及动态原始数据odv1、odv2、odv3处理,形成线上运维特征o的特征数据。将待测软件的六个类别的特征数据(模块特征m、需求特征n、开发特征d、测试特征t、发布上线特征r以及线上运维特征o)一并输入到质量预测模型的神经网络中进行处理,质量预测模型对待测软件的质量进行预测并生成预测结果。
本发明实施例提供了一种软件质量预测装置,如图10所示,包括:
特征数据获取模块61,用于获取待预测软件在软件开发流程中的多个类别的特征数据。
第一预处理模块62,用于将各类别的特征数据进行预处理,并输入到质量预测模型中。质量预测模型是根据反向传播神经网络和多个类别的历史特征数据构建的模型。
预测模块63,用于通过质量预测模型对各类别的特征数据进行处理,并输出待预测软件的预测结果。
在一个实施例中,如图11所示,软件质量预测装置还包括:
历史特征数据获取模块64,用于从若干个软件在软件开发过程的历史数据中,获取多个类别的历史特征数据。
第二预处理模块65,用于对各类别的历史特征数据进行预处理。
模型构建模块66,用于将预处理后的各类别的历史特征数据作为训练样本,基于反向传播神经网络进行模型训练,得到质量预测模型。
在一个实施例中,如图12所示,特征数据获取模块61包括:
获取子模块611,用于获取待预测软件在软件开发流程中的多个类别的原始数据。
筛选子模块612,用于将各类别的原始数据分别通过对应的随机森林模型进行筛选,以获取各类别的特征数据。
在一个实施例中,如图13所示,软件质量预测装置还包括:
获取模块67,用于获取各类别最新的历史特征数据。
更新模块68,用于质量预测模型根据最新的历史特征数据进行自学习,以优化更新质量预测模型。
本发明实施例提供了一种软件质量预测的终端,如图14所示,包括:
存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。处理器920执行计算机程序时实现上述实施例中的软件质量预测的方法。存储器910和处理器920的数量可以为一个或多个。
通信接口930,用于存储器910和处理器920与外部进行通信。
存储器910可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器910、处理器920、以及通信接口930独立实现,则存储器910、处理器920以及通信接口930可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器910、处理器920以及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。
本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现如实施例一包括的任一所述的软件质量预测的方法。
本发明实施例具有以下有点:1、根据影响软件质量的相关指标,综合软件开发流程中的各个类别的特征数据,能够快速且全面的进行软件质量预测,保证了预测准确度。2、通过梳理软件质量相关各个开发阶段的各类特征指标,基于积累的大量丰富的历史数据,运用随机森林模型为每一个开发阶段选择一个合适的筛选算法,并利用质量预测模型对各个阶段筛选出的特征数据进行综合。解决了因预测指标过于简单导致预测结果不可靠的问题,以及解决了依赖测试人员经验的问题。3、根据软件质量的预测结果不但可以调整软件预测模型测试的重点,优化上线的流程,更能在很好的保证质量的前提下提高软件质量检测效率。4、利用人工智能的模型算法和海量的历史数据,对软件质量问题进行科学预测,不但能很好的模拟领域专家在做此类预测过程中的决策路径,更能方便的应用到其他领域中。通过获取各类别的特征数据科学的进行软件质量预测,能更好的协调配置测试资源,优化开发上线的流程。更快更好的解决上线功能模块和闭环线上问题,从而创造更大的价值。5、通过更新的数据实现对软件预测模型的不断迭代优化,使得软件预测模型通过自学习实现进化,保证软件质量预测结果的准确度。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种软件质量预测方法,其特征在于,包括:
获取待预测软件在软件开发流程中的多个类别的特征数据;
将各所述类别的特征数据进行预处理,并输入到质量预测模型中;所述质量预测模型是根据反向传播神经网络和多个所述类别的历史特征数据构建的模型;
所述质量预测模型对各所述类别的特征数据进行处理,并输出所述待预测软件的预测结果。
2.如权利要求1所述的方法,其特征在于,所述特征数据的类别包含模块特征、需求特征、开发特征、测试特征、发布上线特征以及线上运维特征中的至少一项。
3.如权利要求1所述的方法,其特征在于,还包括:
从若干个软件在软件开发过程的历史数据中,获取多个所述类别的历史特征数据;
对各所述类别的历史特征数据进行预处理;
将预处理后的各所述类别的历史特征数据作为训练样本,基于所述反向传播神经网络进行模型训练,得到所述质量预测模型。
4.如权利要求1所述的方法,其特征在于,获取待预测软件在软件开发流程中的多个类别的特征数据,包括:
获取所述待预测软件在软件开发流程中的多个所述类别的原始数据;
各所述类别的原始数据分别通过对应的随机森林模型进行筛选,以获取各所述类别的特征数据。
5.如权利要求1所述的方法,其特征在于,还包括:
获取各所述类别最新的历史特征数据;
所述质量预测模型根据所述最新的历史特征数据进行自学习,以优化更新所述质量预测模型。
6.如权利要求2所述的方法,其特征在于,各所述类别的特征数据包括动态特征和静态特征,具体包括以下至少一项:
模块特征包括模块动态特征和模块静态特征;其中,模块动态特征包括:模块升级迭代频次、模块故障、模块效率以及质量比中的至少一个;模块静态特征包括:模块重要程度评分、模块被依赖程度评分以及模块依赖程度评分中的至少一个;
需求特征包括需求动态特征和需求静态特征;其中,需求动态特征包括:需求的复杂程度、需求文档的完善程度以及需求评审次数中的至少一个;需求静态特征包括:需求讨论的有效时间以及需求提出人的指标中的至少一个;
开发特征包括开发动态特征和开发静态特征;其中,开发动态特征包括:代码评审次数以及持续集成次数中的至少一个;开发静态特征包括:程序语言、开发时间、开发人员指标、变更代码行数、代码注释行数以及自测覆盖率中的至少一个;
测试特征包括测试动态特征和测试静态特征;其中,测试动态特征包括:测试性价比;测试静态特征包括:自动化测试用例通过率、代码行数覆盖率以及静态代码扫描问题数中的至少一个;
发布上线特征包括发布上线动态特征和发布上线静态特征;其中,发布上线动态特征包括:以往问题拦截率;发布上线静态特征包括:分级发布级数和分级发布验证测试用例中的至少一个;
线上运维特征包括线上运维动态特征和线上运维静态特征;其中,线上运维动态特征包括:线上监控成熟度、线上问题召回率以及线上自动止损成熟度中的至少一个;线上运维静态特征包括:容器化部署以及自动化运维成熟度中的至少一个。
7.一种软件质量预测装置,其特征在于,包括:
特征数据获取模块,用于获取待预测软件在软件开发流程中的多个类别的特征数据;
第一预处理模块,用于将各所述类别的特征数据进行预处理,并输入到质量预测模型中;所述质量预测模型是根据反向传播神经网络和多个所述类别的历史特征数据构建的模型;
预测模块,用于通过所述质量预测模型对各所述类别的特征数据进行处理,并输出所述待预测软件的预测结果。
8.如权利要求7所述的装置,其特征在于,还包括:
历史特征数据获取模块,用于从若干个软件在软件开发过程的历史数据中,获取多个所述类别的历史特征数据;
第二预处理模块,用于对各所述类别的历史特征数据进行预处理;
模型构建模块,用于将预处理后的各所述类别的历史特征数据作为训练样本,基于所述反向传播神经网络进行模型训练,得到所述质量预测模型。
9.如权利要求7所述的装置,其特征在于,所述特征数据获取模块包括:
获取子模块,用于获取所述待预测软件在软件开发流程中的多个所述类别的原始数据;
筛选子模块,用于将各所述类别的原始数据分别通过对应的随机森林模型进行筛选,以获取各所述类别的特征数据。
10.如权利要求7所述的装置,其特征在于,还包括:
获取模块,用于获取各所述类别最新的历史特征数据;
更新模块,用于所述质量预测模型根据所述最新的历史特征数据进行自学习,以优化更新所述质量预测模型。
11.一种软件质量预测终端,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至6中任一项所述的方法。
12.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811088039.8A CN109240929A (zh) | 2018-09-18 | 2018-09-18 | 软件质量预测方法、装置、终端和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811088039.8A CN109240929A (zh) | 2018-09-18 | 2018-09-18 | 软件质量预测方法、装置、终端和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109240929A true CN109240929A (zh) | 2019-01-18 |
Family
ID=65059708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811088039.8A Pending CN109240929A (zh) | 2018-09-18 | 2018-09-18 | 软件质量预测方法、装置、终端和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240929A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008112A (zh) * | 2019-02-11 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 模型训练方法和装置、业务测试方法和装置 |
CN110750447A (zh) * | 2019-09-18 | 2020-02-04 | 平安科技(深圳)有限公司 | 软件测试方法及相关设备 |
CN111177011A (zh) * | 2020-01-02 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 软件免测的预测方法、装置、设备及存储介质 |
CN111475137A (zh) * | 2020-04-17 | 2020-07-31 | 中国铁建重工集团股份有限公司 | 一种软件开发需求预测的方法、***及设备 |
CN111752833A (zh) * | 2020-06-23 | 2020-10-09 | 南京领行科技股份有限公司 | 一种软件质量体系准出方法、装置、服务器及存储介质 |
WO2020233021A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安普惠企业管理有限公司 | 基于智能决策的测试结果分析方法及相关装置 |
CN112235358A (zh) * | 2020-09-23 | 2021-01-15 | 建信金融科技有限责任公司 | 数据的采集方法、装置、电子设备及计算机可读存储介质 |
CN112328490A (zh) * | 2020-11-18 | 2021-02-05 | 恩亿科(北京)数据科技有限公司 | 软件***研发质量的评价方法、***、存储介质及电子设备 |
CN112395203A (zh) * | 2020-11-30 | 2021-02-23 | 京东数字科技控股股份有限公司 | 程序测试方法、装置及存储介质 |
CN112463643A (zh) * | 2020-12-16 | 2021-03-09 | 郑州航空工业管理学院 | 一种软件质量预测方法 |
CN112732565A (zh) * | 2020-12-31 | 2021-04-30 | 星环信息科技(上海)股份有限公司 | 一种软件持续集成的评估方法、计算机设备及介质 |
CN112884386A (zh) * | 2021-04-29 | 2021-06-01 | 北京国舜宸锋科技有限公司 | 一种软件开发全生命周期安全管理成效评估方法和*** |
WO2021171388A1 (ja) * | 2020-02-26 | 2021-09-02 | 日本電気株式会社 | 支援情報生成装置、支援情報生成方法、およびプログラム記録媒体 |
CN113391987A (zh) * | 2021-06-22 | 2021-09-14 | 北京仁科互动网络技术有限公司 | 一种上线软件***的质量预测方法及装置 |
CN114816963A (zh) * | 2022-06-28 | 2022-07-29 | 南昌航空大学 | 嵌入式软件质量评估方法、***、计算机及可读存储介质 |
CN112181659B (zh) * | 2020-10-09 | 2023-07-18 | 中国人民解放军国防科技大学 | 云仿真内存资源预测模型构建方法与内存资源预测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506938A (zh) * | 2017-09-05 | 2017-12-22 | 江苏电力信息技术有限公司 | 一种基于机器学习的物料质量评估方法 |
CN107577942A (zh) * | 2017-08-22 | 2018-01-12 | 中国民航大学 | 一种用于Android恶意软件检测的混合特征筛选方法 |
CN107944274A (zh) * | 2017-12-18 | 2018-04-20 | 华中科技大学 | 一种基于宽度学***台恶意应用离线检测方法 |
CN108256260A (zh) * | 2018-02-05 | 2018-07-06 | 北京科技大学 | 一种基于极限学习机的连铸坯质量预测方法 |
CN108334781A (zh) * | 2018-03-07 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 病毒检测方法、装置、计算机可读存储介质和计算机设备 |
-
2018
- 2018-09-18 CN CN201811088039.8A patent/CN109240929A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577942A (zh) * | 2017-08-22 | 2018-01-12 | 中国民航大学 | 一种用于Android恶意软件检测的混合特征筛选方法 |
CN107506938A (zh) * | 2017-09-05 | 2017-12-22 | 江苏电力信息技术有限公司 | 一种基于机器学习的物料质量评估方法 |
CN107944274A (zh) * | 2017-12-18 | 2018-04-20 | 华中科技大学 | 一种基于宽度学***台恶意应用离线检测方法 |
CN108256260A (zh) * | 2018-02-05 | 2018-07-06 | 北京科技大学 | 一种基于极限学习机的连铸坯质量预测方法 |
CN108334781A (zh) * | 2018-03-07 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 病毒检测方法、装置、计算机可读存储介质和计算机设备 |
Non-Patent Citations (1)
Title |
---|
窦立阳等: "基于BP人工神经网络的软件质量评估", 《计算机与数字工程》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008112A (zh) * | 2019-02-11 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 模型训练方法和装置、业务测试方法和装置 |
CN110008112B (zh) * | 2019-02-11 | 2023-04-28 | 创新先进技术有限公司 | 模型训练方法和装置、业务测试方法和装置 |
WO2020233021A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安普惠企业管理有限公司 | 基于智能决策的测试结果分析方法及相关装置 |
CN110750447A (zh) * | 2019-09-18 | 2020-02-04 | 平安科技(深圳)有限公司 | 软件测试方法及相关设备 |
CN110750447B (zh) * | 2019-09-18 | 2023-07-25 | 平安科技(深圳)有限公司 | 软件测试方法及相关设备 |
CN111177011A (zh) * | 2020-01-02 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 软件免测的预测方法、装置、设备及存储介质 |
JPWO2021171388A1 (zh) * | 2020-02-26 | 2021-09-02 | ||
WO2021171388A1 (ja) * | 2020-02-26 | 2021-09-02 | 日本電気株式会社 | 支援情報生成装置、支援情報生成方法、およびプログラム記録媒体 |
JP7501609B2 (ja) | 2020-02-26 | 2024-06-18 | 日本電気株式会社 | 支援情報生成装置 |
CN111475137A (zh) * | 2020-04-17 | 2020-07-31 | 中国铁建重工集团股份有限公司 | 一种软件开发需求预测的方法、***及设备 |
CN111752833A (zh) * | 2020-06-23 | 2020-10-09 | 南京领行科技股份有限公司 | 一种软件质量体系准出方法、装置、服务器及存储介质 |
CN111752833B (zh) * | 2020-06-23 | 2022-08-26 | 南京领行科技股份有限公司 | 一种软件质量体系准出方法、装置、服务器及存储介质 |
CN112235358A (zh) * | 2020-09-23 | 2021-01-15 | 建信金融科技有限责任公司 | 数据的采集方法、装置、电子设备及计算机可读存储介质 |
CN112181659B (zh) * | 2020-10-09 | 2023-07-18 | 中国人民解放军国防科技大学 | 云仿真内存资源预测模型构建方法与内存资源预测方法 |
CN112328490A (zh) * | 2020-11-18 | 2021-02-05 | 恩亿科(北京)数据科技有限公司 | 软件***研发质量的评价方法、***、存储介质及电子设备 |
CN112395203A (zh) * | 2020-11-30 | 2021-02-23 | 京东数字科技控股股份有限公司 | 程序测试方法、装置及存储介质 |
CN112463643A (zh) * | 2020-12-16 | 2021-03-09 | 郑州航空工业管理学院 | 一种软件质量预测方法 |
CN112732565A (zh) * | 2020-12-31 | 2021-04-30 | 星环信息科技(上海)股份有限公司 | 一种软件持续集成的评估方法、计算机设备及介质 |
CN112732565B (zh) * | 2020-12-31 | 2023-07-18 | 星环信息科技(上海)股份有限公司 | 一种软件持续集成的评估方法、计算机设备及介质 |
CN112884386A (zh) * | 2021-04-29 | 2021-06-01 | 北京国舜宸锋科技有限公司 | 一种软件开发全生命周期安全管理成效评估方法和*** |
CN113391987A (zh) * | 2021-06-22 | 2021-09-14 | 北京仁科互动网络技术有限公司 | 一种上线软件***的质量预测方法及装置 |
CN114816963B (zh) * | 2022-06-28 | 2022-09-20 | 南昌航空大学 | 嵌入式软件质量评估方法、***、计算机及可读存储介质 |
CN114816963A (zh) * | 2022-06-28 | 2022-07-29 | 南昌航空大学 | 嵌入式软件质量评估方法、***、计算机及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240929A (zh) | 软件质量预测方法、装置、终端和计算机可读存储介质 | |
Yang et al. | A systematic literature review of requirements modeling and analysis for self-adaptive systems | |
CN109800885A (zh) | 针对黑盒机器学习模型的规则确定 | |
CN108090516A (zh) | 自动生成机器学习样本的特征的方法及*** | |
CN108121795A (zh) | 用户行为预测方法及装置 | |
CN109189750A (zh) | 数据分析工作流的运行方法、数据分析***及存储介质 | |
CN110111156A (zh) | 一种客户流失预警方法、***、介质和电子设备 | |
CN107885796A (zh) | 信息推荐方法及装置、设备 | |
CN110163723A (zh) | 基于产品特征的推荐方法、装置、计算机设备及存储介质 | |
US11086754B2 (en) | Automated feedback-based application optimization | |
CN110222171A (zh) | 一种分类模型应用、分类模型训练方法及装置 | |
US10963802B1 (en) | Distributed decision variable tuning system for machine learning | |
CN110009242A (zh) | 基于神经网络的评标方法及装置、存储介质 | |
CN103440199B (zh) | 测试引导方法和装置 | |
Li et al. | Zen-ReqOptimizer: a search-based approach for requirements assignment optimization | |
US20150018060A1 (en) | System and method for decision making in strategic environments | |
Bastinos et al. | Multi-criteria decision making in ontologies | |
Mukunthu et al. | Practical automated machine learning on Azure: using Azure machine learning to quickly build AI solutions | |
Lin et al. | [Retracted] Probabilistic Hesitant Fuzzy Methods for Prioritizing Distributed Stream Processing Frameworks for IoT Applications | |
Kropp et al. | Data Mining Design and Systematic Modelling. | |
Brandl et al. | AMICAI: a method based on risk analysis to integrate responsible research and innovation into the work of research and innovation practitioners | |
CN116662527A (zh) | 用于生成学习资源的方法及相关产品 | |
US11681511B2 (en) | Systems and methods for building and deploying machine learning applications | |
US20230244967A1 (en) | Cognitive Agent Composition Platform | |
Wirsch | Analysis of a top-down bottom-up data analysis framework and software architecture design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190118 |
|
RJ01 | Rejection of invention patent application after publication |