CN115562981A - 基于机器学习的软件质量评估方法 - Google Patents
基于机器学习的软件质量评估方法 Download PDFInfo
- Publication number
- CN115562981A CN115562981A CN202211196431.0A CN202211196431A CN115562981A CN 115562981 A CN115562981 A CN 115562981A CN 202211196431 A CN202211196431 A CN 202211196431A CN 115562981 A CN115562981 A CN 115562981A
- Authority
- CN
- China
- Prior art keywords
- software
- software quality
- data
- historical
- quality
- 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
Images
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/3604—Software analysis for verifying properties of programs
-
- 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/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- 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/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于机器学习的软件质量评估方法,该方法包括以下步骤:获取历史软件质量影响数据,并对所述历史软件质量影响数据进行预处理,以及对预处理后的历史软件质量影响数据进行特征提取,以生成训练样本集;根据所述训练样本集进行模型的训练,以得到软件质量评估模型;获取待评估软件的质量影响数据,并对所述待评估软件的质量影响数据进行特征提取,以得到待评估特征数据,以及将所述待评估特征数据输入到所述软件质量评估模型中,以通过所述软件质量评估模型输出待评估软件的质量评估值。能够节约软件质量评估过程中所需耗费的人力资源,同时,有效提高软件质量评估结果的准确性。
Description
技术领域
本申请涉及软件评估技术领域,涉及一种基于机器学习的软件质量评估方法。
背景技术
相关技术中,在进行软件质量评估时,多采用加权计算影响软件质量的影响因素,并根据计算结果生成软件质量评分系统;即言,通过人工来每个影响软件质量的影响因素的权重,以根据调整后的权重进行软件质量的评估。
然而,这种方式设置的权重值在不同软件之间无法普遍适用;对于不同软件的质量评估,需要人工对权重进行重新调整,工作量巨大;并且,由于人为的不确定性,当人工判断失误时,将导致最终评估结果不准确。
发明内容
鉴于上述问题,本申请提供了一种基于机器学习的软件质量评估方法。
为实现上述目的,发明人提供了基于机器学习的软件质量评估方法,包括以下步骤:获取历史软件质量影响数据,并对所述历史软件质量影响数据进行预处理,以及对预处理后的历史软件质量影响数据进行特征提取,以生成训练样本集;根据所述训练样本集进行模型的训练,以得到软件质量评估模型;获取待评估软件的质量影响数据,并对所述待评估软件的质量影响数据进行特征提取,以得到待评估特征数据,以及将所述待评估特征数据输入到所述软件质量评估模型中,以通过所述软件质量评估模型输出待评估软件的质量评估值。
区别于现有技术,上述技术方案通过采集历史软件质量影响数据,并根据历史软件质量影响数据生成训练样本集,以及根据训练样本集训练得到软件质量评估模型;如此,得到的软件质量评估模型可以适用于各种软件,在面对不同软件时,无需人工对参数进行调整,节约人力资源;同时,有效提高软件质量评估结果的准确性。
在一些实施例中,所述历史软件质量影响数据包括:需求的覆盖度、测试用例执行信息、bug的修复信息和源代码质量评估信息。
在一些实施例中,所述需求的覆盖度的获取包括:提取需求规格说明书中的测试需求;判断每一测试需求是否存在对应的测试用例,并根据判断结果计算所述需求的覆盖度。
在一些实施例中,所述测试用例执行信息包括:测试用例执行率、测试用例累计执行通过率和测试用例首次执行通过率。
在一些实施例中,所述bug的修复信息包括:bug修复率、bug累计发现数量、bug累计修复数量、每日bug发现数量和每日bug修复数量。
在一些实施例中,所述源代码质量评估信息包括:软件单元测试覆盖度、软件源代码质量静态分析信息和源代码注释率。
在一些实施例中,对所述历史软件质量影响数据进行预处理包括:对所述历史软件质量影响数据中缺失的数据进行平移拼接补全;对于任一历史软件质量影响数据,判断所述历史软件质量影响数据中空值的出现概率是否大于概率阈值;如果是,则删除该历史软件质量影响数据;如果否,则将所述空值归为0。
在一些实施例中,对预处理后的历史软件质量影响数据进行特征提取,包括:对所有预处理后的历史软件质量影响数据中的值进行统计,以得到数据统计值,并计算所述预处理后的历史软件质量影响数据中的值的差值、均值和方差。
在一些实施例中,在对预处理后的历史软件质量影响数据进行特征提取,之后,还包括:对特征提取后的数据进行归一化处理,以消除量纲影响。
在一些实施例中,所述软件质量评估模型为回归预测模型,所述待评估软件的质量评估值为待评估软件质量达标所需的预测周期值,其中,根据所述训练样本集进行模型的训练,包括:对归一化处理后的数据进行网格搜索,以获取所述回归预测模型的最优参数集;使用五折交叉验证进行模型的训练。
上述发明内容相关记载仅是本申请技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本申请的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本申请的上述目的及其它目的、特征和优点能够更易于理解,以下结合本申请的具体实施方式及附图进行说明。
附图说明
附图仅用于示出本申请具体实施方式以及其他相关内容的原理、实现方式、应用、特点以及效果等,并不能认为是对本申请的限制。
在说明书附图中:
图1为本发明实施例的基于机器学习的软件质量评估方法的流程示意图。
具体实施方式
为详细说明本申请可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本申请中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
除非另有定义,本文所使用的技术术语的含义与本申请所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本申请。
在本申请的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如A和/或B,表示:存在A,存在B,以及同时存在A和B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。
在本申请中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。
在没有更多限制的情况下,在本申请中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
与《审查指南》中的理解相同,在本申请中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本申请实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
在本申请实施例的描述中,所使用的与空间相关的表述,诸如“中心”“纵向”“横向”“长度”“宽度”“厚度”“上”“下”“前”“后”“左”“右”“竖直”“水平”“垂直”“顶”“底”“内”“外”“顺时针”“逆时针”“轴向”“径向”“周向”等,所指示的方位或位置关系是基于具体实施例或附图所示的方位或位置关系,仅是为了便于描述本申请的具体实施例或便于读者理解,而不是指示或暗示所指的装置或部件必须具有特定的位置、特定的方位、或以特定的方位构造或操作,因此不能理解为对本申请实施例的限制。
除非另有明确的规定或限定,在本申请实施例的描述中,所使用的“安装”“相连”“连接”“固定”“设置”等用语应做广义理解。例如,所述“连接”可以是固定连接,也可以是可拆卸连接,或成一体设置;其可以是机械连接,也可以是电连接,也可以是通信连接;其可以是直接相连,也可以通过中间媒介间接相连;其可以是两个元件内部的连通或两个元件的相互作用关系。对于本申请所属技术领域的技术人员而言,可以根据具体情况理解上述用语在本申请实施例中的具体含义。
请参阅图1,图1为根据本发明实施例的基于机器学习的软件质量评估方法的流程示意图,如图1所示,该基于机器学习的软件质量评估方法包括以下步骤:
S101,获取历史软件质量影响数据,并对历史软件质量影响数据进行预处理,以及对预处理后的历史软件质量影响数据进行特征提取,以生成训练样本集。
也就是说,首先,对历史软件质量影响数据进行搜集,并根据搜集到的历史软件质量影响数据进行预处理和特征提取,以生成用于模型训练的训练样本集。
其中,历史软件质量影响数据包含的信息可以有多种。例如,历史软件质量影响数据可以包括需求的覆盖度和测试用例的执行次数;或者,历史软件质量影响数据可以包括测试用例的执行次数和bug的修补效率(即bug从发现到修复之间的时间间隔)等;本发明并不以此为限。
在一些实施例中,历史软件质量影响数据包括:需求的覆盖度、测试用例执行信息、bug的修复信息和源代码质量评估信息。
在一些实施例中,需求的覆盖度的获取包括:提取需求规格说明书中的测试需求;判断每一测试需求是否存在对应的测试用例,并根据判断结果计算所述需求的覆盖度。
即言,需求的覆盖度即测试用例覆盖需求的程度;其中的需求是从需求规格说明书中提取的测试需求;优选地,每一条测试需求对应一定的范围,差不多2条用例覆盖一条测试需求(1条为正常用例,1条为异常用例),而需求覆盖度要达到100%为满足要求。
在一些实施例中,测试用例执行信息包括:测试用例执行率、测试用例累计执行通过率和测试用例首次执行通过率。其中,测试用例执行率的计算方式为测试用例执行率=已执行测试用例数/测试用例总数,该测试用例执行率可以判断测试的进度;测试用例累计执行通过率的计算方式为测试用例累计执行通过率=已通过测试用例数/已执行测试用例数,该测试用例累计执行通过率可以判断软件的质量是否符合质量目标;测试用例首次执行通过率的计算方式为测试用例首次执行通过率=首次执行通过测试用例数/已执行测试用例数,该测试用例首次执行通过率可以判断提测的软件代码质量的好坏,可以理解,通过率越高,则代码质量越高。
在一些实施例中,bug的修复信息包括:bug修复率、bug累计发现数量、bug累计修复数量、每日bug发现数量和每日bug修复数量。其中,bug修复率的计算方式为bug修复率=已修复bug数/bug总数,该bug修复率可以判断软件是否具备发布的条件;优选地,bug修复率还可进一步细分为P1bug修复率和P2bug修复率;可以理解,一个软件并非是所有bug全部修复完成才能够被允许上线的。有些问题可以放到下一版本进行修复;此时P1bug修复率和P2bug修复率就派上了用场;这两个细分的修复率可以用来表示上线前必须修复的bug的修复进度和上线前非必须修复的bug的修复进度。另外,bug累计发现数量、bug累计修复数量、每日bug发现数量和每日bug修复数量还可以生成每一数据所对应的曲线图;以判断bug是否收敛,是否能够进入下一阶段的测试。
在一些实施例中,源代码质量评估信息包括:软件单元测试覆盖度、软件源代码质量静态分析信息和源代码注释率。其中,软件源代码质量静态分析信息可以包括:不良行为信息、恶意代码信息、性能问题、安全性问题、国际化问题和线程问题;源代码注释率可以通过正则的方式提取源代码注释内容与函数之间的匹配度,并进行关联记为源代码有效注释率,计算方式为源代码有效注释率=源代码有效注释数/函数总数。
其中,对历史软件质量影响数据进行预处理的方式可以有多种。
在一些实施例中,对历史软件质量影响数据进行预处理包括:对历史软件质量影响数据中缺失的数据进行平移拼接补全;对于任一历史软件质量影响数据,判断历史软件质量影响数据中空值的出现概率是否大于概率阈值;如果是,则删除该历史软件质量影响数据;如果否,则将空值归为0。
作为一种示例,在获取到历史软件质量影响数据之后,首先,对缺失的数据使用平移拼接进行补全;接着,针对None值,将其全部归0,而对于None出现比例大于50%的数据,则直接删除。
在一些实施例中,对预处理后的历史软件质量影响数据进行特征提取,包括:对所有预处理后的历史软件质量影响数据中的值进行统计,以得到数据统计值,并计算预处理后的历史软件质量影响数据中的值的差值、均值和方差。
在一些实施例中,在对预处理后的历史软件质量影响数据进行特征提取,之后,还包括:对特征提取后的数据进行归一化处理,以消除量纲影响。也就是说,为了消除指标之间的量纲影响,需要对数据进行标准化处理,以解决数据指标之间的可比性;优选地,可使用Standardization进行归一化,其量化后的特征将服从标准正态分布其中,μ表示特征的均值,δ表示特征的标准差。
S102,根据训练样本集进行模型的训练,以得到软件质量评估模型。
在一些实施例中,软件质量评估模型为回归预测模型,待评估软件的质量评估值为待评估软件质量达标所需的预测周期值,其中,根据训练样本集进行模型的训练,包括:对归一化处理后的数据进行网格搜索,以获取回归预测模型的最优参数集;使用五折交叉验证进行模型的训练。
即言,在本实施例中,软件质量评估模型选择回归预测模型;需要说明的是,回归预测模型可以包括xgboost、LightGBM等,本发明并不以此为限;然后,在训练之前,将归一化后的数据通过网格搜索获取回归预测模型的最优参数集,接着,将历史软件质量影响数据的特征数据作为训练数据,使用五折交叉验证进行模型的训练,以得到最终软件质量评估模型。
S103,获取待评估软件的质量影响数据,并对待评估软件的质量影响数据进行特征提取,以得到待评估特征数据,以及将待评估特征数据输入到软件质量评估模型中,以通过软件质量评估模型输出待评估软件的质量评估值。
也就是说,在要进行软件的质量评估时,首先获取待评估软件的质量影响数据;接着,对待评估软件的质量影响数据进行特征提取,以得到待评估特征数据;然后,将待评估特征数据输入到软件质量评估模型中,以得到相应的结果。可以理解,当采用如上述方式的回归预测模型,则软件质量评估模型得出的结果即为软件质量达标的预期周期。
最后需要说明的是,尽管在本申请的说明书文字及附图中已经对上述各实施例进行了描述,但并不能因此限制本申请的专利保护范围。凡是基于本申请的实质理念,利用本申请说明书文字及附图记载的内容所作的等效结构或等效流程替换或修改产生的技术方案,以及直接或间接地将以上实施例的技术方案实施于其他相关的技术领域等,均包括在本申请的专利保护范围之内。
Claims (10)
1.一种基于机器学习的软件质量评估方法,其特征在于,包括以下步骤:
获取历史软件质量影响数据,并对所述历史软件质量影响数据进行预处理,以及对预处理后的历史软件质量影响数据进行特征提取,以生成训练样本集;
根据所述训练样本集进行模型的训练,以得到软件质量评估模型;
获取待评估软件的质量影响数据,并对所述待评估软件的质量影响数据进行特征提取,以得到待评估特征数据,以及将所述待评估特征数据输入到所述软件质量评估模型中,以通过所述软件质量评估模型输出待评估软件的质量评估值。
2.如权利要求1所述的基于机器学习的软件质量评估方法,其特征在于,所述历史软件质量影响数据包括:需求的覆盖度、测试用例执行信息、bug的修复信息和源代码质量评估信息。
3.如权利要求2所述的基于机器学习的软件质量评估方法,其特征在于,所述需求的覆盖度的获取包括:
提取需求规格说明书中的测试需求;
判断每一测试需求是否存在对应的测试用例,并根据判断结果计算所述需求的覆盖度。
4.如权利要求2所述的基于机器学习的软件质量评估方法,其特征在于,所述测试用例执行信息包括:测试用例执行率、测试用例累计执行通过率和测试用例首次执行通过率。
5.如权利要求2所述的基于机器学习的软件质量评估方法,其特征在于,所述bug的修复信息包括:bug修复率、bug累计发现数量、bug累计修复数量、每日bug发现数量和每日bug修复数量。
6.如权利要求2所述的基于机器学习的软件质量评估方法,其特征在于,所述源代码质量评估信息包括:软件单元测试覆盖度、软件源代码质量静态分析信息和源代码注释率。
7.如权利要求1所述的基于机器学习的软件质量评估方法,其特征在于,对所述历史软件质量影响数据进行预处理包括:
对所述历史软件质量影响数据中缺失的数据进行平移拼接补全;
对于任一历史软件质量影响数据,判断所述历史软件质量影响数据中空值的出现概率是否大于概率阈值;
如果是,则删除该历史软件质量影响数据;
如果否,则将所述空值归为0。
8.如权利要求1所述的基于机器学习的软件质量评估方法,其特征在于,对预处理后的历史软件质量影响数据进行特征提取,包括:
对所有预处理后的历史软件质量影响数据中的值进行统计,以得到数据统计值,并计算所述预处理后的历史软件质量影响数据中的值的差值、均值和方差。
9.如权利要求1所述的基于机器学习的软件质量评估方法,其特征在于,在对预处理后的历史软件质量影响数据进行特征提取,之后,还包括:
对特征提取后的数据进行归一化处理,以消除量纲影响。
10.如权利要求9所述的基于机器学习的软件质量评估方法,其特征在于,所述软件质量评估模型为回归预测模型,所述待评估软件的质量评估值为待评估软件质量达标所需的预测周期值,其中,根据所述训练样本集进行模型的训练,包括:
对归一化处理后的数据进行网格搜索,以获取所述回归预测模型的最优参数集;
使用五折交叉验证进行模型的训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211196431.0A CN115562981A (zh) | 2022-09-29 | 2022-09-29 | 基于机器学习的软件质量评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211196431.0A CN115562981A (zh) | 2022-09-29 | 2022-09-29 | 基于机器学习的软件质量评估方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115562981A true CN115562981A (zh) | 2023-01-03 |
Family
ID=84742664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211196431.0A Pending CN115562981A (zh) | 2022-09-29 | 2022-09-29 | 基于机器学习的软件质量评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115562981A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827621A (zh) * | 2024-03-06 | 2024-04-05 | 泰安北航科技园信息科技有限公司 | 一种嵌入式软件自动化测试平台系统及方法 |
-
2022
- 2022-09-29 CN CN202211196431.0A patent/CN115562981A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827621A (zh) * | 2024-03-06 | 2024-04-05 | 泰安北航科技园信息科技有限公司 | 一种嵌入式软件自动化测试平台系统及方法 |
CN117827621B (zh) * | 2024-03-06 | 2024-05-10 | 泰安北航科技园信息科技有限公司 | 一种嵌入式软件自动化测试平台系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090567B (zh) | 电力通信系统故障诊断方法及装置 | |
CN108256074B (zh) | 校验处理的方法、装置、电子设备和存储介质 | |
TWI723528B (zh) | 電腦執行的事件風險評估方法及裝置、電腦可讀儲存媒體以及計算設備 | |
US8019734B2 (en) | Statistical determination of operator error | |
US7844641B1 (en) | Quality management in a data-processing environment | |
CN105824756B (zh) | 一种基于代码依赖关系的过时需求自动检测方法及系统 | |
CN112231431B (zh) | 一种异常地址识别方法、设备和计算机可读存储介质 | |
WO2023029065A1 (zh) | 数据集质量评估方法、装置、计算机设备及存储介质 | |
CN113837596A (zh) | 一种故障确定方法、装置、电子设备及存储介质 | |
CN115562981A (zh) | 基于机器学习的软件质量评估方法 | |
KR20220097822A (ko) | 비정형 기업 데이터를 이용한 기업성장 예측 시스템 | |
CN117217515A (zh) | 基于数据安全能力成熟度模型的数据安全风险评估方法 | |
WO2011149608A1 (en) | Identifying and using critical fields in quality management | |
CN113836297B (zh) | 文本情感分析模型的训练方法及装置 | |
CN112612882B (zh) | 检阅报告生成方法、装置、设备和存储介质 | |
Wang et al. | A knowledge discovery case study of software quality prediction: Isbsg database | |
Amankwah et al. | Fast bug detection algorithm for identifying potential vulnerabilities in juliet test cases | |
CN115237970A (zh) | 数据预测方法、装置、设备、存储介质及程序产品 | |
CN110570301B (zh) | 风险识别方法、装置、设备及介质 | |
KR20160088737A (ko) | 토픽 모델과 다중 특성 기반의 버그 정정 개발자 추천 및 버그 심각성 예측 시스템 및 방법 | |
CN117151117B (zh) | 电网轻量级非结构化文档内容自动识别方法、装置及介质 | |
KR102699113B1 (ko) | 예측 모델을 이용하여 대상기업의 esg 활동데이터를 예측하여 상기 대상기업의 esg 활동을 진단하는 장치 및 방법 | |
CN116187299B (zh) | 一种科技项目文本数据检定评价方法、系统及介质 | |
US20230359826A1 (en) | Computer-implemented system and method to perform natural language processing entity research and resolution | |
CN111930545B (zh) | Sql脚本处理方法、装置和服务器 |
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 |