CN112380125B - 测试案例的推荐方法、装置、电子设备及可读存储介质 - Google Patents
测试案例的推荐方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112380125B CN112380125B CN202011276959.XA CN202011276959A CN112380125B CN 112380125 B CN112380125 B CN 112380125B CN 202011276959 A CN202011276959 A CN 202011276959A CN 112380125 B CN112380125 B CN 112380125B
- Authority
- CN
- China
- Prior art keywords
- code
- vector
- elements
- code segment
- case
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 161
- 238000000034 method Methods 0.000 title claims abstract description 71
- 239000013598 vector Substances 0.000 claims description 157
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 26
- 239000012634 fragment Substances 0.000 description 17
- 241001517610 Funa Species 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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/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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种测试案例的推荐方法、装置、电子设备及可读存储介质。该方法包括:获取待测试系统的增量代码片段,以及增量代码片段的待测代码元素调用关系;基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。本方案中,由于是根据元素的调用关系确定出的待推荐测试案例,使得测试案例的覆盖度高,能够保证测试的充分性。
Description
技术领域
本申请涉及自动化测试技术领域,具体而言,本申请涉及一种测试案例的推荐方法、装置、电子设备及可读存储介质。
背景技术
金融机构系统中,一般前端与后端的业务系统之间具有较强的关联性,在对业务系统进行测试中,一个交易场景的测试案例在设计时往往要考虑一连串系统各个节点的调用关系。
但是,对于单系统的测试,通常情况下无法做到对系统链路关联性的高度整合,由于各系统涉及到的业务逻辑也各不相同,单系统的测试人员很难对于上下游系统的各个场景考虑周全,并且测试人员很难对所有的项目、系统、分支等情况进行非常细致的分析覆盖。因此在进行多系统场景的需求分析时,测试案例往往覆盖度低,难以保证测试充分性。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种测试案例的推荐方法,该方法包括:
获取待测试系统的增量代码片段,以及增量代码片段的待测代码元素调用关系;
基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。
可选地,获取增量代码片段的待测代码元素调用关系,包括:
基于增量代码片段内元素之间的第一元素调用关系,以及基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系。
可选地,基于增量代码片段内元素之间的第一元素调用关系,以及基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系,包括:
基于增量代码片段内元素之间的调用关系构建第一向量,并将第一向量确定为第一元素调用关系;
基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的元素调用关系构建第二向量,并将第二向量确定为第二元素调用关系;
基于第一向量以及第二向量构建路径向量,并将路径向量确定为待测代码元素调用关系。
可选地,案例代码元素调用关系包括基于测试案例的代码片段内元素之间的元素调用关系构建的案例代码向量,基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例,包括:
从案例代码向量中查找与路径向量相匹配的目标案例代码向量;
将目标案例代码向量对应的测试案例确定为待推荐测试案例。
可选地,确定增量代码片段内元素之间的第一元素调用关系,包括:
对增量代码片段进行解析;
基于增量代码的解析结果,计算增量代码片段内元素之间的第一元素调用关系。
可选地,确定增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,包括:
对增量代码片段进行解析;
基于增量代码的解析结果,计算增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系。
可选地,上述方法还包括:
基于增量代码片段中元素的第一元素类别以及各第一元素类别中的第一元素数量,并基于待推荐测试案例中元素的第二元素类别以及各第二元素类别中的第二元素数量,确定案例覆盖度。
第二方面,本申请实施例提供了一种测试案例的推荐装置,该装置包括:
增量代码分析模块,用于获取待测试系统的增量代码片段,以及增量代码片段的待测代码元素调用关系;
测试案例的推荐模块,用于基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。
可选地,增量代码分析模块在获取增量代码片段的待测代码元素调用关系时,具体用于:
基于增量代码片段内元素之间的第一元素调用关系,以及基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系。
可选地,增量代码分析模块在基于增量代码片段内元素之间的第一元素调用关系,以及基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系时,具体用于:
基于增量代码片段内元素之间的调用关系构建第一向量,并将第一向量确定为第一元素调用关系;
基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的元素调用关系构建第二向量,并将第二向量确定为第二元素调用关系;
基于第一向量以及第二向量构建路径向量,并将路径向量确定为待测代码元素调用关系。
可选地,案例代码元素调用关系包括基于测试案例的代码片段内元素之间的元素调用关系构建的案例代码向量,测试案例的推荐模块,具体用于:
从案例代码向量中查找与路径向量相匹配的目标案例代码向量;
将目标案例代码向量对应的测试案例确定为待推荐测试案例。
可选地,增量代码分析模块在确定增量代码片段内元素之间的第一元素调用关系时,具体用于:
对增量代码片段进行解析;
基于增量代码的解析结果,计算增量代码片段内元素之间的第一元素调用关系。
可选地,增量代码分析模块在,确定增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系时,具体用于:
对增量代码片段进行解析;
基于增量代码的解析结果,计算增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系。
可选地,上述方法还包括:
案例覆盖度确定模块,用于基于增量代码片段中元素的第一元素类别以及各第一元素类别中的第一元素数量,并基于待推荐测试案例中元素的第二元素类别以及各第二元素类别中的第二元素数量,确定案例覆盖度。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式中所示的测试案例的推荐方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式中所示的测试案例的推荐方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的方案,通过获取待测试系统的增量代码片段以及增量代码片段的待测代码元素调用关系,基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。本方案中,由于是根据元素的调用关系确定出的待推荐测试案例,使得测试案例的覆盖度高,能够保证测试的充分性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种测试案例的推荐方法的流程示意图;
图2为本申请实施例提供的一种测试平台的架构图;
图3为本申请实施例中提供的增量代码片段的元素结构示意图;
图4为本申请实施例中构建出的路径向量的结构示意图;
图5为本申请实施例中的系统A与系统B中元素以及路径向量的结构示意图;
图6为本申请实施例提供的一种测试案例的推荐装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种测试案例的推荐方法的流程示意图,如图1所示,该方法主要可以包括:
步骤S110:获取待测试系统的增量代码片段,以及增量代码片段的待测代码元素调用关系;
步骤S120:基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。
本申请实施例中,可以从代码库中拉取各系统最新版本的项目代码,与旧版本代码进行对比,获得各个系统的增量代码片段。
本申请实施例中,可以对增量代码片段进行解析,从而计算代码中各元素的调用关系,即待测代码元素调用关系。
本申请实施例中,元素可以包括代码中的类、函数以及方法等。
本申请实施例中,可以对测试案例库中的测试案例进行解析,从而计算测试案例代码中各元素的调用关系,即案例代码元素调用关系。
本申请实施例中,可以通过对增量代码的待测代码元素调用关系以及测试案例的案例代码元素调用关系进行分析,从测试案例中确定待推荐测试案例。
由于待推荐测试案例是根据测代码元素调用关系以及案例代码元素调用关系分析出的,将各业务系统之间的节点调用关系纳入了考虑,通过待推荐测试案例进行自动化测试,能够具有更好的测试效果。
本申请实施例提供的方法,通过获取待测试系统的增量代码片段以及增量代码片段的待测代码元素调用关系,基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。本方案中,由于是根据元素的调用关系确定出的待推荐测试案例,使得测试案例的覆盖度高,能够保证测试的充分性。
本申请实施例的一种可选方式中,获取增量代码片段的待测代码元素调用关系,包括:
基于增量代码片段内元素之间的第一元素调用关系,以及基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系。
本申请实施例中,第一元素调用关系为增量代码片段内元素之间的调用关系,即系统内部的类、函数、方法间的调用关系。
第二元素调用关系为增量代码片段内元素与其他代码片段内元素之间的调用关系,即系统间的类、函数、方法间的调用关系。
本申请实施例中,可以基于第一元素调用关系以及第二元素调用关系,来确定待测代码元素调用关系。
本申请实施例的一种可选方式中,基于增量代码片段内元素之间的第一元素调用关系,以及基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系,包括:
基于增量代码片段内元素之间的调用关系构建第一向量,并将第一向量确定为第一元素调用关系;
基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的元素调用关系构建第二向量,并将第二向量确定为第二元素调用关系;
基于第一向量以及第二向量构建路径向量,并将路径向量确定为待测代码元素调用关系。
本申请实施例中,可以构建第一向量,用以表征系统内部的类、函数、方法间的调用关系。可以构建第二向量,用以表征系统之间的类、函数、方法间的调用关系。基于第一向量与第二向量可以构建路径向量,路径向量是展示交易运行的代码路径,能够表征系统内部的元素调用关系以及系统间的元素调用关系。
本申请实施例的一种可选方式中,案例代码元素调用关系包括基于测试案例的代码片段内元素之间的元素调用关系构建的案例代码向量,基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例,包括:
从案例代码向量中查找与路径向量相匹配的目标案例代码向量;
将目标案例代码向量对应的测试案例确定为待推荐测试案例。
本申请实施例中,可以通过代码片段内元素之间的元素调用关系构建的案例代码向量,案例代码向量可以用于表征测试案例代码内元素的调用关系。增量代码在测试案例库中存在对应的测试案例,因此可以在案例代码向量中查找与路径向量相匹配的目标案例代码向量,并将目标案例代码向量对应的测试案例确定为待推荐测试案例。
本申请实施例的一种可选方式中,确定增量代码片段内元素之间的第一元素调用关系,包括:
对增量代码片段进行解析;
基于增量代码的解析结果,计算增量代码片段内元素之间的第一元素调用关系。
本申请实施例中,可以对增量代码片段进行解析,基于增量代码的解析结果来计算第一向量。
本申请实施例的一种可选方式中,确定增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,包括:
对增量代码片段进行解析;
基于增量代码的解析结果,计算增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系。
本申请实施例中,可以对增量代码片段进行解析,基于增量代码的解析结果来计算第二向量。
本申请实施例的一种可选方式中,上述方法还包括:
基于增量代码片段中元素的第一元素类别以及各第一元素类别中的第一元素数量,并基于待推荐测试案例中元素的第二元素类别以及各第二元素类别中的第二元素数量,确定案例覆盖度。
本申请实施例中,可以通过增量代码片段中的元素类别以及数量,以及确定出的待推荐测试案例中元素类别以及数量,来确定案例覆盖度。
图2中示出了本申请实施例提供的一种测试平台的架构图。如图2中所示:
(1)测试系统:测试项目涉及的相关改造系统,系统A、系统B以及系统C为待测试系统,各待测试系统之间存在内部调用关系,这种调用关系为多系统路径分析的基础。
(2)版本对比模块:从代码仓库中拉取各系统最新版本的项目代码,与旧版本代码进行对比,获得各个相关联系统的代码增量(即增量代码片段),分系统传给下游的增量算法模块。
(3)增量算法模块。通过增量算法,对增量代码进行解析,计算各系统内的类、函数、方法间的调用关系,形成内部调用关系向量-函数向量(即第一向量)。
(4)流程算法模块。通过流程算法,对增量代码进行解析,计算各系统间的类、函数、方法间的调用关系,形成外部调用关系向量-流程向量(即第二向量)。
(5)录入模块。基于精准测试平台-录入功能,执行功能测试案例。调用“系统全量代码”对“案例库测试案例(存量)”进行数据化,生成案例与代码之间调用关系向量-案例向量(即案例代码向量),存入数据库,作为数据案例库;持续迭代的新增案例“新功能测试案例”,通过获取“增量代码”,执行案例,生成案例与代码之间调用关系向量-案例向量,存入数据库,作为数据案例库。
(6)路径分析模块。多系统路径分析。在待测试案例录入,执行功能案例后,生成“案例向量”(即案例代码向量),通过数据案例库找到对应的调用关系,“案例向量”反向追溯“函数向量和流程向量”(即第一向量与第二向量),与实际增量代码生成的“函数向量、流程向量”进行对比,生成“结果向量一”,用于计算测试案例覆盖率;案例库测试案例(存量)录入,作为存量数据,增量代码完成计算后,获得“函数向量和流程向量”,与案例库中的存量“案例向量”作对比计算,精选测试案例,生成“结果向量二”,用于计算回归测试范围。
(7)回归算法模块。数据再加工模块。对获得的“结果向量”进行二次加工,根据“结果向量一”计算出实际的测试案例覆盖率,根据“结果向量二”从案例库提取相关的测试案例进行输出;还可以根据前置计算的各种结果参数进行再加工,生成多样化的统计数据,如案例推荐评星,交易修改频率排名,缺陷定位原因等。
(8)页面展示。对回归算法模块计算的数据进行展示,展示测试范围推荐、案例覆盖率统计、案例推荐、问题原因定位等内容。
(9)精准测试平台。整体由版本对比模块、增量算法模块、流程算法模块、录入模块、路径分析模块、回归算法模块、页面展示构成。
作为一个示例,系统的调用关系根据不同情况区分为三种:
(1)系统内,类的内部调用:同一个类内,方法间的调用、方法和分支之间的调用;
系统内,类之间的调用:不同类之间,方法间的调用、方法和分支之间的调用;
系统间,类的外部调用:不同类之间,方法间的调用、方法和分支之间的调用。
(2)增量代码经过增量算法模块生成函数向量(即第一向量),实际为系统内调用关系。定义函数向量为PF,按照系统维度区分,A系统的函数向量为PFA,B系统的函数向量为PFB。
(3)生成的函数向量传递给流程算法模块进行计算,生成流程向量(即第二向量),实际为系统间调用关系。定义流程向量为PP,用来存储系统间不同接口的调用关系。
(4)交易链是展示交易运行的代码路径,定义路径向量用于存储代码及案例执行路径。定义路径向量为PL。
(5)代码经过版本对比后生成的增量代码。定义代码可识别元素包括类Class、方法Fun、分支Br,图3中示出了本例中增量代码片段的元素结构,如图3所示:
系统A有类ClassA1,包含方法FunA11、FunA12,方法FunA12包含分支BrA121、BrA122;
系统A有类ClassA2,包含方法FunA21、FunA22;
系统B有类ClassB1,包含方法FunB11、FunB12。
(6)得出相关调用流程及向量调用流程(即计算路径向量),图4中示出了构建出的路径向量的结构示意图。
a)路径R1:ClassA1方法FunA11-(调用)->FunA12方法-(进行if判断)->如果失败:走到BrA121分支-(调用)->ClassA1方法FunA11,开始循环;
b)路径R2:ClassA1方法FunA11-(调用)->FunA12方法-(进行if判断)->如果成功:走到BrA122分支-(类间调用)->ClassA2方法FunA21-(类内调用)->FunA22方法-(外部调用)->ClassB1方法FunB11-(类内调用)->FunB12方法。
(7)录入模块,测试案例进行录入的过程,记录测试案例的实际代码路径。对执行的测试案例的类、方法、分支以及流程进行计算后存储在数据库中。
(8)案例覆盖度计算:
a)计算流程
i.第一步:代码解析。获得程序修改的类、方法、分支数量。如下清单:类=A0、方法=B0、分支=C0
ii.第二步:案例解析。案例运行后,获得案例运行的类、方法、分支数量。如下清单:类=A1、方法=B1、分支=C1
iii.第三步:权重。类、方法、分支的权重计算。
1.类:a%=A0/(A0+B0+C0)
2.方法:b%=B0/(A0+B0+C0)
3.分支:c%=C0/(A0+B0+C0)
iv.第四步:案例覆盖度计算。案例覆盖度=(A1/A0)*a%+(B1/B0)*b%+(C1/C0)*c%
具体而言,针对上述示例中的增量代码,其案例覆盖度计算流程如下:
1)第一步:代码解析。ClassA1、ClassA2、ClassB1、FunA11、FunA12、BrA121、BrA122、FunA21、FunA22、FunB11、FunB12(A0=3个类、B0=6个方法、C0=2个分支);
2)第二步:案例解析,运行案例得出的代码覆盖范围。ClassA1、ClassA2、ClassB1、FunA11、FunA12、BrA122、FunA21、FunA22、FunB11(A1=3个类、B1=5个方法、C1=1个分支)
3)第三步:权重。各元素的权重设定如下:
1.类:a%=3/11=27.3%
2.方法:b%=6/11=54.5%
3.分支:c%=2/11=18.2%
4)第四步:案例覆盖度计算。案例覆盖度=(3/3)*27.3%+(5/6)*54.5%+(1/2)*18.2%=81.82%
(9)回归测试案例推荐
1)第一步:代码层交易链分析。代码解析,进行路径分析,得出交易链的路径向量;
2)第二步:案例层交易链匹配。对库存的测试案例进行匹配度筛选,得到向量路径与代码交易链向量完全匹配的测试案例(库存的测试案例为前期录入的测试案例,录入后的测试案例包含函数向量、流程向量、路径向量),即代码路径向量=测试案例路径向量
3)第三步:对测试案例进行输出。
具体而言,针对上述示例中的增量代码,其待推荐案例的确定流程如下:
图5中示出了系统A与系统B中元素以及路径向量的结构示意图。
1)第一步:对代码层交易链(即路径向量)分析。对流程图路径做分析,得出4只交易链,路径向量(PLC-代码路径向量、PLT-测试案例路径向量)分别为
①PLC1-路径1:PFA11->PFA12-1->PFAr121
②PLC2-路径2:PFA11->PFA12-2->PFAr122-1->PFA21->PPA22->PFB11-1
③PLC3-路径3:PFA11->PFA12-2->PFAr122-2->PFA13
④PLC4-路径4:PFA11->PFA12-2->PFAr122-1->PFA21->PPA22->PFB11-2
2)第二步:案例层交易链匹配。代码交易链向量=测试案例交易链向量,即二者的路径完全匹配,采用树表查找
①PLC1-路径1匹配测试案例路径向量,找到匹配项为:案例1
②PLC2-路径2匹配案例看交易链向量路径,找到匹配项:案例2、案例5、案例6
③PLC3-路径3匹配案例看交易链向量路径,找到匹配项:案例3、案例7
④PLC4-路径4匹配案例看交易链向量路径,找到匹配项:案例4、案例8、案例9、案例10
3)第三步:输出案例1-案例10,为推荐的回归测试范围。
基于与图1中所示的方法相同的原理,图6示出了本申请实施例提供的一种测试案例的推荐装置的结构示意图,如图6所示,该测试案例的推荐装置20可以包括:
增量代码分析模块210,用于获取待测试系统的增量代码片段,以及增量代码片段的待测代码元素调用关系;
测试案例的推荐模块220,用于基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。
本申请实施例提供的装置,通过获取待测试系统的增量代码片段以及增量代码片段的待测代码元素调用关系,基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。本方案中,由于是根据元素的调用关系确定出的待推荐测试案例,使得测试案例的覆盖度高,能够保证测试的充分性。
可选地,增量代码分析模块在获取增量代码片段的待测代码元素调用关系时,具体用于:
基于增量代码片段内元素之间的第一元素调用关系,以及基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系。
可选地,增量代码分析模块在基于增量代码片段内元素之间的第一元素调用关系,以及基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系时,具体用于:
基于增量代码片段内元素之间的调用关系构建第一向量,并将第一向量确定为第一元素调用关系;
基于增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的元素调用关系构建第二向量,并将第二向量确定为第二元素调用关系;
基于第一向量以及第二向量构建路径向量,并将路径向量确定为待测代码元素调用关系。
可选地,案例代码元素调用关系包括基于测试案例的代码片段内元素之间的元素调用关系构建的案例代码向量,测试案例的推荐模块,具体用于:
从案例代码向量中查找与路径向量相匹配的目标案例代码向量;
将目标案例代码向量对应的测试案例确定为待推荐测试案例。
可选地,增量代码分析模块在确定增量代码片段内元素之间的第一元素调用关系时,具体用于:
对增量代码片段进行解析;
基于增量代码的解析结果,计算增量代码片段内元素之间的第一元素调用关系。
可选地,增量代码分析模块在,确定增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系时,具体用于:
对增量代码片段进行解析;
基于增量代码的解析结果,计算增量代码片段内元素与除增量代码片段之外的代码片段内元素之间的第二元素调用关系。
可选地,上述方法还包括:
案例覆盖度确定模块,用于基于增量代码片段中元素的第一元素类别以及各第一元素类别中的第一元素数量,并基于待推荐测试案例中元素的第二元素类别以及各第二元素类别中的第二元素数量,确定案例覆盖度。
可以理解的是,本实施例中的测试案例的推荐装置的上述各模块具有实现图1中所示的实施例中的测试案例的推荐方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述测试案例的推荐装置的各模块的功能描述具体可以参见图1中所示实施例中的测试案例的推荐方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的测试案例的推荐方法。
作为一个示例,图7示出了本申请实施例所适用的一种电子设备的结构示意图,如图7所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的测试案例的推荐方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,通过获取待测试系统的增量代码片段以及增量代码片段的待测代码元素调用关系,基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。本方案中,由于是根据元素的调用关系确定出的待推荐测试案例,使得测试案例的覆盖度高,能够保证测试的充分性。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的测试案例的推荐方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,通过获取待测试系统的增量代码片段以及增量代码片段的待测代码元素调用关系,基于待测代码元素调用关系以及测试案例的案例代码元素调用关系,从测试案例中确定待推荐测试案例。本方案中,由于是根据元素的调用关系确定出的待推荐测试案例,使得测试案例的覆盖度高,能够保证测试的充分性。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种测试案例的推荐方法,其特征在于,包括:
获取待测试系统的增量代码片段,以及所述增量代码片段的待测代码元素调用关系,其中,获取所述增量代码片段的待测代码元素调用关系,包括:
基于所述增量代码片段内元素之间的第一元素调用关系,
以及基于所述增量代码片段内元素与除所述增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系,包括:
基于所述增量代码片段内元素之间的调用关系构建第一向量,并将所述第一向量确定为第一元素调用关系;
基于所述增量代码片段内元素与除所述增量代码片段之外的代码片段内元素之间的元素调用关系构建第二向量,并将所述第二向量确定为第二元素调用关系;
基于所述第一向量以及所述第二向量构建路径向量,并将所述路径向量确定为待测代码元素调用关系,
其中,所述案例代码元素调用关系包括基于所述测试案例的代码片段内元素之间的元素调用关系构建的案例代码向量;
基于所述待测代码元素调用关系以及测试案例的案例代码元素调用关系,从所述测试案例中确定待推荐测试案例,包括:
从所述案例代码向量中查找与所述路径向量相匹配的目标案例代码向量;
将所述目标案例代码向量对应的测试案例确定为待推荐测试案例。
2.根据权利要求1所述的方法,其特征在于,确定所述增量代码片段内元素之间的第一元素调用关系,包括:
对所述增量代码片段进行解析;
基于所述增量代码的解析结果,计算所述增量代码片段内元素之间的第一元素调用关系。
3.根据权利要求1所述的方法,其特征在于,确定所述增量代码片段内元素与除所述增量代码片段之外的代码片段内元素之间的第二元素调用关系,包括:
对所述增量代码片段进行解析;
基于所述增量代码的解析结果,计算所述增量代码片段内元素与除所述增量代码片段之外的代码片段内元素之间的第二元素调用关系。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
基于所述增量代码片段中元素的第一元素类别以及各第一元素类别中的第一元素数量,并基于所述待推荐测试案例中元素的第二元素类别以及各第二元素类别中的第二元素数量,确定案例覆盖度。
5.一种测试案例的推荐装置,其特征在于,包括:
增量代码分析模块,用于获取待测试系统的增量代码片段,以及所述增量代码片段的待测代码元素调用关系,其中,获取所述增量代码片段的待测代码元素调用关系,包括:
基于所述增量代码片段内元素之间的第一元素调用关系,
以及基于所述增量代码片段内元素与除所述增量代码片段之外的代码片段内元素之间的第二元素调用关系,确定待测代码元素调用关系,包括:
基于所述增量代码片段内元素之间的调用关系构建第一向量,并将所述第一向量确定为第一元素调用关系;
基于所述增量代码片段内元素与除所述增量代码片段之外的代码片段内元素之间的元素调用关系构建第二向量,并将所述第二向量确定为第二元素调用关系;
基于所述第一向量以及所述第二向量构建路径向量,并将所述路径向量确定为待测代码元素调用关系,
其中,所述案例代码元素调用关系包括基于所述测试案例的代码片段内元素之间的元素调用关系构建的案例代码向量;
测试案例的推荐模块,用于基于所述待测代码元素调用关系以及测试案例的案例代码元素调用关系,从所述测试案例中确定待推荐测试案例,包括:
从所述案例代码向量中查找与所述路径向量相匹配的目标案例代码向量;
将所述目标案例代码向量对应的测试案例确定为待推荐测试案例。
6.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-4中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011276959.XA CN112380125B (zh) | 2020-11-16 | 2020-11-16 | 测试案例的推荐方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011276959.XA CN112380125B (zh) | 2020-11-16 | 2020-11-16 | 测试案例的推荐方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112380125A CN112380125A (zh) | 2021-02-19 |
CN112380125B true CN112380125B (zh) | 2024-04-26 |
Family
ID=74585481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011276959.XA Active CN112380125B (zh) | 2020-11-16 | 2020-11-16 | 测试案例的推荐方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380125B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515826A (zh) * | 2017-08-28 | 2017-12-26 | 广州阿里巴巴文学信息技术有限公司 | 测试用例精准推荐方法、装置、系统、设备及存储介质 |
CN108664372A (zh) * | 2018-05-08 | 2018-10-16 | 平安科技(深圳)有限公司 | 测试过程的监控装置、方法及计算机可读存储介质 |
CN110209576A (zh) * | 2019-05-21 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 测试用例覆盖率的计算方法及相关设备 |
CN110489321A (zh) * | 2019-07-08 | 2019-11-22 | 平安科技(深圳)有限公司 | 测试用例筛选方法、装置、计算机设备和存储介质 |
CN110764993A (zh) * | 2019-09-02 | 2020-02-07 | 深圳壹账通智能科技有限公司 | 自动化测试方法及终端设备 |
CN111400164A (zh) * | 2020-02-07 | 2020-07-10 | 浙江口碑网络技术有限公司 | 一种软件测试方法及装置 |
CN111444188A (zh) * | 2020-04-15 | 2020-07-24 | 中信银行股份有限公司 | 存量测试数据的准备方法、装置、存储介质及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715440B2 (en) * | 2012-12-19 | 2017-07-25 | Microsoft Technology Licensing, Llc | Test scope determination based on code change(s) |
US9720813B2 (en) * | 2015-08-13 | 2017-08-01 | Ca, Inc. | Method and apparatus for recommending regression tests |
-
2020
- 2020-11-16 CN CN202011276959.XA patent/CN112380125B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515826A (zh) * | 2017-08-28 | 2017-12-26 | 广州阿里巴巴文学信息技术有限公司 | 测试用例精准推荐方法、装置、系统、设备及存储介质 |
CN108664372A (zh) * | 2018-05-08 | 2018-10-16 | 平安科技(深圳)有限公司 | 测试过程的监控装置、方法及计算机可读存储介质 |
CN110209576A (zh) * | 2019-05-21 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 测试用例覆盖率的计算方法及相关设备 |
CN110489321A (zh) * | 2019-07-08 | 2019-11-22 | 平安科技(深圳)有限公司 | 测试用例筛选方法、装置、计算机设备和存储介质 |
CN110764993A (zh) * | 2019-09-02 | 2020-02-07 | 深圳壹账通智能科技有限公司 | 自动化测试方法及终端设备 |
CN111400164A (zh) * | 2020-02-07 | 2020-07-10 | 浙江口碑网络技术有限公司 | 一种软件测试方法及装置 |
CN111444188A (zh) * | 2020-04-15 | 2020-07-24 | 中信银行股份有限公司 | 存量测试数据的准备方法、装置、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
基于雷达软件缺陷库的测试用例复用技术研究;刘末娇;李昊;申春妮;;信息化研究;20181020(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112380125A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764993A (zh) | 自动化测试方法及终端设备 | |
CN110060139B (zh) | 账务处理方法及装置 | |
CN112181430B (zh) | 代码变更统计方法、装置、电子设备及存储介质 | |
US20160162539A1 (en) | Computer executable method of generating analysis data and apparatus performing the same and storage medium for the same | |
CN110990523A (zh) | 一种法律文书的确定方法及系统 | |
CN115118582A (zh) | 日志分析的方法和装置 | |
Hakim et al. | Modified Alpha++ algorithm for discovering the hybrid of non-free choice and invisible task of business processes | |
CN112286790B (zh) | 一种全链路测试方法、装置、设备和存储介质 | |
CN112380125B (zh) | 测试案例的推荐方法、装置、电子设备及可读存储介质 | |
Chen et al. | Inference for a mean-reverting stochastic process with multiple change points | |
CN114355171B (zh) | 一种可重构芯片性能瓶颈检测平台、检测方法及电子设备 | |
CN111209214B (zh) | 代码测试处理方法、装置、电子设备及介质 | |
CN111797282A (zh) | 产品标签权重确定方法、装置、电子设备及可读存储介质 | |
CN112631905A (zh) | 执行过程数据管理方法、装置、计算机设备及存储介质 | |
CN110765100A (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
Yaremchuk et al. | Big data and similarity-based software reliability assessment: The technique and applied tools | |
CN112632056B (zh) | 一种检验规则的生成方法及装置 | |
CN112115046B (zh) | 一种软件故障定位方法、装置及终端 | |
CN111062816B (zh) | 账户资产监管方法及装置 | |
CN113987010B (zh) | 一种多维数据集的洞察方法以及装置 | |
CN110908902B (zh) | 一种测试步骤的编辑方法、装置及电子设备 | |
CN118170664A (zh) | 一种基于文件扫描的测试案例构建方法、装置及设备 | |
CN113128594A (zh) | 基于跨域数据的评估模型的优化方法及设备 | |
CN117033203A (zh) | 变更代码的关联影响的确定方法、装置和电子设备 | |
CN115688742A (zh) | 基于人工智能的用户数据分析方法及ai系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |