掌桥专利:专业的专利平台
掌桥专利
首页

一种代码缺陷状态确定方法、装置、电子设备及介质

文献发布时间:2023-06-19 12:24:27


一种代码缺陷状态确定方法、装置、电子设备及介质

技术领域

本申请涉及金融科技(Fintech)的信息技术,涉及但不限于一种代码缺陷确定方法、装置、电子设备及介质。

背景技术

随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向科技金融转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。

在实际应用中,金融行业中各种金融业务的稳定执行、金融数据安全的有力保障,都需要通过健壮的代码数据才能实现,因此,对代码数据的缺陷状态或质量的精确评估,非常重要。

在相关技术中,对代码数据的缺陷状态或质量的评估,只能在代码数据的指标对应的特征值满足正态分布的条件下才能开展,然而,这种评估方法,对代码数据的指标对应的特征值分布要求较高,从而无法实现对任意代码数据的缺陷状态的评估和确定。

发明内容

本申请实施例提供了一种代码缺陷状态确定方法、装置、电子设备及介质。本申请实施例提供的代码缺陷状态确定方法,在代码数据的至少一种指标数据为任意分布的情况下,都可以确定代码数据的缺陷状态,从而实现了对任意代码数据缺陷状态的灵活评估。

本申请实施例提供的技术方案是这样实现的:

一种代码缺陷状态确定方法,所述方法包括:

确定项目数据的至少一种指标数据;其中,所述项目数据,包括实现项目功能的至少一个版本的代码数据;所述指标数据,包括所述项目数据的质量缺陷数据;

对所述至少一种指标数据进行聚类处理,得到聚类结果;

基于所述聚类结果,确定所述代码数据的缺陷状态。

本申请实施例还提供了一种代码缺陷状态确定装置,所述装置包括:

第一确定模块,用于确定项目数据的至少一种指标数据;其中,所述项目数据,包括实现项目功能的至少一个版本的代码数据;所述指标数据,包括所述项目数据的质量缺陷数据;

处理模块,用于对所述至少一种指标数据进行聚类处理,得到聚类结果;

第二确定模块,用于基于所述聚类结果,确定所述代码数据的缺陷状态。

本申请实施例还提供了一种电子设备,所述电子设备包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的所述可执行指令时,实现如前任一项所述的代码缺陷状态确定方法。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有可执行指令,所述可执行指令被处理器执行时,能够实现如钱任一项所述的代码缺陷状态确定方法。

在本申请实施例中,在确定包括至少一个版本的代码数据的项目数据的至少一种指标数据之后,在至少一种指标数据的分布为任意随机分布状态的情况下,对至少一种指标数据进行聚类处理,得到的聚类结果,依然可以客观而全面的反应出不同的指标数据之间、不同版本的相同指标数据之间的分布状态,在此基础上,基于聚类结果确定的代码数据的缺陷状态,可以客观而精准的反映出项目数据中缺陷的实际分布状态、以及不同版本的代码数据中缺陷的变化趋势,从而能够客观而全面的反映出至少一个版本的代码数据的实际缺陷状态;并且,由于本申请实施例提供的代码缺陷状态确定方法对至少一种指标数据的分布并未限制,因此,本申请实施例提供的代码缺陷状态确定方法,能够实现对任意代码数据的缺陷状态的评估,从而能够在更广泛的场景中得以应用。

附图说明

图1为本申请实施例提供的第一种代码缺陷状态确定方法的流程示意图;

图2为本申请实施例提供的第二种代码缺陷状态确定方法的流程示意图;

图3为本申请实施例提供的第三种代码缺陷状态确定方法的流程示意图;

图4为本申请实施例提供的代码缺陷状态确定装置的结构示意图;

图5为本申请实施例提供的电子设备的结构示意图。

具体实施方式

以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。

需要说明的是,在本申请实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。

例如,本申请实施例提供的代码缺陷状态确定方法包含了一系列的步骤,但是本申请实施例提供的代码缺陷状态确定方法不限于所记载的步骤,同样地,本申请实施例提供的代码缺陷状态确定装置包括了一系列模块,但是本申请实施例提供的装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。

在实际应用中,金融行业中各种金融业务的稳定执行、金融数据安全的有力保障,都需要通过健壮的项目数据才能实现,因此,对代码数据的缺陷状态的精准评估就显得异常重要。

在相关技术中,只有在代码数据的指标对应的特征值满足正态分布的情况下,才能对代码数据的缺陷状态进行评估,而这样的评估方式,对代码数据的指标对应的特征值要求较高,因此,无法实现对任意代码数据的缺陷状态进行评估。

在相关技术中,还提供了通过项目专家对包括至少一个版本的代码数据的项目数据的质量进行评估的方案。但是,依赖于项目专家对项目数据的评估过程中,虽然可以充分借鉴项目专家的项目经验,但由于项目数据的变化速度快、涉及的数据维度多,因此,依赖于项目专家有限的项目经验评估得到的评估结果的粒度较大;与此同时,在项目专家进行项目数据评估的过程中,不可避免的会引入一些主观因素,因此,通过以上评估方式得到的评估结果的公允性和稳定性不足。

综上,相关技术中代码数据的质量状态评估,存在限制因素较多无法推广、评估方法灵活性差且评估结果客观性不足的问题。

基于以上问题,本申请实施例提供了一种代码缺陷状态确定方法。

需要说明的是,本申请实施例提供的代码缺陷状态确定方法,可以应用于终端和/服务器中,这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、可编程消费电子产品、网络个人电脑、小型计算机系统,等等。服务器可以是小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

服务器等电子设备可以包括用于执行计算机指令的程序模块。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

示例性的,本申请实施例提供的代码缺陷状态确定方法,可以由以上任一电子设备的处理器实现,上述处理器可以为特定用途集成电路(Application Sp ecificIntegrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(ProgrammableLogic Device,PLD)、现场可编程逻辑门阵列(Fiel d Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作限制。

图1为本申请实施例提供的第一种代码缺陷状态确定方法的流程示意图。如图1所示,该方法可以包括步骤101至步骤103:

步骤101、确定项目数据的至少一种指标数据。

其中,项目数据,包括实现项目功能的至少一个版本的代码数据;指标数据,包括项目数据的质量缺陷数据。

在本申请实施例中,代码数据,可以包括以任意一种编程语言编写的数据。示例性的,编程语言,可以包括高级编程语言,比如Java语言、C++语言、C语言等;示例性的,编程语言,还可以包括低级编程语言,比如汇编语言;示例性的,编程语言,还可以包括脚本语言;示例性的,编程语言,还可以包括硬件描述语言(Very High Speed Integrated CircuitHardware Description Language,VHDL)。

在本申请实施例中,代码数据,可以是源代码数据;示例性的,代码数据,还可以是源代码数据经过编译之后得到的可执行代码数据。

在本申请实施例中,项目功能,可以包括页面显示功能、数据上传/下载功能、数据存储功能、数据查询功能、数据传输功能中的至少一种,本申请实施例对此不做限定。

在本申请实施例中,不同版本的代码数据,可以是通过版本编号进行管理和统计的;在代码数据的版本包括至少两个的情况下,第一版本的代码数据与第二版本的代码数据之间的差异,可以仅为局部差异。在本申请实施例中,代码数据,可以是按照模块划分的,那么,第一版本的代码数据与第二版本的代码数据之间的差异,可以局限于少数模块代码之间的差异。

在本申请实施例中,项目数据,可以包括处于内部测试阶段的至少一个版本的代码数据;还可以包括已经处于发布状态的至少一个版本的代码数据。在本申请实施例中,项目数据,可以包括处于研发过程的至少一个版本的代码数据,还可以包括交付之后处于运营状态的至少一个版本的代码数据。

在本申请实施例中,质量缺陷数据,可以包括至少一个版本的代码数据运行过程中出现的故障数据;示例性的,质量缺陷数据,可以是通过内部测试、专业测试人员测试、业务处理过程等至少一种途径,对至少一个版本的代码数据进行处理而确定的;示例性的,质量缺陷数据,还可以包括至少一个版本的代码数据的静态代码扫描bug等。示例性的,质量缺陷数据,可以包括静态代码扫描bug、缺陷密度中的至少一种。

在本申请实施例中,指标数据的类型和/或数量,可以包括项目数据的所有指标数据的类型和/或数量;示例性的,指标数据的类型和/或数量,可以是从项目数据的所有指标数据的类型和/或数量中选取得到的,比如,可以选取项目数据中部分模块的指标数据的类型和/或数量。

在本申请实施例中,指标数据,可以包括项目数据的至少一种质量缺陷数据;示例性的,在指标数据包括多种质量缺陷数据的情况下,指标数据可以以矩阵的形式体现,示例性的,上述矩阵可以记为C

步骤102、对至少一种指标数据进行聚类处理,得到聚类结果。

在本申请实施例中,聚类处理,可以是通用的聚类方法实现的。示例性的,通用的聚类方法为K均值聚类、均值漂移聚类、基于密度的聚类方法等。

在本申请实施例中,对至少一种指标数据进行聚类处理,可以是按照至少一个版本的代码数据的版本编号,对至少一种指标数据进行排序,然后根据排序的结果进行聚类处理的。示例性的,按照代码数据的版本编号对至少一种指标数据排序之后,可以按照至少一个代码数据的版本编号,分别对每个版本的指标数据进行聚类处理;还可以将排序之后的指标数据统一进行聚类处理。

在本申请实施例中,通过对至少一种指标数据进行聚类处理,就可以从随机分布的至少一种指标数据中,提取出至少一种指标数据的分布特性,因此,即使在至少一种指标数据不能满足正态分布的情况下,通过聚类处理,依然可以从至少一种指标数据中客观而精确的提取指标数据的分布状态,从而为项目数据的缺陷状态确定奠定了数据的客观性基础。

步骤103、基于聚类结果,确定代码数据的缺陷状态。

在本申请实施例中,代码数据的缺陷状态,可以表示代码数据所处的状态缺陷的严重程度和/或缺陷的数量;示例性的,代码数据的缺陷,还可以表示代码数据所处的状态具备指定严重程度缺陷的概率高低。

在本申请实施例中,代码数据的缺陷状态,可以是通过对聚类结果的每一簇中指标数据的分布情况确定的;示例性的,指标数据的分布情况,可以表示每一簇中指标数据的数量多少、分布密度等。在一些实施方式中,代码数据的缺陷状态,可以是根据代码数据的版本编号,对聚类结果的每一簇中指标数据分析处理的需要而确定的,如此,各个版本的代码数据对应的缺陷状态,可以反映出项目数据的缺陷状态在版本编号这个维度的变化趋势,从而能够从整体上客观的展示出至少一个版本的代码数据中缺陷的变化过程。

通过以上步骤可以看出,在本申请实施例中,在确定包括至少一个版本的代码数据的项目数据的至少一种指标数据之后,在至少一种指标数据的分布为任意随机分布状态的情况下,对至少一种指标数据进行聚类处理,得到的聚类结果,依然可以客观而全面的反应出不同种类的指标数据之间、不同版本的相同指标数据之间的分布状态,在此基础上,基于聚类结果确定的代码数据的缺陷状态,可以客观而精准的反映出项目数据中缺陷的实际分布状态、以及不同版本的代码数据中缺陷的变化趋势,从而能够客观而全面的反映出至少一个版本的代码数据的质量变化;并且,由于本申请实施例提供的代码数据状态确定方法对至少一种指标数据的分布并未限制,因此,本申请实施例提供的代码数据状态确定方法,能够实现对任意代码数据状态和质量的评估,因而能够在更广泛的场景中得以应用。

基于前述实施例,本申请实施例还提供了第二种代码数据状态确定方法。图2为本申请实施例提供的第二种代码数据状态确定方法的流程示意图。如图2所示,该方法可以包括步骤201至步骤204:

步骤201、确定项目数据的至少一种指标数据。

其中,项目数据,包括实现项目功能的至少一个版本的代码数据;指标数据,包括项目数据的质量缺陷数据。

在本申请实施例中,确定项目数据的至少一种指标数据,可以通过步骤A1至步骤A3实现:

步骤A1、获取项目数据的任一种类的至少两个原始指标数据。

在本申请实施例中,以至少两个原始指标数据包括第一类型指标数据以及第二类型指标数据为例,第一类型指标数据可以为缺陷密度;第二类型的指标数据可以为静态代码扫描bug。相应的,第一类型指标数据中的至少两个原始指标数据,可以包括第一级别的缺陷总数以及第二级别的缺陷总数;第二类型指标数据中的至少两个原始指标数据,可以包括第三级别的bug数量以及第四级别的bug数量。

步骤A2、确定任一种类的至少两个原始指标数据中每一原始指标数据对应的权重信息。

在本申请实施例中,不同的原始指标数据对应的权重信息,可以是不同的。示例性的,原始指标数据对应的权重该信息,可以是与原始指标数据对应设置的级别信息对应设置的;示例性的,原始指标数据的级别信息,可以是根据原始指标数据对项目数据的质量或状态的影响程度而确定的,也可以是根据对项目数据的测试目标而确定的,还可以是根据项目数据所处的阶段而确定的。在本申请实施例中,以缺陷密度为例,其级别可以包括L1至L5五个级别;相应的,与上述五个级别对应的权重信息也可以有五个。

步骤A3、基于权重信息,对每一原始指标数据进行加权处理,确定任一种类的指标数据。

在本申请实施例中,第n种指标数据,可以是对第n种类型的至少两个原始指标数据进行加权求和而确定的。

在本申请实施例中,以缺陷密度为例,缺陷密度类型的原始指标数据可以包括L1至L5五个级别的缺陷数量,其中,L1缺陷级别对应的权重可以为1.6;L2缺陷级别对应的权重可以为1.3;L3缺陷级别对应的权重可以为1;L4缺陷级别对应的权重可以为0.7;L5缺陷级别对应的权重可以为0.4;示例性的,基于上述各个缺陷级别及其对应的权重,可以对各个级别的缺陷数量进行加权处理,从而确定该缺陷密度类型的指标数据;示例性的,缺陷密度类型的指标数据,还可以通过式(1)计算确定:

其中,I为缺陷级别的数量,其取值可以是5;a

在本申请实施例中,密度缺陷类型的各个原始指标数据以及测试用例总数,可以是通过Descon项目管理工具(Descon Project Management System,DPMS)获取的;示例性的,通过DPMS,可以获取至少一个代码数据关联的测试用例集合以及缺陷数据。

在本申请实施例中,以静态代码扫描bug为例,可以通过持续集成(Continuousintegration,CI)平台中嵌入的sonarqube插件获取。通过上述插件,在代码数据的工程构建时,就可以检查出代码数据对应的源代码中潜在的、或明显的错误。示例性的,可以按照严重程度对上述错误进行级别划分,比如,可以将静态代码扫描bug划分为阻断错误、次要错误、严重错误、提示错误以及主要级别错误等;示例性的,静态代码扫描bug类型的指标数据,可以通过式(2)计算确定:

在式(2)中,X

以上步骤仅展示了基于两种类型的原始指标数据确定对应类型的指标数据的过程,在实际应用中,对项目数据的原始指标数据的类型还可以包括多种,本申请实施例对此不做限定。

通过以上步骤可以看出,在本申请实施例中,在获取对应类型的至少两个原始指标数据后,还可以确定对应类型的每一级别的原始指标数据对应的权重信息,再基于权重信息对每一原始指标数据进行加权处理,从而确定对应类型的指标数据。也就是说,在本申请实施例中,在获取任一类型的原始指标数据之后,还要按照原始指标数据的级别对其进行加权处理,如此,加权处理的结果中能够携带原始指标数据的级别信息,在实际的项目分析过程中,通过调整不同级别的原始指标数据的权重信息,可以实现对部分种类原始指标数据的针对性的分析,从而能够改善对代码数据的缺陷状态确定的灵活性。

步骤202、对至少一种指标数据中的每种指标数据进行分析,确定每种指标数据的初始质心数据。

其中,初始质心数据,包括每种指标数据的最大值、最小值、平均值、众数以及中位数中的至少两个。

在本申请实施例中,每一版本的代码数据的指标数据的种类数量可以为N种。示例性的,每种指标数据的最大值、最小值、平均值、以及众数的数量可以分别为至少一个。

在本申请实施例中,m个版本的代码数据对应的第n种指标数据的集合,可以记为V

在本申请实施例中,第n种指标数据集合的初始质心数据中的每一数据,可以具备二维坐标分量,即F

步骤203、基于初始质心数据,对每种指标数据进行聚类处理,得到聚类结果。

在本申请实施例中,可以首先确定聚类方法,并根据聚类方法,基于初始质心数据对每种指标数据进行聚类处理,从而可以得到聚类结果。示例性的,对不同类型的指标数据可以采用相同的聚类方法,也可以采用不同的聚类方法,本申请实施例对此不做限定。

在本申请实施例中,基于初始质心数据,对每种指标数据进行聚类处理,得到聚类结果,可以通过步骤B1至步骤B4实现:

步骤B1、确定每种指标数据中任一指标数据与初始质心数据的每一数据之间的第一距离信息。

在本申请实施例中,第一距离信息,可以表示每种指标数据中任一指标数据与初始质心数据中每一数据之间的欧式距离、曼哈顿距离、切比雪夫距离、幂距离中的任一种距离。

在本申请实施例中,第n种类的指标数据集合的第n个初始质心数据中的每一数据,可以具备二维坐标分量,即(F

在本申请实施例中,在确定第n个初始质心数据的二维坐标分量以及任一指标数据的二维坐标分量、且第一距离信息为欧式距离的条件下,第m个版本的代码数据对应的第n个指标数据、与对应的初始质心数据之间的第一距离信息D(c

在式(3)中,a为大于或等于1且小于或等于A的整数,其中,A为初始质心数据中数据的数量,A为大于或等于2且小于或等于5的整数;F

步骤B2、基于每一第一距离信息,对每种指标数据进行聚类处理,得到中间聚类结果。

在本申请实施例中,中间聚类结果可以是通过以下方式得到的:对第n类指标数据对应的每一第一距离信息进行判断,将第一距离信息小于距离阈值的指标数据进行归类,并将这些指标数据划分为一簇,划分得到的簇即为中间聚类结果。示例性的,在确定聚类结果之前,可以反复执行上述操作,如此可以得到多个中间聚类结果,每一中间聚类结果,可以包括至少一个簇。示例性的,随着聚类过程的进行,每一中间聚类结果产生之后,簇中指标数据的数量、簇的质心也会动态发生变化。

步骤B3、基于中间聚类结果,更新第一距离信息。

如前述实施例所述,随着聚类过程的执行,第t中间聚类结果产生之后,第t中间聚类结果的第w簇中所包含的指标数据的数量,与第t-1中间聚类结果的第w簇中所包含的指标数据的数量,可以是不同的,因此,第w簇的质心在从第t-1中间聚类结果到第t中间聚类结果发生了变化,如此,在聚类过程中,第w簇中任一指标数据与质心之间的距离即第一距离信息,会随着聚类过程的推进而发生变化,因此,可以基于中间聚类结果,更新第一距离信息。其中,t为大于或等于1的整数,w为大于或等于0的整数。

步骤B4、在每一第一距离信息的误差平方和不收敛的情况下,持续执行步骤B2至步骤B3;在每一第一距离信息的误差平方和收敛的情况下,完成聚类处理,得到聚类结果。

在本申请实施例中,若每一第一距离信息的误差平方和不收敛,则需要基于中间聚类结果的质心数据,更新第一距离信息,并根据中间聚类结果的质心数据以及第一距离信息再次执行聚类结果,直至每一第一距离信息的误差平方和收敛为止。

在本申请实施例中,每一第一距离信息的误差平方和收敛,可以表示每一第一距离信息的误差平方和较为稳定,无显著变化。在本申请实施例中,m个版本的代码数据的第n种指标数据对应的每一第一距离信息的误差平方和S

其中,b为大于1的整数,c

在本申请实施例中,随着聚类过程的推进,若S

步骤204、基于聚类结果,确定代码数据的缺陷状态。

在本申请实施例中,至少一种指标数据包括n种指标数据,聚类结果包括第1结果至第n结果;在i取1至n时,第i结果,为第i种指标数据的聚类结果;项目数据,包括第1版本至第m版本的代码数据;代码数据的缺陷状态,包括第m+1个版本的代码数据的缺陷概率;第m+1个版本的代码数据的缺陷概率,包括至少一种指标数据的聚类结果对应的量化结果出现的情况下,第m+1个版本的代码数据出现中任一类型的缺陷事件的概率;n为大于或等于1的整数;m为大于或等于2的整数。

在本申请实施例中,第n种指标数据中,可以包括多个指标数据;相应的,第n结果中,可以包括至少一个簇。

在本申请实施例中,任一版本的代码数据的缺陷状态,可以包括该版本的代码数据在实现至少一种功能时出现缺陷事件或故障的概率、该版本的代码数据的任一模块存在潜在故障的概率、以及该版本的代码数据运行过程中出现指定级别的故障的概率中的至少一种,本申请实施例对此不做限定。

在本申请实施例中,任一版本的代码数据的缺陷状态,可以包括该版本的代码数据在运行过程中预期出现指定严重级别的缺陷的次数、该版本的代码数据在运行过程中出现的故障与指定严重级别的缺陷相关的概率等。

在一种实施方式中,第m+1个版本的代码数据的缺陷概率,可以为至少一种指标数据的聚类结果对应的量化结果出现的请款下,第m+1个版本的代码数据中出现任一类型的缺陷事件的条件概率。如此,在本申请实施例中,第m+1个版本的代码数据的缺陷概率,不仅与第m+1个版本的代码数据运行状态相关,还与代码数据的指标数据的相关,因此,第m+1个版本的代码数据的缺陷概率,能够从整体上客观的反应出代码数据本身的缺陷状态。

在本申请实施例中,基于聚类结果,确定项目数据的缺陷状态,可以通过步骤C1至步骤C3实现:

步骤C1、对聚类结果进行统计,确定量化区间信息。

其中,量化区间信息,表示第1结果至第n结果中指标数据与质心之间距离的区间分布信息。

在本申请实施例中,对聚类结果进行统计,表示对包含m个版本的代码数据的指标数据对应的聚类结果进行统计,也就是说,量化区间信息,是基于m个版本的代码数据的指标数据进行的,由此确定的量化区间信息,一方面能够静态的体现代码数据本身的缺陷类型,另一方面,还能够动态的反映出代码数据中指标数据随着版本编号的变化趋势。因此,通过上述方式确定的量化区间信息,能够更客观的用于评估m个版本的代码数据的指标数据的客观分布状态。

在一种实施方式中,量化区间信息中携带的区间信息、以及量化区间信息中携带的区间信息的数量,可以是对所有指标数据与所在的簇的质心之间的距离进行统计而确定的。

在本申请实施例中,量化区间信息中,可以包含至少一个区间信息的区间集合信息;示例性的,不同种类的指标数据对应的量化区间信息,可以是不同的,也可以是相同的,本申请实施例对此不做限定。

在本申请实施例中,量化区间信息中任一区间信息所覆盖的距离信息,可以是根据至少一个版本的代码数据所处的阶段和/或状态而确定的,比如,在研发人员自测代码数据的阶段,量化区间信息可以为第一区间信息;而在代码数据交付测试人员后,量化区间信息可以为第二区间信息;在代码数据发布切换至运营状态的情况下,量化区间信息可以为第三区间信息。

在本申请实施例中,量化区间信息中任一区间信息所覆盖的距离信息,可以是根据代码数据本身实现的功能和/或代码数据的特征而确定的。比如,代码数据主要用于实现底层功能,则与底层功能对应的量化区间信息中任一区间信息所覆盖的距离信息,可以与上层功能对应的量化区间信息中任一区间信息所覆盖的距离信息不同。

步骤C2、基于量化区间信息对第1结果至第n结果进行量化,得到第1数据集合至第n数据集合。

在本申请实施例中,可以根据量化区间信息,对第1结果至第n结果的每一簇中的指标数据的坐标信息进行量化,从而得到第1数据集合至第n数据集合。

在本申请实施例中,量化区间信息中所包含的量化区间的数量,可以根据指标数据灵活调整;示例性的,根据量化区间信息中所包含的量化区间的数量,可以确定每一数据集合中数据的取值范围。比如,在量化区间信息中包含五个量化区间的情况下,第n结果对应的第n数据集合中,可以根据每一量化结果落入的量化区间的编号,确定对应的量化结果,比如,第n结果中的任一结果落入第一量化区间中,则其所对应的量化结果可以取值为1;相应的,在量化区间信息中包含五个量化区间的情况下,第n数据集合中每一数据的取值范围可以为[1,5]。

在本申请实施例中,对第1结果至第n结果的量化,是基于量化区间信息进行的,而量化区间信息,可以根据代码数据本身的状态和/或特征而确定,因此,在对第1结果至第n结果量化的过程中,充分考虑了代码数据本身的特性,从而使得量化结果能够更贴合代码数据的指标数据本身的分布特征。

在本申请实施例中,基于量化区间信息对第1结果至第n结果进行量化,得到第1数据集合至第n数据集合,可以通过步骤C201至步骤C202实现:

步骤C201、对第1结果至第n结果进行分析,确定第1结果至第n结果中任一数据与第1结果至第n结果的质心之间的第二距离信息。

在本申请实施例中,第n结果可以包含至少一个簇,以第n结果中包含K个簇为例,其中第k簇中可以包含n

步骤C202、基于量化区间信息以及第二距离信息,对第1结果至第n结果中的数据进行量化,得到第1数据集合至第n数据集合。

在本申请实施例中,以第n结果中的第k个簇中的任一数据为例,对第1结果至第n结果中的数据进行量化进行说明,记第n结果中的第k个簇中的任一数据为c

在本申请实施例中,可以将第1数据集合至第n数据集合以矩阵的形式体现,示例性的,可以将该矩阵记录为C'

由以上步骤可以看出,通过对指标数据进行聚类处理,可以从随机分布的指标数据中提取出指标数据的分布特性,而对聚类结果进行量化处理,可以将随机大小的指标数据量化至有限取值范围的数据集合,这样就可以减少后续在计算代码数据的缺陷状态的运算量;并且,由于对指标数据的量化是基于量化区间信息进行的,因此量化之后得到的第1数据集合至第n数据集合中,依然携带有指标数据的指标特性,从而能够提高后续代码数据的缺陷状态的精确程度。

步骤C3、在n大于1的情况下,基于第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷概率。

在本申请实施例中,第m+1个版本的代码数据的缺陷概率,可以表示至少一种指标数据出现的情况下,第m+1个版本的代码数据中出现任一类型的缺陷事件的出现的条件概率。也就是说,第m+1个版本的代码数据的缺陷概率,不仅仅用于评估第m+1个版本的代码数据出现缺陷事件的概率,而且还能将代码数据的指标特征与代码数据可能出现的缺陷事件关联起来,因此,第m+1个版本的代码数据的缺陷概率,从一定程度上能够体现至少一种指标数据对任一缺陷事件的影响。

在本申请实施例中,第m+1个版本的代码数据的缺陷概率,可以是基于m个版本的代码数据聚类量化后得到的第1数据集合至第n数据集合,对第m+1个版本的代码数据的状态的预测结果,如此,在第m+1个版本发布或交付之前,就可以对第m+1个版本的代码数据的缺陷概率进行预测,便于预先介入干预,降低代码数据运营过程中产生缺陷的概率。

在相关技术中,无论是依靠专家的项目经验对项目数据的质量或状态进行评估,还是在指标数据的分布满足正态分布的情况下对项目数据的质量或状态进行评估,得到的评估结果,都仅仅能从整体上反应项目数据的质量或状态,而无法获取在至少一种或若干种指标数据出现的情况下,某一版本的代码数据中出现任一类型的缺陷事件出现的概率,因此无法从更细的粒度上评估项目数据或代码数据的状态和质量。而本申请实施例提供的代码缺陷状态确定方法所确定的代码数据的缺陷概率,不仅能够获取在至少一种或若干种指标数据出现的情况下,某一版本的代码数据中出现任一类型的缺陷事件出现的概率,而且能够基于m个版本的代码数据预测第m+1个版本的代码数据的缺陷概率,因此,本申请实施例提供的代码缺陷状态确定方法,不仅能够实现更细粒度的代码数据质量或状态确定,而且能够预测下一版本的代码数据的缺陷概率。

在本申请实施例中,在n大于1的情况下,基于第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷概率,可以通过步骤D1至步骤D3实现:

步骤D1、从第1数据集合至第n数据集合中,获取第m个版本的代码数据的指标数据的聚类结果对应的量化结果。

在本申请实施例中,第1数据集合至第n数据集合,包括了m个版本的代码数据的指标数据的聚类结果对应的量化结果;示例性的,每一指标数据、以及指标数据对应的聚类结果、聚类结果对应的量化结果中,可以携带有代码数据的版本信息,如此,基于代码数据的版本信息,就可以从第1数据集合至第n数据集合中,筛选出第m个版本的代码数据的指标数据的聚类结果对应的量化结果。

步骤D2、基于第m个版本的代码数据的指标数据对应的量化结果,确定第m个版本的代码数据的质量评分。

在本申请实施例中,第m个版本的代码数据的指标数据的聚类结果对应的量化结果,可以包括n个数据,此时可以从n个数据中选取若干数据,并基于这若干数据确定第m个版本的代码数据的质量评分;示例性的,可以对n个数据进行加权求和,确定第m个版本的代码数据的质量评分;示例性的,可以直接对n个数据进行求和,从而确定第m个版本的代码数据的质量评分。示例性的,可以记第m个版本的代码的质量评分为PH,该评分可以通过式(5)计算得到:

在式(5)中,c'

在本申请实施例中,第m个版本的代码数据的质量评分,可以为第m个版本的代码数据的健康度评分。

步骤D3、在质量评分大于评分阈值的情况下,基于第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷概率。

在本申请实施例中,若质量评分小于或等于评分阈值,则可以确定第m个版本的代码数据中指标数据存在的问题,并针对这些问题进行复盘,以提高代码数据的质量。

在本申请实施例中,评分阈值,可以根据代码数据所处的状态确定;还可以根据代码数据实现的功能、代码数据的历史版本中出现缺陷事件或故障的概率高低等至少一种因素而确定,本申请实施例对此不做限定。

在本申请实施例中,第m+1个版本的代码数据的缺陷概率,可以是按照代码数据的版本编号,对第1数据集合至第n数据集合中的数据进行排序,并对排序结果进行统计,从中获取指标数据的聚类之后的量化结果随版本编号的变化趋势,并根据上述变化趋势确定的。

由以上可知,在本申请实施例中,只有代码数据的质量评分大于评分阈值的情况下,才基于第1数据集合至第n数据集合确定第m+1个版本的代码数据的缺陷概率,从而能够控制第m+1个版本的代码数据的缺陷概率的计算条件,也能够降低第m+1个版本的代码数据的缺陷概率计算的数据量。

在本申请实施例中,基于第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷概率,可以通过步骤E1至步骤E5实现:

步骤E1、获取事件类型信息。

其中,事件类型信息,表示任一版本的代码数据运行过程中出现的至少一种缺陷事件的类型信息。

在本申请实施例中,事件类型信息,可以表示每一版本的代码数据运行过程中均会出现的缺陷事件或故障的类型信息,也就是说,本申请实施例中的事件类型信息,在任一版本的代码数据中具备普遍意义;示例性的,事件类型信息,可以以字符串的形式体现,也可以以数字编号的形式体现,本申请实施例对此不做限定;示例性的,事件类型信息中,还可以包括每种缺陷事件或故障对代码数据质量的影响程度,即缺陷事件或故障的级别。

在本申请实施例中,事件类型信息也可以通过矩阵的形式体现,示例性的,事件类型信息中事件类型的数量可以为W,第m个版本的事件类型信息的矩阵可以记为G

步骤E2、基于事件类型信息、以及第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷概率。

在本申请实施例中,第m+1个版本的代码数据的缺陷概率,可以是通过以下方式实现的:对事件类型信息、以及第1数据集合至第n数据集合进行统计,确定事件类型信息、与不同的指标数据之间的关联关系、以及上述关联关系随代码数据的版本编号的变化趋势,然后根据上述关联关系以及变化趋势,确定第m+1个版本的代码数据的缺陷概率。

由以上可知,在本申请实施例中,第m+1个版本的代码数据的缺陷概率,是以至少一个版本的代码数据的指标数据聚类以及量化之后得到的第1数据集合至第n个数据集合、以及在代码数据中具备普遍意义的事件类型信息作为数据基础确定的,也就是说,在第m+1个版本的代码数据的缺陷概率确定过程中,充分考虑到了任一类型的缺陷事件出现、与至少一种指标数据出现之间的关联关系,从而使得第m+1个版本的代码数据的缺陷概率,能够从指标数据与缺陷事件的因果关系这个粒度更精细的体现第m+1个版本的代码数据的质量状态。

表1

在本申请实施例中,示例性的,对m个版本的代码数据中出现的w种事件类型信息、以及n种指标数据的聚类结果对应的量化结果的统计结果,可以如表1所示。

示例性的,在表1中,表格左侧的竖列1,2,m,表示迭代发布的m个版本的代码数据的编号;表格上侧横列中的1,2,…,n,用于表示m个版本的代码数据中的n种指标数据的聚类之后得到的量化结果,表格上侧横列中的1,…,w,用于表示m个版本的代码数据中的w种事件类型;其中,c

在本申请实施例中,基于事件类型信息、以及第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷状态,可以通过步骤E201至步骤E204确定:

步骤E2、基于事件类型信息,确定每一类型的缺陷事件在代码数据运行过程中出现的第一概率。

在本申请实施例中,第一概率,可以是通过m个版本的代码数据多次运行过程中出现的事件类型信息进行统计得到的。示例性的,第一概率可以为第w种事件类型信息g

在式(6)中,q为大于或等于1且小于或等于m的整数;g

步骤E3、基于第1数据集合至第n数据集合,确定m个版本的代码数据中每一指标数据的聚类结果对应的量化结果出现的第二概率。

在本申请实施例中,第二概率,可以是通过对m个版本的代码数据的指标数据出现情况进行统计得到的,示例性的,m个版本的代码数据中,第n种指标数据的聚类结果对应的量化结果出现的第二概率

其中,第n种指标数据的聚类结果对应的量化结果,简记为K'

需要说明的是,在本申请实施例中,任一种类的指标数据在任一版本的代码数据中出现的概率,是相互独立的。

步骤E4、基于事件类型信息、以及第1数据集合至第n数据集合,确定第三概率。

其中,第三概率,为m个版本的代码数据中任一类型的缺陷事件出现的情况下,至少一种指标数据的聚类结果对应的量化结果出现的条件概率。

在本申请实施例中,第三概率,可以是对m个版本的代码数据中多种类型的缺陷事件出现的情况、以及至少一种指标数据的聚类结果对应的量化结果出现的情况进行综合统计而得到的。

在本申请实施例中,通过表1所示的各种数据,可以利用概率论统计学的计算方法,在g

步骤E5、基于第一概率、第二概率以及第三概率,确定第m+1个版本的代码数据的缺陷概率。

在本申请实施例中,第m+1个版本的代码数据的缺陷概率,可以是通过统计学中概率论的方法,对第一概率、第二概率以及第三概率进行计算而确定的。

在本申请实施例中,事件类型信息也可以通过矩阵的形式体现,示例性的,事件类型信息中事件类型的数量可以为W,第m个版本的事件类型信息的矩阵可以记为G

在本申请实施例中,第m+1个版本的代码数据的缺陷概率,可以是通过以下方式实现的:对事件类型信息、以及第1数据集合至第n数据集合进行统计,确定事件类型信息、与不同的指标数据之间的关联关系、以及上述关联关系随代码数据的版本编号的变化趋势,然后根据上述关联关系以及变化趋势,确定第m+1个版本的代码数据的缺陷概率。

在本申请实施例中,第m+1个版本的代码数据的缺陷概率,是以至少一个版本的代码数据的指标数据聚类以及量化之后得到的第1数据集合至第n个数据集合、以及在代码数据中具备普遍意义的事件类型信息作为数据基础确定的,也就是说,在第m+1个版本的代码数据的缺陷状态确定过程中,充分考虑到了任一类型的缺陷事件出现、与至少一种指标数据出现之间的关联关系,从而使得第m+1个版本的代码数据的缺陷概率,能够从指标数据与缺陷事件的因果关系这个粒度更精细的体现第m+1个版本的代码数据的质量状态。

由以上可知,在本申请实施例中,第m+1个版本的代码数据的缺陷概率,是根据m个版本的代码数据中事件类型信息、以及至少一种指标数据的聚类结果对应的量化结果计算得到的,因此,通过上述步骤计算得到的第m+1个版本的代码数据的缺陷概率,能够从整体上客观而全面的反应出事件类型信息与至少一种指标数据之间的关联关系。

在本申请实施例中,基于第一概率、第二概率以及第三概率,确定第m+1个版本的代码数据的缺陷概率,可以通过

在本申请实施例中,P

示例性的,依据NBC,第m+1个版本的代码数据的缺陷概率P(g

而P((K′

P((K′

而式(10)中等号右侧的每一概率,可以通过式(8)以及表1计算得到,

由于每一指标数据在任一版本数据中出现的独立性,式(9)中等式右边的分母,可以通过式(11)计算得到:

P(K′

通过以上步骤,本申请实施例提供的代码缺陷状态确定方法,可以高效的确定第m+1个版本的代码数据的缺陷概率,并且,由于在第m+1个版本的代码数据的缺陷概率,是通过NBC,对前m个版本的代码数据的指标数据以及事件类型信息进行计算而确定的,因此,第m+1个版本的代码数据的缺陷概率,能够更客观而精准的反应出第m+1个版本的代码数据的实际状态。

在本申请实施例中,在确定第m+1个版本的代码数据的缺陷概率之后,还可以执行以下步骤:

在第m+1个版本的代码数据的缺陷概率大于或等于概率阈值的情况下,对第m个版本的代码数据进行处理,得到第m+1个版本的代码数据;发布第m+1个版本的代码数据。

相应的,在第m+1个版本的代码数据的缺陷概率小于概率阈值的情况下,可以确定第m+1个版本的代码数据处于稳定状态,可以直接发布。

在本申请实施例中,概率阈值,可以是根据代码数据所处的阶段或状态而确定的,还可以是根据代码数据发布的期望状态而确定的,本申请实施例对此不做限定。示例性的,概率阈值可以为50%。

在本申请实施例中,对第m个版本的代码数据进行的处理操作,可以是基于第m+1个版本的代码数据的缺陷概率而确定的;示例性的,对第m个版本的代码数据进行的处理操作,可以包括评审和走查等,比如,针对DB事件类型,可以执行复核变更脚本sqlscan扫描结果、检测条件字段是否用到索引、explain执行计划等。通过以上针对性的处理操作,就可以降低版本升级而引入的缺陷概率。

在本申请实施例中,基于第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷概率,还可以通过步骤F1至步骤F4实现:

步骤F1、获取事件类型信息。

其中,事件类型信息,表示任一版本的代码数据运行过程中出现的至少一种缺陷事件的类型信息。

步骤F2、基于第1数据集合至第n数据集合以及事件类型信息,对决策树模型进行训练,得到训练完成的决策树模型。

在本申请实施例中,可以将第1数据集合至第n数据集合以及事件类型信息划分为训练样本集和测试样本集,通过训练样本集对决策树模型进行训练,得到训练结果,并通过测试样本集对训练结果进行测试,在决策树模型输出的概率信息,与实际的概率信息之间的差别大于期望差值的情况下,基于训练样本集持续对决策树模型进行训练,直至决策树模型输出的概率信息与实际的概率信息之间的差别小于或等于期望差值的情况下,结束对决策树模型的训练过程,以得到训练完成的决策树模型。

在本申请实施例中,决策树模型,可以为复合树模型,比如XGBoost模型。

步骤F3、获取第m+1个版本的代码数据对应的至少一种指标数据的聚类结果对应的量化结果。

在本申请实施例中,第m+1个版本的代码数据对应的至少一种指标数据的聚类结果对应的量化结果,可以采用与前述实施例相同的方法获取,此处不再赘述。

步骤F4、基于训练完成的决策树模型,对第m+1个版本的代码数据对应的至少一种指标数据的聚类结果对应的量化结果、以及事件类型信息进行处理,确定第m+1个版本的代码数据的缺陷概率。

在本申请实施例中,可以将第m+1个版本的代码数据对应的至少一种指标数据的聚类结果对应的量化结果、以及事件类型信息输入至训练完成的决策树模型进行处理,从而能够确定第m+1个版本的代码数据的缺陷概率。

在实际应用中,对决策树模型的训练过程的运算量较大,且可能会出现过拟合的情况,在指标数据出现概率相互独立的情况下,通过训练完成的决策树模型计算得到的第m+1个版本的代码数据的缺陷概率的准确性,较NBC的方法计算得到的第m+1个版本的代码数据的缺陷概率的准确性,可能会有所下降。

由以上可知,本申请实施例提供的代码缺陷状态确定方法,在确定第m+1个版本的代码数据的缺陷概率的时候,充分借鉴了m个版本数据的至少一种指标数据的数据特征,并且,通过聚类的方法,对至少一种指标数据进行聚类,就能够获取各种指标数据的分布状态,从而能够在至少一种指标数据随机分布的情况下,也能够精确且客观的确定第m+1个版本的代码数据的缺陷概率,因此,本申请实施例提供的代码缺陷状态确定方法,还能够降低代码数据的缺陷概率确定的难度,提高了代码数据的缺陷状态确定的灵活性。

图3为本申请实施例提供的第三种代码缺陷状态确定方法的流程示意图。如图3所示,该方法可以包括以下步骤:

步骤301、从研发质量平台(Quality Management System,QMS)至少获取指标数据。

示例性的,研发质量平台可以依托于DPMS、CI以及测试平台等,至少收集并提供获取指标数据;示例性的,对于前m个版本的代码数据,可以从QMS获取指标数据以及事件类型信息。

步骤302、清洗历史数据。

示例性的,对于前m个版本的代码数据而言,可以采用通用的数据清洗方式,从历史数据中去除冗余数据。

步骤303、获取迭代运营数据。

示例性的,迭代运营数据,可以包括切换至交付状态并持续运营一段时间的代码数据、在运营过程中所产生的缺陷事件数据。

步骤304、获取事件标签。

示例性的,事件标签,相当于前述实施例中的事件类型信息。示例性的,此处的事件标签,可以包括代码数据在运营过程中所产生的所有事件的标签,也可以包括代码数据在运营过程中所产生的部分事件的标签。

步骤305、获取迭代过程数据。

示例性的,迭代过程数据,可以包括至少一个版本的代码数据中的原始指标数据。

步骤306、确定指标数据。

示例性的,这里的指标数据,可以是采用前述实施例所提供的方法,对原始指标数据进行处理,从而确定指标数据,还可以从至少一种指标数据中选取若干种类的指标数据。

步骤307、描述性统计分析自动获取初始质心。

示例性的,这里的初始质心,可以为前述实施例中的初始质心数据。示例性的,描述性统计分析,可以使用若干关键数据描述指标数据的整体情况。

示例性的,在指标数据为历史版本的代码数据的指标数据的情况下,可以执行步骤308;若指标数据属于迭代发布的新版本的代码数据,则可以执行步骤314。

步骤308、计算第一概率、第二概率以及第三概率。

示例性的,此处计算上述三种概率的方法可以参照前述实施例,此处不再赘述。

步骤309、计算新版本的缺陷概率。

示例性的,这里新版本的缺陷概率,可以是基于NBC对第一概率、第二概率以及第三概率进行计算而得到的、第m+1个版本的代码数据的缺陷概率。

步骤310、判断缺陷概率是否大于50%。

示例性的,这里的50%,可以为前述实施例所述的概率阈值。

缺陷概率大于50%,则可以执行步骤311;反之,可以执行步骤312。

步骤311、针对性复核评审并处理代码数据。

示例性的,在针对性复核评审处理代码数据之后,可以得到新版本的代码数据。之后可以执行步骤312。

步骤312、迭代发布新版本的指标数据。

在迭代发布新版本的代码数据之后,可以从QMS平台获取新版本的指标数据。并通过步骤305至步骤307对新版本的指标数据进行解析,确定初始质心,并执行聚类处理。

步骤313、获取新版本的指标数据。

示例性的,这里可以是获取第m+1个版本的指标数据。

步骤314、生成指标评分计算项目健康度评分。

示例性的,此处的项目健康度评分可以为前述实施例中的第m+1个版本的代码数据的质量评分。

步骤315、判断健康度评分是否小于目标值。

示例性的,此处的目标值相当于前述实施例中的评分阈值。若健康度评分小于目标值,则执行步骤316;反之,执行步骤309。

步骤316、检视不达标代码数据,形成新版本代码数据。

在步骤316之后,还可以执行步骤309。

由以上可知,本申请实施例提供的代码缺陷状态确定方法,可以充分利用从QMS平台中获取的一系列与代码数据的版本相关的指标数据以及事件类型标签,而且还可以依托聚类算法以及概率论的统计方法,对上述各种数据进行统计分析,从而能够获取各种指标数据与事件类型标签之间的关联关系,进而为新版本的代码数据的缺陷状态的精准灵活确定奠定了基础。

基于前述实施例,本申请实施例还提供了一种代码缺陷状态确定装置4。图4为本申请实施例提供的代码缺陷状态确定装置4的结构示意图。如图4所示,该装置包括:

第一确定模块401,用于确定项目数据的至少一种指标数据;其中,项目数据,包括实现项目功能的至少一个版本的代码数据;指标数据,包括项目数据的质量缺陷数据;

处理模块402,用于对至少一种指标数据进行聚类处理,得到聚类结果;

第二确定模块403,用于基于聚类结果,确定代码数据的缺陷状态。

在一些实施例中,处理模块402,用于对至少一种指标数据中的每种指标数据进行分析,确定每种指标数据的初始质心数据;其中,初始质心数据,包括每种指标数据的最大值、最小值、平均值、众数以及中位数中的至少两个;

处理模块402,还用于基于初始质心数据,对每种指标数据进行聚类处理,得到聚类结果。

在一些实施例中,处理模块402,用于确定每种指标数据中任一指标数据与初始质心数据的每一数据之间的第一距离信息;基于每一第一距离信息,对每种指标数据进行聚类处理,得到中间聚类结果;基于中间聚类结果,更新第一距离信息;

处理模块402,用于在每一第一距离信息的误差平方和不收敛的情况下,基于每一第一距离信息,对每种指标数据进行聚类处理,得到中间聚类结果;基于中间聚类结果,更新第一距离信息;还用于在每一第一距离信息的误差平方和收敛的情况下,完成聚类处理,得到聚类结果。

在一些实施例中,第一确定模块401,用于获取项目数据的任一种类的至少两个原始指标数据;

第一确定模块401,还用于确定任一种类的至少两个原始指标数据中每一原始指标数据对应的权重信息;基于权重信息,对每一原始指标数据进行加权处理,确定第n种指标数据。

在一些实施例中,至少一种指标数据包括n种指标数据,聚类结果包括第1结果至第n结果;在i取1至n时,第i结果,为第i种指标数据的聚类结果;项目数据,包括第1版本至第m版本的代码数据;代码数据的缺陷状态,第m+1个版本的代码数据的缺陷概率;第m+1个版本的代码数据的缺陷概率,包括至少一种指标数据的聚类结果对应的量化结果出现的情况下,第m+1个版本的代码数据出现中任一类型的缺陷事件的概率;其中,n为大于或等于1的整数;m为大于或等于2的整数;

第二确定模块403,用于对聚类结果进行统计,确定量化区间信息;基于量化区间信息对第1结果至第n结果进行量化,得到第1数据集合至第n数据集合;在n大于1的情况下,基于第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷概率;其中,量化区间信息,表示第1结果至所述n结果中指标数据与质心之间距离的区间分布信息。

在一些实施例中,第二确定模块403,用于对第1结果至第n结果进行分析,确定第1结果至第n结果中每一簇中任一数据与第1结果至第n结果的质点之间的第二距离信息;基于量化区间信息以及第二距离信息,对第1结果至第n结果中的数据进行量化,得到第1数据集合至第n数据集合。

在一些实施例中,第二确定模块403,用于从第1数据集合至第n数据集合中,获取第m个版本的代码数据的指标数据的聚类结果对应的量化结果;基于第m个版本的代码数据的指标数据的聚类结果对应的量化结果,确定第m个版本的代码数据的质量评分;在质量评分大于评分阈值的情况下,基于第1数据集合至第n数据集合,确定第m+1个版本的代码数据的缺陷概率。

在一些实施例中,第二确定模块403,用于获取事件类型信息;其中,事件类型信息,表示任一版本的代码数据运行过程中出现的至少一种缺陷事件的类型信息;

第二确定模块403,用于基于事件类型信息,确定每一类型的缺陷事件在的代码数据运行过程中出现的第一概率;基于第1数据集合至第n数据集合,确定m个版本的代码数据中每一指标数据的聚类结果对应的量化结果出现的第二概率;基于事件类型信息、以及第1数据集合至第n数据集合,确定第三概率;其中,第三概率,为m个版本的代码数据中任一类型的缺陷事件出现的情况下,至少一种指标数据的聚类结果对应的量化结果出现的条件概率;基于第一概率、第二概率以及第三概率,确定第m+1个版本的代码数据的缺陷概率态。

在一些实施例中,第m+1个版本的代码数据的缺陷状态,包括第m+1个版本的代码数据的缺陷概率;第二确定模块403,用于通过

在一些实施例中,第二确定模块403,用于获取事件类型信息;其中,事件类型信息,表示任一版本的代码数据运行过程中出现的至少一种缺陷事件的类型信息;基于第1数据集合至第n数据集合以及事件类型信息,对决策树模型进行训练,得到训练完成的决策树模型;获取第m+1个版本的代码数据对应的至少一种指标数据的聚类结果对应的量化结果;基于训练完成的决策树模型,对第m+1个版本的代码数据对应的至少一种指标数据的聚类结果对应的量化结果、以及事件类型信息进行处理,确定第m+1个版本的代码数据的缺陷概率。

需要说明的是,实际应用中,第一确定模块501、处理模块502以及第二确定模块503,可以利用电子设备中的处理器实现,上述处理器可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。

基于前述实施例,本申请实施例还提供了一种电子设备5,图5为本申请实施例提供的电子设备5的结构示意图,如图5所示,该电子设备5可以包括存储器501和处理器502;其中:

存储器501,用于存储可执行指令;

处理器502,用于执行存储器502中存储的可执行指令时,实现如前任一实施例的缺陷状态确定方法。

其中,上述处理器502可以为特定用途集成电路ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。

上述存储器501,可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory,硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器提供指令和数据。

基于前述实施例,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有可执行指令,可执行指令被处理器执行时,能够实现如前任一实施例所述的缺陷状态确定方法。

上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。

本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

需要说明的是,上述计算机可读存储介质可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件节点的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所描述的方法。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 一种代码缺陷状态确定方法、装置、电子设备及介质
  • 一种代码修改确定方法、装置、电子设备及存储介质
技术分类

06120113284192