首页 / 专利库 / 软件 / 软件回归测试 / 回归测试的流程覆盖方法、服务器及计算机可读存储介质

回归测试的流程覆盖方法、服务器及计算机可读存储介质

阅读:992发布:2020-05-13

专利汇可以提供回归测试的流程覆盖方法、服务器及计算机可读存储介质专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种 软件 测试技术,揭露了一种回归测试的流程 覆盖 方法,该方法包括:根据预设的 种子 页面扫描应用程序每个页面代码对应的跳转逻辑;根据扫描结果 整理 所有跳转行为,并以 树形结构 展示所述所有跳转行为;通过所述树形结构进行遍历,得到所有可能存在的功能流程;获取所述页面代码与测试 用例 之间的对应关系;通过所述页面代码关联所述测试用例与所述功能流程;根据所述测试用例和所述功能流程的对应关系,得到回归测试需要覆盖到的功能流程对应的测试脚本。本发明还提供一种 服务器 及计算机可读存储介质。本发明能够避免漏测造成软件 缺陷 ,或者测试范围过大而浪费人 力 和时间,提高软件 质量 和测试效率。,下面是回归测试的流程覆盖方法、服务器及计算机可读存储介质专利的具体信息内容。

1.一种回归测试的流程覆盖方法,其特征在于,所述方法包括步骤:
根据预设的种子页面扫描应用程序每个页面代码对应的跳转逻辑;
根据扫描结果整理所有跳转行为,所述跳转行为包括跳转前后的页面存在的逻辑关系,并以树形结构展示所述所有跳转行为;
通过所述树形结构进行遍历,得到所有可能存在的功能流程;
获取所述页面代码与测试用例之间的对应关系;
通过所述页面代码关联所述测试用例与所述功能流程;及
根据所述测试用例和所述功能流程的对应关系,得到回归测试需要覆盖到的功能流程对应的测试脚本。
2.如权利要求1所述的回归测试的流程覆盖方法,其特征在于,在所述根据预设的种子页面扫描应用程序每个页面代码对应的跳转逻辑的步骤中:
当未检测到变更代码时,以所述应用程序的首页作为所述种子页面;
当检测到变更代码时,以所述变更代码所在页面作为所述种子页面。
3.如权利要求1或2所述的回归测试的流程覆盖方法,其特征在于,所述所有跳转行为包括由所述种子页面开始,查找与之相关联的所有跳转逻辑。
4.如权利要求1所述的回归测试的流程覆盖方法,其特征在于,在展示所述所有跳转行为的步骤中,通过可视化插件或Java代码以树形结构展示所述所有跳转行为。
5.如权利要求1所述的回归测试的流程覆盖方法,其特征在于,所述通过所述树形结构进行遍历,得到所有可能存在的功能流程的步骤包括:
按页面层次对所述树形结构进行遍历,通过父子页面的逻辑关系获取所述树形结构中每一条路径,一条路径的每个页面对应的功能连接在一起就是一个功能流程。
6.如权利要求2所述的回归测试的流程覆盖方法,其特征在于:
当所述种子页面为所述应用程序的首页时,遍历得到的是所述应用程序的所有功能流程;
当所述种子页面为所述变更代码所在页面时,遍历得到的是所述变更代码所影响的功能流程。
7.如权利要求1所述的回归测试的流程覆盖方法,其特征在于,所述获取所述页面代码与测试用例之间的对应关系的步骤包括:
在所述页面代码相应的位置注入设定的统计代码,当执行测试时,代码运行至注入位置,执行对应的所述统计代码,生成覆盖统计报告,记录执行的测试用例覆盖开始行与结束行,从而分析得出所述测试用例与所述页面代码之间的对应关系。
8.如权利要求1所述的回归测试的流程覆盖方法,其特征在于,所述根据所述测试用例和所述功能流程的对应关系,得到回归测试需要覆盖到的功能流程对应的测试脚本的步骤包括:
获取所述回归测试需要覆盖到的所有功能流程,获取所述功能流程对应的测试用例,获取所述测试用例对应的自动化测试脚本,自动组合所获取到的所有测试脚本。
9.一种服务器,其特征在于,所述服务器包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的回归测试的流程覆盖系统,所述回归测试的流程覆盖系统被所述处理器执行时实现如权利要求1-8中任一项所述的回归测试的流程覆盖方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有回归测试的流程覆盖系统,所述回归测试的流程覆盖系统可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-8中任一项所述的回归测试的流程覆盖方法的步骤。

说明书全文

回归测试的流程覆盖方法、服务器及计算机可读存储介质

技术领域

[0001] 本发明涉及软件测试技术领域,尤其涉及一种回归测试的流程覆盖方法、服务器及计算机可读存储介质。

背景技术

[0002] 目前,在软件产品研发过程中,由于对参数和性能优化或改动次数太多,开发者有时会不记得自己改动的部分,影响到哪些页面覆盖了哪些流程。或者,在多人改动的情况下,多个开发者彼此之间不知道其他人更改了哪些内容,导致改动的部分影响或更改了部分流程。
[0003] 因此,在对产品进行回归测试时,很难保证测试覆盖全流程。通常情况是,要么测试范围定小了,漏测造成软件缺陷;要么测试范围过大,浪费过多人却没有覆盖到新的流程。每次回归测试时,都很难确定是否出现了修改而无法准确定位到测试范围,可能影响软件质量

发明内容

[0004] 有鉴于此,本发明提出一种回归测试的流程覆盖方法、服务器及计算机可读存储介质,以解决至少一个上述技术问题。
[0005] 首先,为实现上述目的,本发明提出一种回归测试的流程覆盖方法,该方法包括步骤:
[0006] 根据预设的种子页面扫描应用程序每个页面代码对应的跳转逻辑;
[0007] 根据扫描结果整理所有跳转行为,所述跳转行为包括跳转前后的页面存在的逻辑关系,并以树形结构展示所述所有跳转行为;
[0008] 通过所述树形结构进行遍历,得到所有可能存在的功能流程;
[0009] 获取所述页面代码与测试用例之间的对应关系;
[0010] 通过所述页面代码关联所述测试用例与所述功能流程;及
[0011] 根据所述测试用例和所述功能流程的对应关系,得到回归测试需要覆盖到的功能流程对应的测试脚本。
[0012] 可选地,在所述根据预设的种子页面扫描应用程序每个页面代码对应的跳转逻辑的步骤中:
[0013] 当未检测到变更代码时,以所述应用程序的首页作为所述种子页面;
[0014] 当检测到变更代码时,以所述变更代码所在页面作为所述种子页面。
[0015] 可选地,所述所有跳转行为包括由所述种子页面开始,查找与之相关联的所有跳转逻辑。
[0016] 可选地,在展示所述所有跳转行为的步骤中,通过可视化插件或Java代码以树形结构展示所述所有跳转行为。
[0017] 可选地,所述通过所述树形结构进行遍历,得到所有可能存在的功能流程的步骤包括:
[0018] 按页面层次对所述树形结构进行遍历,通过父子页面的逻辑关系获取所述树形结构中每一条路径,一条路径的每个页面对应的功能连接在一起就是一个功能流程。
[0019] 可选地,当所述种子页面为所述应用程序的首页时,遍历得到的是所述应用程序的所有功能流程;
[0020] 当所述种子页面为所述变更代码所在页面时,遍历得到的是所述变更代码所影响的功能流程。
[0021] 可选地,所述获取所述页面代码与测试用例之间的对应关系的步骤包括:
[0022] 在所述页面代码相应的位置注入设定的统计代码,当执行测试时,代码运行至注入位置,执行对应的所述统计代码,生成覆盖统计报告,记录执行的测试用例覆盖开始行与结束行,从而分析得出所述测试用例与所述页面代码之间的对应关系。
[0023] 可选地,所述根据所述测试用例和所述功能流程的对应关系,得到回归测试需要覆盖到的功能流程对应的测试脚本的步骤包括:
[0024] 获取所述回归测试需要覆盖到的所有功能流程,获取所述功能流程对应的测试用例,获取所述测试用例对应的自动化测试脚本,自动组合所获取到的所有测试脚本。
[0025] 此外,为实现上述目的,本发明还提供一种服务器,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的回归测试的流程覆盖系统,所述回归测试的流程覆盖系统被所述处理器执行时实现如上述的回归测试的流程覆盖方法的步骤。
[0026] 进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有回归测试的流程覆盖系统,所述回归测试的流程覆盖系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的回归测试的流程覆盖方法的步骤。
[0027] 相较于现有技术,本发明所提出的回归测试的流程覆盖方法、服务器及计算机可读存储介质,可以根据种子页面和页面跳转逻辑梳理页面代码相关的功能流程,然后根据页面代码、测试用例、功能流程三者之间的对应关系,得到回归测试全流程覆盖对应的测试脚本。本发明可以避免漏测造成软件缺陷,或者测试范围过大而浪费人力和时间,提高软件质量和测试效率。附图说明
[0028] 图1是本发明服务器一可选的硬件架构的示意图;
[0029] 图2是本发明回归测试的流程覆盖系统较佳实施例的程序模示意图;
[0030] 图3是本发明中一种展示页面跳转行为的树形结构的示意图;
[0031] 图4是本发明中一种关联页面代码、测试用例和功能流程的流程图的示意图;
[0032] 图5是本发明回归测试的流程覆盖方法较佳实施例的流程示意图;
[0033] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0034] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
[0036] 参阅图1所示,是本发明服务器2一可选的硬件架构的示意图。
[0037] 本实施例中,所述服务器2可包括,但不仅限于,可通过系统总线相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-13的服务器2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0038] 其中,所述服务器2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该服务器2可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
[0039] 所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述服务器2的内部存储单元,例如该服务器2的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述服务器2的外部存储设备,例如该服务器2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器11还可以既包括所述服务器2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述服务器2的操作系统和各类应用软件,例如回归测试的流程覆盖系统200的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0040] 所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器微控制器微处理器、或其他数据处理芯片。该处理器12通常用于控制所述服务器2的总体操作。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行所述的回归测试的流程覆盖系统200等。
[0041] 所述网络接口13可包括无线网络接口或有线网络接口,该网络接口13通常用于在所述服务器2与其他电子设备之间建立通信连接。
[0042] 至此,己经详细介绍了本发明相关设备的硬件结构和功能。下面,将基于上述介绍提出本发明的各个实施例。
[0043] 首先,本发明提出一种回归测试的流程覆盖系统200。
[0044] 参阅图2所示,是本发明回归测试的流程覆盖系统200较佳实施例的程序模块图。
[0045] 本实施例中,所述回归测试的流程覆盖系统200包括一系列的存储于存储器11上的计算机程序指令,当该计算机程序指令被处理器12执行时,可以实现本发明各实施例的回归测试的流程覆盖操作。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,回归测试的流程覆盖系统200可以被划分为一个或多个模块。例如,在图2中,所述回归测试的流程覆盖系统200可以被分割成扫描模块201、展示模块202、遍历模块203、获取模块204、关联模块205、覆盖模块206。其中:
[0046] 所述扫描模块201,用于根据预设的种子页面扫描应用程序每个页面代码对应的跳转逻辑,并记录当前页面和能够跳转的页面。
[0047] 具体地,在对应用程序等软件进行开发的过程中,需要进行回归测试。回归测试需要覆盖该应用程序的全流程用例。另外,应用程序经常需要修改或优化,其中变更代码会影响到该应用程序的功能流程,需要重点对所影响的功能流程进行回归测试。而在本实施例中,回归测试时的流程覆盖范围可以基于页面代码对应的页面跳转逻辑进行确认。
[0048] 所述变更代码包括新增代码、修改代码等。在自动化测试时,以GIT(分布式版本控制系统)端为例,当检测到GIT上出现新代码修改或新增移交部署时,通过命令行git diff可查看代码修改的内容,检测出现新代码或修改代码,可以定位到变更代码的位置。
[0049] 触发脚本扫描操作,根据预设的种子页面,通过预先编译的脚本(例如nodejs或Python)扫描页面代码,得到每个页面代码对应的跳转逻辑,记录当前页面和能够跳转的页面。例如页面可以通过location.href或c.native.forward等方法跳转。在本实施例中,当未检测到变更代码时,以该应用程序的首页作为种子页面。当检测到变更代码时,以该变更代码所在页面作为种子页面。
[0050] 所述展示模块202,用于根据扫描结果整理所有跳转行为,并以树形结构展示跳转行为。
[0051] 具体地,跳转行为是跳转前后的页面存在的逻辑关系,可以包括父页面转子页面。通过页面逻辑跳转方法确定页面逻辑关系。所有跳转行为是指由所述种子页面开始,查找与之相关联的所有跳转逻辑。
[0052] 每个页面都具有页面标识,各个页面标识在跳转过程会存在箭头指向,通过这些箭头指向可以获得跳转节点之间的关系。
[0053] 在本实施例中,通过可视化插件或Java代码将页面逻辑关系以树形结构展示,该可视化插件可以是echart或highChart等。例如,图3所示为一种展示页面跳转行为的树形结构的示意图。
[0054] 所述遍历模块203,用于通过树形结构进行遍历,得到所有可能存在的功能流程。
[0055] 具体地,还是以上述图3为例,遍历该树形结构的过程是按页面层次进行遍历,遍历后的路径结果例如:首页H-A-A1,或首页H-A-A2等。所述功能流程是指各页面跳转逻辑对应的功能,所述树形结构中每一条路径通过父子页面(例如A与A1父子页面)这些逻辑关系可获取,每个页面都有主要功能,如实名认证页面是认证身份证信息功能,一条路径的页面功能连接在一起就是一个功能流程。
[0056] 当种子页面为该应用程序的首页时,遍历得到的是该应用程序的所有功能流程。当种子页面为该变更代码所在页面时,遍历得到的是该变更代码所影响的功能流程。
[0057] 所述获取模块204,用于获取页面代码与测试用例之间的对应关系。
[0058] 具体地,页面代码与测试用例是一对多的关系,极少数是一对一关系。一般而言,所述页面代码可以是H5代码、Java代码等。
[0059] (1)H5代码与测试用例对应关系的获取:
[0060] 在源代码中采用karma+istanbul框架分析代码覆盖率,测试用例在APP端执行时会触发调用代码函数,对应的类库会生出对应的覆盖报告,记录APP端执行的用例覆盖开始行与结束行。该技术核心是在源代码相应的位置注入设定的统计代码,当执行测试代码时,代码运行至注入位置,就会执行对应的统计代码,生成覆盖统计报告,从而能分析得出测试用例与应用程序页面代码之间的对应关系。
[0061] (2)Java代码与测试用例对应关系的获取:
[0062] 在源代码中采用jacoco框架分析代码覆盖率,使用的类库文件不同,技术核心与H5代码相似。
[0063] 所述关联模块205,用于关联测试用例与所述功能流程。
[0064] 具体地,所述获取模块204可以得到页面代码与测试用例之间的对应关系,所述扫描模块201、展示模块202和遍历模块203可以得到页面代码与功能流程的对应关系,因此,可以进一步关联所述测试用例和所述功能流程。尤其是针对所述变更代码,可以得出其影响到哪些页面覆盖了哪些流程,准确定位出所述变更代码的影响范围,并找出这些功能流程对应的测试用例。
[0065] 例如,所述变更代码发生在页面A,所影响的功能流程为A-A1、A-A2、A-A3,对应测试用例1和测试用例2,则可以得到所述变更代码与测试用例1和测试用例2,以及功能流程A-A1、A-A2、A-A3这三部分之间的对应关系。
[0066] 在本实施例中,可以采用流程图来关联所述页面代码、测试用例和功能流程。例如,图4所示为一种关联所述页面代码、测试用例和功能流程的流程图的示意图。
[0067] 所述覆盖模块206,用于根据所述测试用例和功能流程的对应关系,得到回归测试需要覆盖到的功能流程对应的测试脚本。
[0068] 具体地,所有测试用例可以拆分编写不同的自动化测试脚本(参阅图4所示),测试用例与测试脚本一一对应,例如可以通过标题进行对应。
[0069] 当进行回归测试时,采用UI自动化脚本,UI自动化用例执行是需要选择一个路径,如H-A-A1或H-A-A2这样的一条页面跳转逻辑就代表一种功能流程。在本实施例中,可以根据上述步骤得到的对应关系,获取所述回归测试需要覆盖到的所有功能流程,获取所述功能流程对应的测试用例,获取所述测试用例对应的自动化测试脚本,根据所述所有功能流程,可以自动组合所获取到的所有自动化测试脚本,所得到的测试脚本即可全覆盖到该应用程序的所有功能流程。
[0070] 当某段代码进行修改或新增时(变更代码),根据所述变更代码定位到其所影响到的功能流程后,在回归测试时则只需测试其所影响到的功能流程,测试脚本可以对其所影响到的所有功能流程进行覆盖。测试过程在获取代码与测试用例关联时,根据覆盖率报告新增测试用例或修改部分测试用例,进而新增自动化测试脚本或修改自动化测试脚本,根据所述测试脚本对变更代码所影响的功能流程进行重点测试。
[0071] 本实施例提供的回归测试的流程覆盖系统,可以根据种子页面和页面跳转逻辑梳理页面代码相关的功能流程,然后根据页面代码、测试用例、功能流程三者之间的对应关系,得到回归测试全流程覆盖对应的测试脚本,或者准确定位出变更代码所影响到的部分功能流程,从而在回归测试时将测试脚本覆盖该部分功能流程。本系统可以避免漏测造成软件缺陷,或者测试范围过大而浪费人力和时间,提高软件质量和测试效率。
[0072] 此外,本发明还提出一种回归测试的流程覆盖方法。
[0073] 参阅图5所示,是本发明回归测试的流程覆盖方法较佳实施例的流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
[0074] 该方法包括以下步骤:
[0075] 步骤S500,根据预设的种子页面扫描应用程序每个页面代码对应的跳转逻辑,并记录当前页面和能够跳转的页面。
[0076] 具体地,在对应用程序等软件进行开发的过程中,需要进行回归测试。回归测试需要覆盖该应用程序的全流程用例。另外,应用程序经常需要修改或优化,其中变更代码会影响到该应用程序的功能流程,需要重点对所影响的功能流程进行回归测试。而在本实施例中,回归测试时的流程覆盖范围可以基于页面代码对应的页面跳转逻辑进行确认。
[0077] 所述变更代码包括新增代码、修改代码等。在自动化测试时,以GIT端为例,当检测到GIT上出现新代码修改或新增移交部署时,通过命令行git diff可查看代码修改的内容,检测出现新代码或修改代码,可以定位到变更代码的位置。
[0078] 触发脚本扫描操作,根据预设的种子页面,通过预先编译的脚本(例如nodejs或Python)扫描页面代码,得到每个页面代码对应的跳转逻辑,记录当前页面和能够跳转的页面。例如页面可以通过location.href或c.native.forward等方法跳转。在本实施例中,当未检测到变更代码时,以该应用程序的首页作为种子页面。当检测到变更代码时,以该变更代码所在页面作为种子页面。
[0079] 步骤S502,根据扫描结果整理所有跳转行为,并以树形结构展示跳转行为。
[0080] 具体地,跳转行为是跳转前后的页面存在的逻辑关系,可以包括父页面转子页面。通过页面逻辑跳转方法确定页面逻辑关系。所有跳转行为是指由所述种子页面开始,查找与之相关联的所有跳转逻辑。
[0081] 每个页面都具有页面标识,各个页面标识在跳转过程会存在箭头指向,通过这些箭头指向可以获得跳转节点之间的关系。
[0082] 在本实施例中,通过可视化插件或Java代码将页面逻辑关系以树形结构展示,该可视化插件可以是echart或highChart等。例如,图3所示为一种展示页面跳转行为的树形结构的示意图。
[0083] 步骤S504,通过树形结构进行遍历,得到所有可能存在的功能流程。
[0084] 具体地,还是以上述图3为例,遍历该树形结构的过程是按页面层次进行遍历,遍历后的路径结果例如:首页H-A-A1,或首页H-A-A2等。所述功能流程是指各页面跳转逻辑对应的功能,所述树形结构中每一条路径通过父子页面(例如A与A1父子页面)这些逻辑关系可获取,每个页面都有主要功能,如实名认证页面是认证身份证信息功能,一条路径的页面功能连接在一起就是一个功能流程。
[0085] 当种子页面为该应用程序的首页时,遍历得到的是该应用程序的所有功能流程。当种子页面为该变更代码所在页面时,遍历得到的是该变更代码所影响的功能流程。
[0086] 步骤S506,获取页面代码与测试用例之间的对应关系。
[0087] 具体地,页面代码与测试用例是一对多的关系,极少数是一对一关系。一般而言,所述页面代码可以是H5代码、Java代码等。
[0088] (1)H5代码与测试用例对应关系的获取:
[0089] 在源代码中采用karma+istanbul框架分析代码覆盖率,测试用例在APP端执行时会触发调用代码函数,对应的类库会生出对应的覆盖报告,记录APP端执行的用例覆盖开始行与结束行。该技术核心是在源代码相应的位置注入设定的统计代码,当执行测试代码时,代码运行至注入位置,就会执行对应的统计代码,生成覆盖统计报告,从而能分析得出测试用例与应用程序页面代码之间的对应关系。
[0090] (2)Java代码与测试用例对应关系的获取:
[0091] 在源代码中采用jacoco框架分析代码覆盖率,使用的类库文件不同,技术核心与H5代码相似。
[0092] 步骤S508,关联测试用例与功能流程。
[0093] 具体地,根据步骤S506可以得到页面代码与测试用例之间的对应关系,根据步骤S500-S504可以得到页面代码与功能流程的对应关系,因此,可以进一步关联所述测试用例和所述功能流程。尤其是针对所述变更代码,可以得出其影响到哪些页面覆盖了哪些流程,准确定位出所述变更代码的影响范围,并找出这些功能流程对应的测试用例。
[0094] 例如,所述变更代码发生在页面A,所影响的功能流程为A-A1、A-A2、A-A3,对应测试用例1和测试用例2,则可以得到所述变更代码与测试用例1和测试用例2,以及功能流程A-A1、A-A2、A-A3这三部分之间的对应关系。
[0095] 在本实施例中,可以采用流程图来关联所述页面代码、测试用例和功能流程。例如,图4所示为一种关联所述页面代码、测试用例和功能流程的流程图的示意图。
[0096] 步骤S510,根据所述测试用例和功能流程的对应关系,得到回归测试需要覆盖到的功能流程对应的测试脚本。
[0097] 具体地,所有测试用例可以拆分编写不同的自动化测试脚本(参阅图4所示),测试用例与测试脚本一一对应,例如可以通过标题进行对应。
[0098] 当进行回归测试时,采用UI自动化脚本,UI自动化用例执行是需要选择一个路径,如H-A-A1或H-A-A2这样的一条页面跳转逻辑就代表一种功能流程。在本实施例中,可以根据上述步骤得到的对应关系,获取所述回归测试需要覆盖到的所有功能流程,获取所述功能流程对应的测试用例,获取所述测试用例对应的自动化测试脚本,根据所述所有功能流程,可以自动组合所获取到的所有自动化测试脚本,所得到的测试脚本即可全覆盖到该应用程序的所有功能流程。
[0099] 当某段代码进行修改或新增时(变更代码),根据所述变更代码定位到其所影响到的功能流程后,在回归测试时则只需测试其所影响到的功能流程,测试脚本可以对其所影响到的所有功能流程进行覆盖。测试过程在获取代码与测试用例关联时,根据覆盖率报告新增测试用例或修改部分测试用例,进而新增自动化测试脚本或修改自动化测试脚本,根据所述测试脚本对变更代码所影响的功能流程进行重点测试。
[0100] 本实施例提供的回归测试的流程覆盖方法,可以根据种子页面和页面跳转逻辑梳理页面代码相关的功能流程,然后根据页面代码、测试用例、功能流程三者之间的对应关系,得到回归测试全流程覆盖对应的测试脚本,或者准确定位出变更代码所影响到的部分功能流程,从而在回归测试时将测试脚本覆盖该部分功能流程。本方法可以避免漏测造成软件缺陷,或者测试范围过大而浪费人力和时间,提高软件质量和测试效率。
[0101] 本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有回归测试的流程覆盖程序,所述回归测试的流程覆盖程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的回归测试的流程覆盖方法的步骤。
[0102] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0103] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0104] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈