CN117951002A - 增量代码单元测试方法、装置、计算机设备和存储介质 - Google Patents
增量代码单元测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117951002A CN117951002A CN202410007416.XA CN202410007416A CN117951002A CN 117951002 A CN117951002 A CN 117951002A CN 202410007416 A CN202410007416 A CN 202410007416A CN 117951002 A CN117951002 A CN 117951002A
- Authority
- CN
- China
- Prior art keywords
- case
- test
- cases
- code
- result
- 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
- 238000010998 test method Methods 0.000 title claims description 6
- 238000012360 testing method Methods 0.000 claims abstract description 357
- 230000008859 change Effects 0.000 claims abstract description 77
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000012216 screening Methods 0.000 claims abstract description 58
- 238000005259 measurement Methods 0.000 claims description 54
- 238000004590 computer program Methods 0.000 claims description 23
- 238000012986 modification Methods 0.000 claims description 15
- 230000004048 modification Effects 0.000 claims description 15
- 238000011056 performance test Methods 0.000 claims description 14
- 238000010276 construction Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Testing Or Calibration Of Command Recording Devices (AREA)
Abstract
本申请涉及一种增量代码单元测试方方法、装置、计算机设备和存储介质。所述方法包括:获取代码更改相关数据;其中,代码更改相关数据包括程序员标识及其对应的代码变更记录;根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例;对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行参数调节,获得调节后配置参数。采用本方法能够提高了测试执行效率,使得用例得到有效执行,降低维护成本。
Description
技术领域
本申请涉及计算机代码测试技术领域,特别是涉及一种增量代码单元测试方法、装置、计算机设备和存储介质。
背景技术
随着互联网的快速发展,需要开发大量的软件。由于软件项目的代码规模非常庞大,需要多名开发人员协作开发。在将各个开发人员的代码合并成最终的软件代码之前,还需要进行集成测试,以便发现代码中的错误并确保软件正常运行。
传统技术中,采用单元测试(unit testing)的方式。单元测试是对软件中最小可测试单元进行检查和验证的方法。在进行代码集成测试之前,我们需要执行单元测试。
然而,当测试用例数量较多时,执行单元测试会花费较长的时间并占用大量计算资源。这可能导致一些单元测试任务无法及时执行,进而延长测试结果的获取。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高项目迭代效率并充分利用已存在的单元测试用例的增量代码单元测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种增量代码单元测试方法,包括:
获取代码更改相关数据;其中,代码更改相关数据包括程序员标识及其对应的代码变更记录;
根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例;
对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
在其中一个实施例中,根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例,包括:
对测试用例仓库进行遍历更新,获得更新后测试用例仓库;
根据代码更改数据对更新后测试用例仓库进行用例提取,获得待选用测试用例;
根据用例权重参数对待选用测试用例进行筛选,获得筛选后单测用例。
在其中一个实施例中,根据用例权重参数对待选用测试用例进行筛选,获得筛选后单测用例,包括:
基于用例必要性从待选用测试用例中筛选,获得第一类单测用例和剩余测试用例;
根据用例匹配度和用例关联度对剩余测试用例进行权重计算,获得剩余用例权重值;
根据剩余用例权重值和预设用例阈值对剩余测试用例进行筛选,获得第二类单测用例;
将第一类单测用例和第二类单测用例设定为筛选后单测用例。
在其中一个实施例中,对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
将筛选后单测用例输入至预设构建项目中;
对筛选后单测用例进行测试运行,获得测试运行结果;其中,测试运行结果包括用例测试结果和代码运行数据;
对测试运行结果中代码运行数据进行统计,获得代码覆盖率数据。
在其中一个实施例中,对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
基于测试运行结果中用例测试结果和预设执行结果进行比较,获得执行比较结果;
根据执行比较结果对筛选后单测用例进行成功率计算,获得用例执行成功率。
在其中一个实施例中,对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
基于筛选后单测用例的用例测试结果更新每个单测用例的用例失败次数;
基于用例失败次数与预设用例失败阈值对单测用例进行分类获得第三类单测用例和第四类单测用例;
将第三类单测用例设定为必要性单测用例;
根据代码覆盖率和用例执行成功率对第四类单测用例进行分值调节,获得调节后用例分值。
第二方面,本申请还提供了一种增量代码单元测试装置,包括:
信息获取模块,用于获取代码更改相关数据;其中,代码更改相关数据包括程序员标识及其对应的代码变更记录;
用例筛选模块,用于根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例;
测试调节模块,用于对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取代码更改相关数据;其中,代码更改相关数据包括程序员标识及其对应的代码变更记录;
根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例;
对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取代码更改相关数据;其中,代码更改相关数据包括程序员标识及其对应的代码变更记录;
根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例;
对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取代码更改相关数据;其中,代码更改相关数据包括程序员标识及其对应的代码变更记录;
根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例;
对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
上述增量代码单元测试方法、装置、计算机设备、存储介质和计算机程序产品,在程序员对代码完成修改后,获取代码更改相关数据,通过代码更改相关数据中代码更改记录确定可以使用的测试用例,再确定每个测试用例与代码更改记录之间的相关参数即用例权重参数,然后计算测试用例的权重分值进而得到一定数量的筛选后单测用例,之后执行筛选后单测用例得到所有筛选后单测用例的成功率和每个筛选后单测用例的代码覆盖率,进而可以对用例权重参数调整,提高了测试执行效率,使得用例得到有效执行,降低维护成本。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中增量代码单元测试方法的应用环境图;
图2为一个实施例中筛选单测用例的流程示意图;
图3为一个实施例中增量代码单元测试装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种增量代码单元测试方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,获取代码更改相关数据。
其中,所述代码更改相关数据包括程序员标识及其对应的代码变更记录。
示例性地,当项目的程序员对项目程序进行修改之后,将程序员提交的代码变更记录与程序员标识映射对应,并将其作为代码更改相关数据传输。在获得代码更改相关数据后,可以从代码更改相关数据中获取代码变更记录,并通过代码变更记录确定所有变更的类名、变更方法名、变更的代码行、变更的代码内容等信息。
步骤104,根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例。
其中,用例权重参数包括但单元测试用例与修改代码中函数的关联度和匹配度。
示例性地,当需要对一个变更方法进行测试时,确定该变更方法所对应的测试用例。并且还需要确定该变更方法是否引用其他方法,以确定是否需要使用其余测试用例。
若该变更方法引用其他方法,则确定其他方法对应测试用例与变更方法之间的用例权重参数。
在确定该变更方法对应的所有测试用例后,通过每个测试用例的用例分值与用例权重参数计算每个测试用例的用例权重得分。基于用例权重得分选择预设数量的测试用例,即筛选后单测用例。
步骤106,对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
其中,相关配置参数包括用例必要性和用例分值。
示例性地,执行筛选后单测用例,得到每个筛选后单测用例的执行结果,并根据执行结果确定所有筛选后单测用例的成功率和每个筛选后单测用例的代码覆盖率吗,之后根据每个筛选后单测用例的成功与否对用例分值以及用例必要性进行调整。
上述增量代码单元测试方法,在程序员对代码完成修改后,获取代码更改相关数据,通过代码更改相关数据中代码更改记录确定可以使用的测试用例,再确定每个测试用例与代码更改记录之间的相关参数即用例权重参数,然后计算测试用例的权重分值进而得到一定数量的筛选后单测用例,之后执行筛选后单测用例得到所有筛选后单测用例的成功率和每个筛选后单测用例的代码覆盖率,进而可以对用例权重参数调整,提高了测试执行效率,使得用例得到有效执行,降低维护成本。
在一个示例性的实施例中,所述代码更改相关数据包括多个代码更改数据;根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例,包括:
对测试用例仓库进行遍历更新,获得更新后测试用例仓库;根据代码更改数据对更新后测试用例仓库进行用例提取,获得待选用测试用例;根据用例权重参数对所述待选用测试用例进行筛选,获得筛选后单测用例。
其中,代码更改数据包括变更的类名、变更方法名、变更的代码行和变更的代码内容等数据。
示例性地,在获得代码更改相关数据后,对存放测试用例的仓库进行遍历,检查是否存在新增测试用例或/和已删除测试用例。然后代码更改数据中的变更方法从测试用例仓库中提取相关测试用例,即待选用测试用例。然后根据用例权重参数计算每个待选用测试用例的权重分值,并按照权重分值对待选用测试用例排序。之后从排序后的待选后测试用例中提取一定数量的测试用例,即筛选后单测用例。
在本实施例中,在确定代码更改相关数据中更改方法后,利用每个待选用测试用例对应的用例权重参数计算每个待选用测试用例的权重分值并进行排序,筛选出一定数量的筛选后单测用例,进而可以控制单次执行用例的数量,提高了测试执行的效率。
在一个示例性的实施例中,如图2所示,根据用例权重参数对所述待选用测试用例进行筛选,包括以下步骤202至步骤208:
步骤202,基于用例必要性从待选用测试用例中筛选,获得第一类单测用例和剩余测试用例;
其中,用例权重参数包括用例匹配度、用例关联度和用例必要性。
示例性地,基于用例必要性从待选用测试用例中选取用于验证变更方法一定要执行的单测用例,即第一类单测用例。例如,为了新增代码在测试用例仓库新增了测试用例。因此在确定需要测试的变更方法后,选择为了该变更方法新增的测试用例就属于一定需要执行的测试用例,或者是为了保证程序正确性一定要执行的测试用例。
步骤204,根据用例匹配度和用例关联度对剩余测试用例进行权重计算,获得剩余用例权重值。
示例性地,利用剩余测试用例中每个测试用例的用例匹配度和用例关联度以及测试用例的用例分值计算得到剩余测试用例中每个测试用例的权重得分,具体计算公式为:
权重得分=用例分值*匹配度+用例分值*关联度
例如,变更方法名为UserMethod,则单元测试命名为TestUserMethod,假如针对改方法有多个测试用例,则命名为TestUserMethodFor…或TestUserMethod1等。当测试用例与该代码更改数据匹配度为1,则说明该测试用例与该代码更改数据完全关联。当其他代码方法没有发生改变,但是依赖的代码发生了改变,则依赖的代码对应的测试用例与这些单测用例的关联度相比呈一定比例减少。并且除了变更方法对应的单测用例的匹配度为1,依赖的代码对应的测试用例与变更方法的匹配度为0.1。每个代码方法的调用层数可以预先设置。
例如,可以设定方法调用层数设定为3层,当代码更改数据对应的变更方法引用的第一层方法对应测试用例的关联度可以设定为0.8,引用的第二层方法对应测试用例的关联度为0.6,引用的第三层方法对应测试用例的关联度为0.4。而被引用的每一层方法对应测试用例与变更方法之间的匹配度均为0.1。
步骤206,根据剩余用例权重值和预设用例阈值对剩余测试用例进行筛选,获得第二类单测用例。
示例性地,按照权重得分对剩余测试用例进行排序,然后基于预设用例阈值选取一定数量的单测用例,即第二类单测用例。例如,假设有100个用例进行排序,用户可以选取N个数量的用例,N可以是10也可以是100。
步骤208,将第一类单测用例和第二类单测用例设定为筛选后单测用例。
示例性地,选取得到的第一类单测用例和第二类单测用例即为筛选后单测用例。
在本实施例中,优先基于用例必要性选取一定需要执行的单测用例,然后利用用例匹配度和用例关联度对剩余测试用例进行权重计算并排序,进而选择与代码更改联系更高的测试用例,能够减少用例的执行数量,使得用例得到有效执行,达到提高测试执行效率的效果。
在一个示例性的实施例中,对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
将筛选后单测用例输入至预设构建项目中;对筛选后单测用例进行测试运行,获得测试运行结果;对所述测试运行结果中代码运行数据进行统计,获得代码覆盖率。
其中,所述测试运行结果包括用例测试结果和代码运行数据,代码覆盖率包括增量代码模块覆盖率和全量代码覆盖率。
示例性地,在预设构建项目中运行筛选后单测用例的每个单测用例,得到每个单测用例的用例测试结果,同时利用预设构建项目中覆盖检测工具(例如JaCoCo工具)记录被执行测试的代码块是否被执行,然后基于被执行的代码块计算代码覆盖率。
在本实施例中,通过利用覆盖检测工具在执行筛选后单测用例的每个单测用例过程中统计获取被执行的代码块,进而可以得到代码覆盖率,以便于对用例权重参数进行合理调节,使得用例得到有效执行并降低维护成本。
在一个示例性的实施例中,对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
基于测试运行结果中用例测试结果和预设执行结果进行比较,获得执行比较结果;根据执行比较结果对筛选后单测用例进行成功率计算,获得用例执行成功率。
示例性地,执行筛选后单测用例中每个单测用例并得到每个单测用例对应的用例测试结果,再判断测试执行结果是否与预设执行结果一致,进而确定成功单测用例的数量以及用例执行成功率。
在本实施例中,在完成单测用例的筛选之后,对其执行测试得到测试执行结果,在判断是否得到预期结果进而得到筛选后单测用例的成功率,以便于对用例权重参数进行合理调节,使得用例得到有效执行并降低维护成本。
在一个示例性的实施例中,对筛选后单测用例进行执行测试,获得执行测试结果,以及基于所述执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
基于所述筛选后单测用例的用例测试结果更新每个所述单测用例的用例失败次数;基于所述用例失败次数与预设用例失败阈值对所述单测用例进行分类获得第三类单测用例和第四类单测用例;将所述第三类单测用例设定为必要性单测用例;根据所述代码覆盖率和所述用例执行成功率对所述第四类单测用例进行分值调节,获得调节后用例分值。
其中,第三类单测用例为用例失败次数达到预设用例失败阈值的单测用例。
示例性地,在对筛选后单测用例执行后,获得参与执行的单测用例的执行结果,并对执行失败的单测用例记录失败次数。在单测用例达到一定失败次数之后,将其设定为必要性用例,即在后续过程中无论代码如何变动,它都将被执行。
同时单测用例的执行结果为失败时,需要对该单测用例的用例分值进行更新,进而在下一次筛选测试用例时使得用例分值更新的测试用例的排序位置发生改变。例如当单测用例执行失败时,将该单测用例的用例分值增加1,则在下一次筛选测试用例时该单测用例的排序位置提前。
在本实施例中,通过用例执行结果,动态调整用例分值,提高了测试执行效率,使得用例得到有效执行,降低维护成本。
在一个示例性的实施例中,一种增量代码单元测试方法,该方法包括以下步骤:
获取代码更改相关数据;其中,代码更改相关数据包括程序员标识及其对应的代码变更记录。
对测试用例仓库进行遍历更新,获得更新后测试用例仓库。
根据代码更改数据对更新后测试用例仓库进行用例提取,获得待选用测试用例。
基于用例必要性从待选用测试用例中筛选,获得第一类单测用例和剩余测试用例。
根据用例匹配度和用例关联度对剩余测试用例进行权重计算,获得剩余用例权重值。
根据剩余用例权重值和预设用例阈值对剩余测试用例进行筛选,获得第二类单测用例。
将第一类单测用例和第二类单测用例设定为筛选后单测用例。
将筛选后单测用例输入至预设构建项目中。
对筛选后单测用例进行测试运行,获得测试运行结果;其中,测试运行结果包括用例测试结果和代码运行数据。
对测试运行结果中代码运行数据进行统计,获得代码覆盖率数据。
基于测试运行结果中用例测试结果和预设执行结果进行比较,获得执行比较结果。
根据执行比较结果对筛选后单测用例进行成功率计算,获得用例执行成功率。
基于筛选后单测用例的用例测试结果更新每个单测用例的用例失败次数。
基于用例失败次数与预设用例失败阈值对单测用例进行分类获得第三类单测用例和第四类单测用例。
将第三类单测用例设定为必要性单测用例。
根据代码覆盖率和用例执行成功率对第四类单测用例进行分值调节,获得调节后用例分值。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的增量代码单元测试方法的增量代码单元测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个增量代码单元测试装置实施例中的具体限定可以参见上文中对于增量代码单元测试方法的限定,在此不再赘述。
在一个示例性的实施例中,如图3所示,提供了一种增量代码单元测试装置,包括:信息获取模块302、用例筛选模块304和测试调节模块306,其中:
信息获取模块302,用于获取代码更改相关数据;其中,代码更改相关数据包括程序员标识及其对应的代码变更记录。
用例筛选模块304,用于根据代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例。
测试调节模块306,用于对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
在一个示例性的实施例中,用例筛选模块304,还用于对测试用例仓库进行遍历更新,获得更新后测试用例仓库;根据代码更改数据对更新后测试用例仓库进行用例提取,获得待选用测试用例;根据用例权重参数对待选用测试用例进行筛选,获得筛选后单测用例。
在一个示例性的实施例中,用例筛选模块304,还用于基于用例必要性从待选用测试用例中筛选,获得第一类单测用例和剩余测试用例;根据用例匹配度和用例关联度对剩余测试用例进行权重计算,获得剩余用例权重值;根据剩余用例权重值和预设用例阈值对剩余测试用例进行筛选,获得第二类单测用例;将第一类单测用例和第二类单测用例设定为筛选后单测用例。
在一个示例性的实施例中,测试调节模块306,还用于将筛选后单测用例输入至预设构建项目中;对筛选后单测用例进行测试运行,获得测试运行结果;其中,测试运行结果包括用例测试结果和代码运行数据;对测试运行结果中代码运行数据进行统计,获得代码覆盖率数据。
在一个示例性的实施例中,测试调节模块306,还用于基于测试运行结果中用例测试结果和预设执行结果进行比较,获得执行比较结果;根据执行比较结果对筛选后单测用例进行成功率计算,获得用例执行成功率。
在一个示例性的实施例中,测试调节模块306,还用于基于筛选后单测用例的用例测试结果更新每个单测用例的用例失败次数;基于用例失败次数与预设用例失败阈值对单测用例进行分类获得第三类单测用例和第四类单测用例;将第三类单测用例设定为必要性单测用例;根据代码覆盖率和用例执行成功率对第四类单测用例进行分值调节,获得调节后用例分值。
上述增量代码单元测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储代码更改相关数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种增量代码单元测试方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种增量代码单元测试方法,其特征在于,所述方法包括:
获取代码更改相关数据;其中,所述代码更改相关数据包括程序员标识及其对应的代码变更记录;
根据所述代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例;
对所述筛选后单测用例进行执行测试,获得执行测试结果,以及基于所述执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例,包括:
对测试用例仓库进行遍历更新,获得更新后测试用例仓库;
根据代码更改数据对所述更新后测试用例仓库进行用例提取,获得待选用测试用例;
根据所述用例权重参数对所述待选用测试用例进行筛选,获得筛选后单测用例。
3.根据权利要求2所述的方法,其特征在于,所述用例权重参数包括用例匹配度、用例关联度和用例必要性;所述根据所述用例权重参数对所述待选用测试用例进行筛选,获得筛选后单测用例,包括:
基于用例必要性从所述待选用测试用例中筛选,获得第一类单测用例和剩余测试用例;
根据用例匹配度和用例关联度对所述剩余测试用例进行权重计算,获得剩余用例权重值;
根据所述剩余用例权重值和预设用例阈值对所述剩余测试用例进行筛选,获得第二类单测用例;
将所述第一类单测用例和所述第二类单测用例设定为筛选后单测用例。
4.根据权利要求1所述的方法,其特征在于,所述对筛选后单测用例进行执行测试,获得执行测试结果,以及基于执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
将所述筛选后单测用例输入至预设构建项目中;
对筛选后单测用例进行测试运行,获得测试运行结果;其中,所述测试运行结果包括用例测试结果和代码运行数据;
对所述测试运行结果中代码运行数据进行统计,获得代码覆盖率数据。
5.根据权利要求4所述的方法,其特征在于,所述对筛选后单测用例进行执行测试,获得执行测试结果,以及基于所述执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
基于所述测试运行结果中用例测试结果和预设执行结果进行比较,获得执行比较结果;
根据所述执行比较结果对所述筛选后单测用例进行成功率计算,获得用例执行成功率。
6.根据权利要求5所述的方法,其特征在于,所述相关配置参数包括用例必要性和用例分值;所述对筛选后单测用例进行执行测试,获得执行测试结果,以及基于所述执行测试结果对相关配置参数进行数据调节,获得调节后配置参数,包括:
基于所述筛选后单测用例的用例测试结果更新每个所述单测用例的用例失败次数;
基于所述用例失败次数与预设用例失败阈值对所述单测用例进行分类获得第三类单测用例和第四类单测用例;
将所述第三类单测用例设定为必要性单测用例;
根据所述代码覆盖率和所述用例执行成功率对所述第四类单测用例进行数据调节,获得调节后用例分值。
7.一种增量代码单元测试装置,其特征在于,所述装置包括:
信息获取模块,用于获取代码更改相关数据;其中,所述代码更改相关数据包括程序员标识及其对应的代码变更记录;
用例筛选模块,用于根据所述代码更改相关数据和用例权重参数对单元测试用例进行用例筛选,获得筛选后单测用例;
测试调节模块,用于对所述筛选后单测用例进行执行测试,获得执行测试结果,以及基于所述执行测试结果对相关配置参数进行数据调节,获得调节后配置参数。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410007416.XA CN117951002A (zh) | 2024-01-03 | 2024-01-03 | 增量代码单元测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410007416.XA CN117951002A (zh) | 2024-01-03 | 2024-01-03 | 增量代码单元测试方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117951002A true CN117951002A (zh) | 2024-04-30 |
Family
ID=90795410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410007416.XA Pending CN117951002A (zh) | 2024-01-03 | 2024-01-03 | 增量代码单元测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117951002A (zh) |
-
2024
- 2024-01-03 CN CN202410007416.XA patent/CN117951002A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8195720B2 (en) | Detecting memory leaks | |
CN107168995B (zh) | 一种数据处理方法及服务器 | |
CN107665171A (zh) | 自动回归测试方法及装置 | |
CN114490375B (zh) | 应用程序的性能测试方法、装置、设备及存储介质 | |
CN114610635A (zh) | 接口测试用例生成方法、装置、计算机设备及存储介质 | |
CN111444093B (zh) | 项目开发过程质量的确定方法、装置、计算机设备 | |
CN116561003A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
CN114880637B (zh) | 账户风险的验证方法、装置、计算机设备和存储介质 | |
CN117951002A (zh) | 增量代码单元测试方法、装置、计算机设备和存储介质 | |
CN113791980B (zh) | 测试用例的转化分析方法、装置、设备及存储介质 | |
CN115759742A (zh) | 企业风险评估方法、装置、计算机设备和存储介质 | |
CN112631905A (zh) | 执行过程数据管理方法、装置、计算机设备及存储介质 | |
CN114372867A (zh) | 用户信用度的验证评估方法、装置和计算机设备 | |
CN116629348B (zh) | 一种智能车间数据采集分析方法、装置及计算机设备 | |
CN114936158B (zh) | 一种基于图卷积神经网络的软件缺陷定位方法 | |
CN113434408B (zh) | 一种基于测试预言的单元测试用例排序方法 | |
CN116909876A (zh) | 调试方法、装置、计算机设备、存储介质和程序产品 | |
CN117370160A (zh) | 代码审核方法、装置、计算机设备、存储介质和程序产品 | |
CN118132448A (zh) | 测试用例处理方法、装置、计算机设备和存储介质 | |
CN117743190A (zh) | 接口数据流量回放的验证方法、装置、计算机设备 | |
CN117743169A (zh) | 自动化测试模型的训练方法、装置、设备和存储介质 | |
CN116522036A (zh) | 一种基于在网页端汇总多方信息的环境变量构建方法 | |
CN116541248A (zh) | 异常识别方法、装置、计算机设备和存储介质 | |
CN115964299A (zh) | 程序测试方法、装置、计算机设备和存储介质 | |
CN115827478A (zh) | 代码检视方法、装置、计算机设备和存储介质 |
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 |