CN109828909A - 回归测试用例确定方法、装置、电子设备及存储介质 - Google Patents
回归测试用例确定方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109828909A CN109828909A CN201811571737.3A CN201811571737A CN109828909A CN 109828909 A CN109828909 A CN 109828909A CN 201811571737 A CN201811571737 A CN 201811571737A CN 109828909 A CN109828909 A CN 109828909A
- Authority
- CN
- China
- Prior art keywords
- change
- path
- function
- call
- test 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种回归测试用例确定方法、装置、电子设备及存储介质,其中,所述方法包括:确定变更功能所对应的变更后调用路径;确定全部变更前调用路径中与变更后调用路径存在交叉关系的关联调用路径;生成回归测试用例,所述回归测试用例包括变更后调用路径所对应的测试用例与关联调用路径所对应的测试用例。本发明实施例将系统中的各个功能下沉至调用路径层面,根据变更后调用路径与变更前调用路径所存在的交叉关系,准确确定变更功能所影响的关联调用路径,进而准确生成回归测试用例,能够有效避免仅根据人工经验所确定的回归测试用例存在,与变更功能相关联的功能所对应的测试用例被漏选的问题,进而有效提高回归测试用例的确定精确度。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种回归测试用例确定方法、装置、电子设备及存储介质。
背景技术
软件测试是针对用户的需求设计测试用例集,并通过逐条执行测试用例,测试系统内各功能的过程。在软件开发过程中,当产生新的测试需求,或者对于现有系统功能的bug进行修改时,需要针对更改后的系统功能重新确定对应的测试用例,并基于重新确定的测试用例进行回归测试,而重新确定的测试用例则为回归测试用例。
现有确定回归测试用例的方法有多种。例如,用例设计人员可以根据对系统内各功能的理解,自行确定可能会受到所更改的功能影响的关联功能,然后将关联功能对应的测试用例作为回归测试用例。然而由于用例设计人员难以精确把握系统内各功能的调用关系等原因,在实际测试中,往往会出现关联功能漏选的情况。例如,参见图1,各功能之间的调用关系结构示意图,登录功能通过身份验证功能和授权功能实现,查找功能通过身份验证功能和关键词输入功能实现。用例设计人员对身份验证功能的bug进行修改,此时,登录功能所对应的测试用例必然会发生变更,但是用例设计人员很容易忽略查找功能也会受到身份验证功能变更的影响,不会重新确定查找功能所对应的测试用例,进而出现回归测试用例漏选的情况。
为了防止出现回归测试用例漏选的情况,也可以直接采用大而全的测试用例集作为回归测试用例。但是如果为了避免回归测试用例漏选的情况采用大而全的测试用例集作为回归测试用例,不仅会浪费大量的重复测试时间,增加测试压力,而且会严重提高测试成本。
发明内容
本申请提供了一种回归测试用例确定方法、装置、电子设备及存储介质,以有效解决现有确定方法所确定的回归测试用例不精确的问题。
第一方面,本发明实施例提供了一种回归测试用例确定方法,包括:
确定变更功能所对应的变更后调用路径,其中,所述变更功能为系统中修改后的功能,所述变更后调用路径为所述变更功能在系统中的执行流程;
确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径,所述变更前调用路径为发生修改动作前,功能所对应的调用路径;
根据所述变更后调用路径和所述关联调用路径,生成回归测试用例。
在本发明实施例第一方面一种可能的实现方式中,所述确定变更功能所对应的变更后调用路径之前还包括:
获取各所述功能的全部下属子功能,以及各所述子功能之间的调用关系,其中,所述子功能包括:预期执行结果和字段;
根据所述预期执行结果和字段,确定对应的调用方法;
根据所述调用方法和所述子功能之间的调用关系,生成各所述功能的全部变更前调用路径。
在本发明实施例第一方面一种可能的实现方式中,所述生成各功能的全部变更前调用路径之后还包括:
按照功能,划分全部所述调用方法;
将划分后的所述调用方法存储至对应的功能下;
按照变更前调用路径,划分同一功能下的全部所述调用方法;
将划分后的所述调用方法存储至对应的变更前调用路径。
在本发明实施例第一方面一种可能的实现方式中,所述确定变更功能所对应的变更后调用路径的具体步骤包括:
获取所述变更功能的变更代码;
确定所述变更代码所对应的变更子实现模块;
确定所述变更子功能与所述变更功能的其余子功能之间的变更后调用关系;
根据所述变更功能的各子功能和所述变更后调用关系,生成所述变更功能所对应的变更后调用路径。
在本发明实施例第一方面一种可能的实现方式中,所述确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径的具体步骤包括:
分别获取全部变更前路径对应的子功能;
确定所述变更前调用路径的子功能所对应的调用方法和所述变更子功能所对应的调用方法;
确定包含至少一个所述变更子功能所对应的调用方法的变更前调用路径为关联调用路径。
在本发明实施例第一方面一种可能的实现方式中,所述确定变更功能所对应的变更后调用路径之前还包括:
根据各所述功能的变更前调用路径,创建变更前测试用例,其中,所述一个变更前测试用例对应所述一条变更前调用路径;
根据各所述变更前测试用例的最右结点,按照预置规约将所述变更前测试用例解析为思维导图形式,其中,所述最右结点为所述变更前调用路径。
在本发明实施例第一方面一种可能的实现方式中,所述确定方法还包括:
按照所述预置规约,解析变更后测试用例为思维导图变更链,其中,所述变更后测试用例为根据所述变更功能所对应的变更后调用路径所生成的测试用例;
根据所述思维导图变更链,更新当前思维导图。
第二方面,本发明实施例提供了一种回归测试用例确定装置,包括:
第一确定模块,用于确定变更功能所对应的变更后调用路径,其中,所述变更功能为系统中修改后的功能,所述变更后调用路径为所述变更功能在系统中的执行流程;
第二确定模块,用于确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径,所述变更前调用路径为发生修改动作前,功能所对应的调用路径;
生成模块,用于根据所述变更后调用路径和所述关联调用路径,生成回归测试用例。
在本发明实施例第二方面一种可能的实现方式中,所述确定装置还包括:
获取模块,用于获取各所述功能的全部下属子功能,以及各所述子功能之间的调用关系,所述子功能包括:预期执行结果和字段;
第一子生成模块,用于根据所述预期执行结果和字段,确定对应的调用方法;
第二子生成模块,用于根据所述调用方法和所述子功能之间的调用关系,生成各所述功能的全部变更前调用路径。
在本发明实施例第二方面一种可能的实现方式中,所述确定装置还包括:
第一划分模块,用于按照功能,划分全部所述调用方法;
第一存储模块,用于将划分后的所述调用方法存储至对应的功能下;
第二划分模块,用于按照变更前调用路径,划分同一功能下的全部所述调用方法;
第二存储模块,用于将划分后的所述调用方法存储至对应的变更前调用路径。
在本发明实施例第二方面一种可能的实现方式中,所述第一确定模块包括:
子获取模块,用于获取所述变更功能的变更代码;
第一子确定模块,用于确定所述变更代码所对应的变更子实现模块;
第二子确定模块,用于确定所述变更子功能与所述变更功能的其余子功能之间的变更后调用关系;
第三子生成模块,用于根据所述变更功能的各子功能和所述变更后调用关系,生成所述变更功能所对应的变更后调用路径。
在本发明实施例第二方面一种可能的实现方式中,所述第二确定模块包括:
子功能获取模块,用于分别获取全部变更前路径对应的子功能;
第三子确定模块,用于确定所述变更前调用路径的子功能所对应的调用方法和所述变更子功能所对应的调用方法;
第四子确定模块,用于确定包含至少一个所述变更子功能所对应的调用方法的变更前调用路径为关联调用路径。
在本发明实施例第二方面一种可能的实现方式中,所述确定装置还包括:
创建模块,用于根据各所述功能的变更前调用路径,创建变更前测试用例,其中,所述一个变更前测试用例对应所述一条变更前调用路径;
第一解析模块,用于根据各所述变更前测试用例的最右结点,按照预置规约将所述变更前测试用例解析为思维导图形式,其中,所述最右结点为所述变更前调用路径。
在本发明实施例第二方面一种可能的实现方式中,所述确定装置还包括:
第二解析模块,用于按照所述预置规约,解析变更后测试用例为思维导图变更链,其中,所述变更后测试用例为根据所述变更功能所对应的变更后调用路径所生成的测试用例;
更新模块,用于根据所述思维导图变更链,更新当前思维导图。
第三方面,本发明实施例提供了一种电子设备,包括:
处理器,以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一所述的回归测试用例确定方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的回归测试用例确定方法。
本发明实施例提供的回归测试用例确定方法、装置、电子设备及存储介质,其中,回归测试用例确定方法中,确定变更功能所对应的变更后调用路径;确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径;生成回归测试用例。本发明实施例将系统中的功能下沉至调用路径层面,通过确定变更功能的变更后调用路径与系统内全部功能的变更前调用路径的所存在的交叉关系,进而确定变更功能所影响的关联调用路径。将变更后调用路径对应的测试用例与关联调用路径对应的测试用例均作为回归测试用例,能够有效避免仅根据人工经验所确定的回归测试用例存在,与变更功能相关联的功能所对应的测试用例被漏选的问题,进而有效提高回归测试用例的确定精确度。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种各模块之间的调用关系结构示意图;
图2为本发明实施例提供的回归测试用例确定方法实施例一的流程示意图;
图3为本发明实施例提供的回归测试用例确定方法实施例二的流程示意图;
图4为本发明实施例提供的变更前调用路径结构示意图;
图5为本发明实施例提供的回归测试用例确定方法实施例三的流程示意图;
图6为本发明实施例提供的回归测试用例确定方法实施例四的流程示意图;
图7为本发明实施例提供的变更后调用路径的变更结构示意图;
图8为本发明实施例提供的回归测试用例确定方法实施例五的流程示意图;
图9为本发明实施例提供的回归测试用例确定方法实施例六的流程示意图;
图10为本发明实施例提供的测试用例的思维导图示意图;
图11为本发明实施例提供的回归测试用例确定方法实施例七的流程示意图;
图12为本发明实施例提供的回归测试用例确定装置实施例一的结构示意图;
图13为本发明实施例提供的回归测试用例确定装置实施例二的结构示意图;
图14为本发明实施例提供的回归测试用例确定装置实施例三的结构示意图;
图15为本发明实施例提供的回归测试用例确定装置实施例四的结构示意图;
图16为本发明实施例提供的回归测试用例确定装置实施例五的结构示意图;
图17为本发明实施例提供的回归测试用例确定装置实施例六的结构示意图;
图18为本发明实施例提供的回归测试用例确定装置实施例七的结构示意图;
图19为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本发明实施例保护的范围。
系统中的各个功能是指在系统中能够执行并实现用户需求的实体或者虚拟装置,例如单元、模块、功能体等。系统中各功能在运行时,需要通过调用对应的接口实现相应地功能,例如,登录功能,它会获取用户输入的用户名和密码,然后调用信息匹配的接口,其中,首先会调用字符比对的接口,判断用户名是否存在于当前用户库中,若能够匹配当前用户库中的用户名数据,则继续验证用户输入的用户名和密码是否相匹配,根据匹配结果判定返回状态是成功或者失败,最后输出状态结果,即登录成功或者登录失败,上述流程即为登录功能在系统中的执行流程,也称为登录功能的调用路径。其中,系统可以为计算机、手机等终端设备的软件运行环境。
测试用例通常是根据路径分析方法编写的,即根据功能在系统内的调用路径,对应设计为测试用例的测试执行流程,且每一个测试用例均对应唯一的调用路径,因此,可以用测试用例对应的功能的调用路径来代表该测试用例。
图2为本发明实施例提供的回归测试用例确定方法实施例一的流程示意图。如图1所示,本实施例提供的回归测试用例确定方法包括:
S101:确定变更功能所对应的变更后调用路径,其中,所述变更功能为系统中修改后的功能,所述变更后调用路径为所述变更功能在系统中的执行流程。
根据用户的需求,对系统中部分功能的bug进行修复,和/或针对新添加的需求,添加功能,从而对系统中的原有功能进行修改,修改后的功能即为变更功能。相应地,功能变更后,其在系统中的运行流程也会发生变更,即调用路径发生变更,生成变更后调用路径。
S102:确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径,所述变更前调用路径为发生修改动作前,功能所对应的调用路径。
S103:根据所述变更后调用路径和所述关联调用路径,生成回归测试用例。
参见图1,登录功能在系统中的调用路径为,同时调用授权功能和身份验证功能实现登录功能,将上述调用路径(变更前调用路径)对应的测试用例定义为case1;查找功能在系统中的调用路径为,同时调用身份验证功能和关键词输入功能实现查找功能,将上述调用路径(变更前调用路径)对应的测试用例定义为case2。系统功能设计人员为了完善登录功能,对身份验证功能上影响验证速度的部分进行bug修复,此时,身份验证功能为变更功能,登录功能在身份验证功能变更后所对应的调用路径也将发生变更,即为变更后调用路径。与此同时,由于查找功能的调用路径包含身份验证功能,即查找功能的调用路径与身份验证功能变更后所对应的变更后调用路径存在交叉关系,因此,一旦身份验证功能发生变更,相应地,必然对查找功能产生影响,查找功能的调用路径也将或疑似发生变更,此时查找功能的调用路径即为关联调用路径。
变更后的身份验证功能需要进行回归测试,测试身份验证功能以及登录功能是否正常,同时,关联调用路径所对应的查找功能也需要进行回归测试,测试是否被身份验证功能所影响,即需要将变更后调用路径所确定的测试用例case3与关联调用路径所确定的测试用例case4均作为回归测试用例。
现有回归测试用例的确定方法,只能准确确定case3,但是无法准确确定case4,极易出现case4漏选的情况,造成回归测试用例不全的问题。由以上技术方案可知,本实施例所提供的回归测试用例确定方法,将系统中的各个功能下沉至调用路径层面,通过确定变更功能的变更后调用路径与系统内全部功能的变更前调用路径的所存在的交叉关系,进而确定变更功能所影响的关联调用路径。将变更后调用路径对应的测试用例与关联调用路径对应的测试用例均作为回归测试用例,能够有效避免仅根据人工经验所确定的回归测试用例存在,与变更功能相关联的功能所对应的测试用例被漏选的问题,进而有效提高回归测试用例的确定精确度。
为了精确生成系统中各功能的测试用例,同时为了准确确定与变更功能存在关联的功能,准确确定系统内各功能的变更前调用路径显得尤为重要。
如图3所示,本发明实施例提供的回归测试用例确定方法实施例二的流程示意图。本实施例提供的回归测试用例确定方法,在确定变更功能所对应的变更后调用路径之前还包括:
S201:获取各所述功能的全部下属子功能,以及各所述子功能之间的调用关系,其中,所述子功能包括:预期执行结果和字段。
系统中各功能之间存在相互调用的关系,一个上级功能的正常执行需要依靠多个下属子功能的支持。例如,参见图1,登录功能的实现,需要下属子功能,身份验证功能首先根据用户身份信息得到验证信息,然后由授权功能根据验证信息得到授权信息,最后登录功能根据授权信息输出是否登录成功的结果。可见,各子功能,身份验证功能和授权功能之间也存在调用关系。
S202:根据所述预期执行结果和字段,确定对应的调用方法。
各子功能包括:预期执行结果和字段,系统功能设计人员能够根据预期执行结果确定该子功能的理论功能,即设计需求,并且能够通过各字段确定该子功能的具体执行数据和执行步骤等属性信息。系统功能设计人员根据子功能的预期执行结果和字段,准确确定对应的调用方法。例如,身份验证功能的预期执行结果为身份验证成功和失败,而身份验证功能的字段包括验证字段a、跳转至重新输入字段b、警示字段c、跳转至授权功能字段d等,其中,针对于身份验证功能的身份验证失败为预期执行结果所确定的调用方法就是:调用方法M:a-b-c;针对于身份验证功能的身份验证成功为预期执行结果所确定的调用方法就是:调用方法N:a-d。
每个子功能会根据对应的调用方法实现各自的功能,而每一个调用方法均以包(package)名/类(class)名/方法(method)名构成,例如,身份验证功能对应的调用方法为package A/class A/method A。
S203:根据所述调用方法和所述子功能之间的调用关系,生成各所述功能的全部变更前调用路径。
如图4所示,登录功能的子功能包括身份验证功能和授权功能,其中,身份验证功能对应的调用方法为package A/class A/method A,授权功能对应的调用方法为packageA/class A/method A2,上述两种调用方法均属于WF(Web Framework,网页框架)层级;而两种调用方法隶属于的登录功能在SCF(Service Communication Framework,服务通信框架)层级也存在对应的整体调用方法package B/class B/method B。根据登录功能与身份验证功能和授权功能之间的调用关系,以及身份验证功能和授权功能之间的调用关系,能够生成登录功能变更前调用路径route1。
其中,同一个功能可以同时对应多条调用路径。例如,如图4所示,登录功能的子功能还包括身份代理功能,即用户可以选择免除身份验证的过程,直接以游客身份登录,进而实现登录功能。身份代理功能对应的调用方法package C/class C/method C,属于WF层级,而对应的登录功能在SCF层级的整体调用方法为package B/class B/method B2。此时,根据登录功能与身份代理功能之间的调用关系,能够生成登录功能的另一条变更前调用路径route2。
为了能够准确确定变更功能所影响的功能,需要准确且全面地确定出系统中各功能的全部变更前调用路径。
各功能的测试用例都是根据调用路径对应生成的,准确且全面地确定功能的变更前调用路径需要耗费大量的时间和资源,因此,将各功能的调用路径存储,并重复利用具有重要意义。由于每个功能包含多个调用路径,每个调用路径又包含多个调用方法,且调用方法之间存在复杂的调用关系,如果仅从调用方法的层级开始建立存储关系,而不是从功能到调用路径,再从调用路径到调用方法中的更下位的层级(从包到类,再到方法)建立存储关系,就无法唯一确定所存储的调用方法,进而无法准确建立功能与调用方法之间的对应关系,也就无法准确确定对应的调用路径,更无法继续生成有效的测试用例进行测试。
如图5所示,本发明实施例提供的回归测试用例确定方法实施例三的流程示意图。本实施例提供的回归测试用例确定方法,在生成各功能的全部变更前调用路径之后还包括:
S301:按照功能,划分全部所述调用方法;
S302:将划分后的所述调用方法存储至对应的功能下;
S303:按照变更前调用路径,划分同一功能下的全部所述调用方法;
S304:将划分后的所述调用方法存储至对应的变更前调用路径。
本实施例采用从高级到低级的顺序,即从功能的层级到调用方法的层级,存储调用方法。首先将全部调用方法按照功能进行分类,并将各调用方法存储至对应的功能下。其中,可以在调用方法上添加分类标记,例如,T1-package A/class A/method A,T1作为登录功能的类别标记。然后将同一功能下的全部调用方法继续按照变更前调用路径分类,并将各调用方法精确存储至对应的变更前调用路径下。其中,可以在调用方法上继续添加分类标记,例如,T1-route1-package A/class A/method A,route1作为登录功能的第一条变更前调用路径的类别标记。
进一步地,在调用方法层级进行存储的过程中,可以按照从包名到类名,再到方法名的顺序进行存储,并且在调用方法上继续添加分类标记,例如,T1-route1-package1-class1-method1-package A/class A/method A。
其中,由于子功能可以同时应用在多个功能中,因此,子功能所对应的调用方法也会出现在多个功能、多个变更前调用路径中,因此,同一个调用方法可以同时存储在多个变更前调用路径下,并且为了保证功能与调用方法的对应关系,调用方法的存储次数必须与所属变更前调用路径的条数相等。
综上,将功能的调用方法按照从高级到低级的顺序进行分类存储,能够有效避免直接存储调用方法,然后再分类所带来的分类不准、划分不清的问题。
进一步地,如图6所示,本发明实施例提供的回归测试用例确定方法实施例四的流程示意图。本实施例提供的回归测试用例确定方法,所述确定变更功能所对应的变更后调用路径的具体步骤包括:
S401:获取所述变更功能的变更代码。
S402:确定所述变更代码所对应的变更子功能。
S403:确定所述变更子功能与所述变更功能的其余子功能之间的变更后调用关系。
S404:根据所述变更功能的各子功能和所述变更后调用关系,生成所述变更功能所对应的变更后调用路径。
功能由代码编译而成,修改功能,即修改功能的代码,此时,可以将发生修改的代码称作变更代码,同时,能够根据变更代码确定变更代码所在的子功能,称作变更子功能。其中,变更代码也可以直接出现在功能上,该功能相当于变更子功能。
变更子功能与其余子功能之间的调用关系也会发生相应的变更,形成变更后调用关系,例如,如图1所示,身份验证功能在发生变更之前,在验证通过之后直接调用授权功能,而身份验证功能在变更之后,如图7所示,在验证通过之后需要先调用二次验证功能,在第二次信息验证通过后,才能够调用授权功能。
确定变更子功能对应的调用方法,并根据各子功能之间的变更后调用关系,重新生成变更后调用路径。例如,如图7所示,身份验证功能变更后所对应的调用路径为,身份验证功能首先根据用户身份信息得到验证信息,然后由二次验证功能根据用户身份信息和验证信息得到二次验证信息,授权功能根据二次验证信息得到授权信息,最后登录功能根据授权信息输出是否登录成功的结果。
进一步地,通过上述步骤获得的变更后调用路径,需要与变更前调用路径进行比对。
如图8所示,为本发明实施例提供的回归测试用例确定方法实施例五的流程示意图。本实施例提供的回归测试用例确定方法,确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径的具体步骤包括:
S501:分别获取全部变更前路径对应的子功能。
S502:确定所述变更前调用路径的子功能所对应的调用方法和所述变更子功能所对应的调用方法。
S503:确定包含至少一个所述变更子功能所对应的调用方法的变更前调用路径为关联调用路径。
从功能的全部子功能中,确定出对应至各变更前调用路径的子功能,并确定出变更前调用路径的子功能所对应的调用方法。根据变更子功能能够确定所对应的调用方法。此时,将变更前调用路径和变更后调用路径均下沉至调用方法层面,通过对比变更前调用路径与变更后调用路径是否存在相同的调用方法,进而确定变更前调用路径是否与变更后调用路径存在交叉关系。只要变更前调用路径存在与变更后调用路径大于或者等于一个相同的调用方法,即可将该变更前调用路径确定为关联调用路径。
综上,本实施例所提供的关联调用路径确定方法,能够从更下层的调用方法层面,寻找出变更前调用路径与变更后调用路径之间的交叉关系,从而更加准确地确定出关联调用路径。
为了能够更加清晰地表示各测试用例之间的调用关系,将调用关系具象化,方便用例设计人员的设计工作,如图9所示,为本发明实施例提供的回归测试用例确定方法实施例六的流程示意图。在本实施例中,确定变更功能所对应的变更后调用路径之前还包括:
S601:根据各所述功能的变更前调用路径,创建变更前测试用例,其中,所述一个变更前测试用例对应所述一条变更前调用路径。
S602:根据各所述变更前测试用例的最右结点,按照预置规约将所述变更前测试用例解析为思维导图形式,其中,所述最右结点为所述变更前调用路径。
设计测试用例与变更前调用路径为唯一对应的关系,因此,根据一条变更前调用路径能且只能创建一个变更前测试用例。所创建的变更前测试用例包括:最右结点和中间各级结点,其中,最右结点为变更前调用路径,中间各级结点分别为测试用例名称、测试步骤、测试预期结果。
按照xmind-case规约,将变更前测试用例所对应的变更前调用路径解析为思维导图形式,如图10所示。
进一步地,如图11所示,为本发明实施例提供的回归测试用例确定方法实施例七的流程示意图。在本实施例中,所述方法还包括:
S701:按照所述预置规约,解析变更后测试用例为思维导图变更链,其中,所述变更后测试用例为根据所述变更模块所对应的变更后调用路径所生成的测试用例。
S702:根据所述思维导图变更链,更新当前思维导图。
在xmind-case的解析过程中,每一条测试用例都会被解析为一条思维导图链,一旦功能出现变更,则按照xmind-case规约,将变更后测试用例解析为思维导图中的变更链,并用该思维导图变更链替换变更前的思维导图链,实现当前思维导图的更新。
进一步地,通过更新后的思维导图能够准确找到与思维导图变更链存在交叉点的思维导图链,这些思维导图链所对应的测试用例为关联测试用例,即受到或疑似受到变更模块影响的功能所对应的测试用例,可以直接将关联测试用例和思维导图变更链所对应的测试用例确定为回归测试用例。
图12为本发明实施例提供的回归测试用例确定装置实施例一的结构示意图。如图12所示,本实施例确定装置包括:第一确定模块1,用于确定变更功能所对应的变更后调用路径,其中,所述变更功能为系统中修改后的功能,所述变更后调用路径为所述变更功能在系统中的执行流程;第二确定模块2,用于确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径,所述变更前调用路径为发生修改动作前,功能所对应的调用路径;生成模块3,用于根据所述变更后调用路径和所述关联调用路径,生成回归测试用例。
图13为本发明实施例提供的回归测试用例确定装置实施例二的结构示意图。如图13所示,所述装置还包括:获取模块4,用于获取各所述功能的全部下属子功能,以及各所述子功能之间的调用关系,其中,所述子功能包括:预期执行结果和字段;第一子生成模块5,用于根据所述预期执行结果和字段,确定对应的调用方法;第二子生成模块6,用于根据所述调用方法和所述子功能之间的调用关系,生成各所述功能的全部变更前调用路径。
图14为本发明实施例提供的回归测试用例确定装置实施例三的结构示意图。如图14所示,所述装置还包括:第一划分模块7,用于按照功能,划分全部所述调用方法;第一存储模块8,用于将划分后的所述调用方法存储至对应的功能下;第二划分模块9,用于按照变更前调用路径,划分同一功能下的全部所述调用方法;第二存储模块10,用于将划分后的所述调用方法存储至对应的变更前调用路径。
图15为本发明实施例提供的回归测试用例确定装置实施例四的结构示意图。如图15所示,所述第一确定模块1包括:子获取模块11,用于获取所述变更功能的变更代码;第一子确定模块12,用于确定所述变更代码所对应的变更子功能;第二子确定模块13,用于确定所述变更子功能与所述变更功能的其余子功能之间的变更后调用关系;第三子生成模块14,用于根据所述变更功能的各子功能和所述变更后调用关系,生成所述变更功能所对应的变更后调用路径。
图16为本发明实施例提供的回归测试用例确定装置实施例五的结构示意图。如图16所示,所述第二确定模块2包括:子功能获取模块21,用于分别获取全部变更前路径对应的子功能;第三子确定模块22,用于确定所述变更前调用路径的子功能所对应的调用方法和所述变更子功能所对应的调用方法;第四子确定模块23,用于确定包含至少一个所述变更子功能所对应的调用方法的变更前调用路径为关联调用路径。
图17为本发明实施例提供的回归测试用例确定装置实施例六的结构示意图。如图17所示,所述装置还包括:创建模块15,用于根据各所述功能的变更前调用路径,创建变更前测试用例,其中,所述一个变更前测试用例对应所述一条变更前调用路径;第一解析模块16,用于根据各所述变更前测试用例的最右结点,按照预置规约将所述变更前测试用例解析为思维导图形式,其中,所述最右结点为所述变更前调用路径。
图18为本发明实施例提供的回归测试用例确定装置实施例七的结构示意图。如图18所示,所述装置还包括:第二解析模块17,用于按照所述预置规约,解析变更后测试用例为思维导图变更链,其中,所述变更后测试用例为根据所述变更功能所对应的变更后调用路径所生成的测试用例;更新模块18,用于根据所述思维导图变更链,更新当前思维导图。
图19为本发明实施例提供的电子设备的硬件结构示意图。如图19所示,该电子设备包括:存储器19和处理器20;
存储器19,用于存储计算机程序;
处理器20,用于执行存储器存储的计算机程序,以实现上述实施例中的回归测试用例确定方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器19既可以是独立的,也可以跟处理器20集成在一起。
当所述存储器19是独立于处理器20之外的器件时,所述电子设备还可以包括:
总线24,用于连接所述存储器19和处理器20。
本发明实施例提供的电子设备可用于执行上述的回归测试用例确定方法,其实现方式和技术效果类似,本发明实施例此处不再赘述。
本发明实施例还提供一种电子设备,该电子设备用于执行上述实施例中任一所示的流量数据监控方法中的各个步骤。
本发明实施例还提供一种可读存储介质,可读存储介质中存储有计算机程序,当消息发送的装置的至少一个处理器执行该计算机程序时,消息发送的装置执行上述实施例任一所述的回归测试用例确定方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于以计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种回归测试用例确定方法,其特征在于,所述方法包括:
确定变更功能所对应的变更后调用路径,其中,所述变更功能为系统中修改后的功能,所述变更后调用路径为所述变更功能在系统中的执行流程;
确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径,所述变更前调用路径为发生修改动作前,功能所对应的调用路径;
根据所述变更后调用路径和所述关联调用路径,生成回归测试用例。
2.根据权利要求1所述的确定方法,其特征在于,所述确定变更功能所对应的变更后调用路径之前还包括:
获取各所述功能的全部下属子功能,以及各所述子功能之间的调用关系,其中,所述子功能包括:预期执行结果和字段;
根据所述预期执行结果和字段,确定对应的调用方法;
根据所述调用方法和所述子功能之间的调用关系,生成各所述功能的全部变更前调用路径。
3.根据权利要求2所述的确定方法,其特征在于,所述生成各功能的全部变更前调用路径之后还包括:
按照功能,划分全部所述调用方法;
将划分后的所述调用方法存储至对应的功能下;
按照变更前调用路径,划分同一功能下的全部所述调用方法;
将划分后的所述调用方法存储至对应的变更前调用路径。
4.根据权利要求2所述的确定方法,其特征在于,所述确定变更功能所对应的变更后调用路径的具体步骤包括:
获取所述变更功能的变更代码;
确定所述变更代码所对应的变更子实现模块;
确定所述变更子功能与所述变更功能的其余子功能之间的变更后调用关系;
根据所述变更功能的各子功能和所述变更后调用关系,生成所述变更功能所对应的变更后调用路径。
5.根据权利要求4所述的确定方法,其特征在于,所述确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径的具体步骤包括:
分别获取全部变更前路径对应的子功能;
确定所述变更前调用路径的子功能所对应的调用方法和所述变更子功能所对应的调用方法;
确定包含至少一个所述变更子功能所对应的调用方法的变更前调用路径为关联调用路径。
6.根据权利要求1所述的确定方法,其特征在于,所述确定变更功能所对应的变更后调用路径之前还包括:
根据各所述功能的变更前调用路径,创建变更前测试用例,其中,所述一个变更前测试用例对应所述一条变更前调用路径;
根据各所述变更前测试用例的最右结点,按照预置规约将所述变更前测试用例解析为思维导图形式,其中,所述最右结点为所述变更前调用路径。
7.根据权利要求6所述的确定方法,其特征在于,所述确定方法还包括:
按照所述预置规约,解析变更后测试用例为思维导图变更链,其中,所述变更后测试用例为根据所述变更功能所对应的变更后调用路径所生成的测试用例;
根据所述思维导图变更链,更新当前思维导图。
8.一种回归测试用例确定装置,其特征在于,所述装置包括:
第一确定模块,用于确定变更功能所对应的变更后调用路径,其中,所述变更功能为系统中修改后的功能,所述变更后调用路径为所述变更功能在系统中的执行流程;
第二确定模块,用于确定全部变更前调用路径中与所述变更后调用路径存在交叉关系的关联调用路径,所述变更前调用路径为发生修改动作前,功能所对应的调用路径;
生成模块,用于根据所述变更后调用路径和所述关联调用路径,生成回归测试用例。
9.根据权利要求8所述的确定装置,其特征在于,所述确定装置还包括:
获取模块,用于获取各所述功能的全部下属子功能,以及各所述子功能之间的调用关系,所述子功能包括:预期执行结果和字段;
第一子生成模块,用于根据所述预期执行结果和字段,确定对应的调用方法;
第二子生成模块,用于根据所述调用方法和所述子功能之间的调用关系,生成各所述功能的全部变更前调用路径。
10.根据权利要求9所述的确定装置,其特征在于,所述确定装置还包括:
第一划分模块,用于按照功能,划分全部所述调用方法;
第一存储模块,用于将划分后的所述调用方法存储至对应的功能下;
第二划分模块,用于按照变更前调用路径,划分同一功能下的全部所述调用方法;
第二存储模块,用于将划分后的所述调用方法存储至对应的变更前调用路径。
11.根据权利要求9所述的确定装置,其特征在于,所述第一确定模块包括:
子获取模块,用于获取所述变更功能的变更代码;
第一子确定模块,用于确定所述变更代码所对应的变更子实现模块;
第二子确定模块,用于确定所述变更子功能与所述变更功能的其余子功能之间的变更后调用关系;
第三子生成模块,用于根据所述变更功能的各子功能和所述变更后调用关系,生成所述变更功能所对应的变更后调用路径。
12.根据权利要求11所述的确定装置,其特征在于,所述第二确定模块包括:
子功能获取模块,用于分别获取全部变更前路径对应的子功能;
第三子确定模块,用于确定所述变更前调用路径的子功能所对应的调用方法和所述变更子功能所对应的调用方法;
第四子确定模块,用于确定包含至少一个所述变更子功能所对应的调用方法的变更前调用路径为关联调用路径。
13.根据权利要求8所述的确定装置,其特征在于,所述确定装置还包括:
创建模块,用于根据各所述功能的变更前调用路径,创建变更前测试用例,其中,所述一个变更前测试用例对应所述一条变更前调用路径;
第一解析模块,用于根据各所述变更前测试用例的最右结点,按照预置规约将所述变更前测试用例解析为思维导图形式,其中,所述最右结点为所述变更前调用路径。
14.根据权利要求13所述的确定装置,其特征在于,所述确定装置还包括:
第二解析模块,用于按照所述预置规约,解析变更后测试用例为思维导图变更链,其中,所述变更后测试用例为根据所述变更功能所对应的变更后调用路径所生成的测试用例;
更新模块,用于根据所述思维导图变更链,更新当前思维导图。
15.一种电子设备,其特征在于,所述电子设备包括:
处理器,以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一所述的回归测试用例确定方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一所述的回归测试用例确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811571737.3A CN109828909A (zh) | 2018-12-21 | 2018-12-21 | 回归测试用例确定方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811571737.3A CN109828909A (zh) | 2018-12-21 | 2018-12-21 | 回归测试用例确定方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109828909A true CN109828909A (zh) | 2019-05-31 |
Family
ID=66859978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811571737.3A Pending CN109828909A (zh) | 2018-12-21 | 2018-12-21 | 回归测试用例确定方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828909A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559368A (zh) * | 2020-12-23 | 2021-03-26 | 马上消费金融股份有限公司 | 接口自动化测试方法及其用例生成方法、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876939A (zh) * | 2009-11-20 | 2010-11-03 | 北京信息科技大学 | 系统测试方法及装置 |
US20110016452A1 (en) * | 2009-01-15 | 2011-01-20 | Infosys Technologies Limited | Method and system for identifying regression test cases for a software |
CN102831056A (zh) * | 2012-07-31 | 2012-12-19 | 东南大学 | 一种基于修改影响分析的回归测试用例生成方法 |
CN102880547A (zh) * | 2012-09-05 | 2013-01-16 | 无锡江南计算技术研究所 | 一种软件单元与部件与相结合的源代码变更影响分析与测试方法 |
CN102915271A (zh) * | 2012-10-31 | 2013-02-06 | 北京邮电大学 | 基于控制流图的单元回归测试用例集合优化方法 |
CN103678097A (zh) * | 2012-09-05 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种选择回归测试用例的方法和装置 |
CN103902445A (zh) * | 2012-12-27 | 2014-07-02 | 中国移动通信集团吉林有限公司 | 一种回归测试对象确定方法及装置 |
US8806450B1 (en) * | 2008-06-26 | 2014-08-12 | Juniper Networks, Inc. | Static analysis in selective software regression testing |
CN105808438A (zh) * | 2016-03-11 | 2016-07-27 | 北京信息科技大学 | 一种基于函数调用路径的测试用例复用方法 |
-
2018
- 2018-12-21 CN CN201811571737.3A patent/CN109828909A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806450B1 (en) * | 2008-06-26 | 2014-08-12 | Juniper Networks, Inc. | Static analysis in selective software regression testing |
US20110016452A1 (en) * | 2009-01-15 | 2011-01-20 | Infosys Technologies Limited | Method and system for identifying regression test cases for a software |
CN101876939A (zh) * | 2009-11-20 | 2010-11-03 | 北京信息科技大学 | 系统测试方法及装置 |
CN102831056A (zh) * | 2012-07-31 | 2012-12-19 | 东南大学 | 一种基于修改影响分析的回归测试用例生成方法 |
CN102880547A (zh) * | 2012-09-05 | 2013-01-16 | 无锡江南计算技术研究所 | 一种软件单元与部件与相结合的源代码变更影响分析与测试方法 |
CN103678097A (zh) * | 2012-09-05 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种选择回归测试用例的方法和装置 |
CN102915271A (zh) * | 2012-10-31 | 2013-02-06 | 北京邮电大学 | 基于控制流图的单元回归测试用例集合优化方法 |
CN103902445A (zh) * | 2012-12-27 | 2014-07-02 | 中国移动通信集团吉林有限公司 | 一种回归测试对象确定方法及装置 |
CN105808438A (zh) * | 2016-03-11 | 2016-07-27 | 北京信息科技大学 | 一种基于函数调用路径的测试用例复用方法 |
Non-Patent Citations (6)
Title |
---|
BING JIANG等: "Research of Optimization Algorithm for Path-Based Regression Testing Suit", 《2010 SECOND INTERNATIONAL WORKSHOP ON EDUCATION TECHNOLOGY AND COMPUTER SCIENCE》 * |
ZHANG ZHI-HUA等: "Test Case Prioritization for Regression Testing Based on Function Call Path", 《2012 FOURTH INTERNATIONAL CONFERENCE ON COMPUTATIONAL AND INFORMATION SCIEN》 * |
唐剑文: "基于UML嵌套活动图的回归测试用例选择", 《全国第21届计算机技术与应用学术会议(CACIS·2010)暨全国第2届安全关键技术与应用学术会议论文集》 * |
张志华等: "基于函数调用的路径覆盖生成技术研究", 《电子学报》 * |
祁杰等: "用况驱动的系统测试用例设计", 《北京城市学院学报》 * |
郑锦勤: "基于FCP的测试用例复用方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559368A (zh) * | 2020-12-23 | 2021-03-26 | 马上消费金融股份有限公司 | 接口自动化测试方法及其用例生成方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102880546B (zh) | 一种基于xml数据库的软件集成测试方法及系统 | |
CN102136047A (zh) | 一种基于形式化及统一软件模型的软件可信工程方法 | |
CN106021014B (zh) | 一种内存管理方法及装置 | |
CN108694320B (zh) | 一种多安全环境下敏感应用动态度量的方法及系统 | |
CN104123497A (zh) | 一种防御sql注入的方法、装置及系统 | |
CN107704393A (zh) | 数据测试方法、装置及电子设备 | |
CN108319858A (zh) | 针对不安全函数的数据依赖图构建方法及装置 | |
CN104598709A (zh) | 基于扩展ooda模型的检测数据融合方法 | |
US10823782B2 (en) | Ensuring completeness of interface signal checking in functional verification | |
JP2021103561A (ja) | アイデンティティ情報処理方法、装置、電子機器及び記憶媒体 | |
CN105743725A (zh) | 一种测试应用程序的方法和装置 | |
CN109829282A (zh) | 基于数字证书认证系统的数字证书处理方法及装置 | |
CN106909197B (zh) | 一种虚拟化主机时间管理方法及虚拟化主机系统 | |
CN109828909A (zh) | 回归测试用例确定方法、装置、电子设备及存储介质 | |
Andrews et al. | Model-based development of fault tolerant systems of systems | |
CN109492269B (zh) | 一种基于uvm的数字引信定时电路验证平台 | |
CN106339553A (zh) | 一种空间飞行器的重构飞行控制方法及系统 | |
CN106933743A (zh) | 一种测试方法和装置 | |
Valueian et al. | Constructing automated test oracle for low observable software | |
CN106354930B (zh) | 一种空间飞行器的自适应重构方法及系统 | |
CN105843602A (zh) | 一种用于软件开发的方法和系统 | |
CN104881455B (zh) | 一种基于mysql的结构差异处理方法及系统 | |
CN104424060B (zh) | 一种用于确定故障的方法和装置 | |
Zhang et al. | An approach of class integration test order determination based on test levels | |
CN113609037A (zh) | 一种基于uvm的gpio模块验证的方法、装置、设备及可读介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190531 |
|
RJ01 | Rejection of invention patent application after publication |