测试用例生成方法、装置、设备及存储介质制造方法及图纸

技术编号:19341703 阅读:21 留言:0更新日期:2018-11-07 13:44
本申请提出一种测试用例生成方法、装置、设备及存储介质,其中方法包括:遍历目标源代码文件,获取目标源代码中包含的各方法块;将各方法块分别进行解析处理,确定各方法块中分别包括的各非逻辑运算式及连接各非逻辑运算式的逻辑运算符;根据各非逻辑运算式及连接各非逻辑运算式的逻辑运算符,生成各方法块对应的各测试用例框架;根据各测试用例框架,生成目标源代码对应的测试用例。该方法通过对源代码中包含的方法块进行解析,以生成与方法块对应的测试用例框架,并根据测试用例框架自动生成源代码对应的测试用例,从而不仅提高了测试用例的生成效率及代码覆盖率,并且还能降低人工设置测试用例所花费的成本,改善了用户体验。

Test case generation method, device, device and storage medium

This application proposes a test case generation method, device, device and storage medium, which includes: traversing the target source code file to obtain the method blocks contained in the target source code; parsing each method block separately to determine the non-logical operation formulas included in each method block and connecting each non-logic operation. The logical operators of the algebraic expressions; the test case frameworks corresponding to each method block are generated according to the logical operators of each non-logical expression and the logic operators connecting each non-logical expression; and the test cases corresponding to the target source code are generated according to the test case frameworks. This method parses the method blocks contained in the source code to generate the test case framework corresponding to the method blocks, and automatically generates the test cases corresponding to the source code according to the test case framework, which not only improves the efficiency of test case generation and code coverage, but also reduces the manual setting of test cases. The cost has improved the user experience.

【技术实现步骤摘要】
测试用例生成方法、装置、设备及存储介质
本申请涉及数据处理
,特别涉及一种测试用例生成方法、装置、设备及存储介质。
技术介绍
新版本软件在完成开发后,为了保证软件的稳定性和准确性等,需要对软件进行测试。新版本软件作为测试对象,在对测试对象进行测试时,需要对测试对象的待测功能点进行分析,根据待测功能点设计测试用例,再采用设计的测试用例对测试对象进行测试。目前,在实际应用中,多是由开发人员对软件源代码内容进行解读,人工设置测试用例,这种测试用例生成方法,不仅浪费人力、成本高、效率低,且利用生成的测试用例进行测试时,代码覆盖率较低。
技术实现思路
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请一方面实施例提出一种测试用例生成方法,该方法通过对源代码中包含的方法块进行解析,以生成与方法块对应的测试用例框架,并根据测试用例框架自动生成源代码对应的测试用例,从而不仅提高了测试用例的生成效率及代码覆盖率,并且还能降低人工设置测试用例所花费的成本,改善了用户体验。本申请的第二个目的在于提出一种测试用例生成装置。本申请的第三个目的在于提出一种计算机设备。本申请的第四个目的在于提出一种计算机可读存储介质。为达上述目的,本申请第一方面实施例提出了一种测试用例生成方法,该方法包括:遍历目标源代码文件,获取目标源代码中包含的各方法块;将所述各方法块分别进行解析处理,确定所述各方法块中分别包括的各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符;根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架;根据所述各测试用例框架,生成所述目标源代码对应的测试用例。本申请实施例提供的测试用例生成方法,通过遍历目标源代码文件,获取目标源代码包含的各方法块,并将各方法块分别进行解析处理,确定各方法块中分别包括的各非逻辑运算式及连接各非逻辑运算式的逻辑运算符,然后根据确定的各非逻辑运算式及连接各非逻辑运算式的逻辑运算符,生成各方法块对应的各测试用例框架,然后根据各测试用例框架,生成目标源代码对应的测试用例。由此,通过对源代码中包含的方法块进行解析,以生成与方法块对应的测试用例框架,并根据测试用例框架自动生成源代码对应的测试用例,从而不仅提高了测试用例的生成效率及代码覆盖率,并且还能降低人工设置测试用例所花费的成本,改善了用户体验。另外,本申请上述实施例提出的测试用例生成方法还可以具有如下附加的技术特征:可选的,在本申请的一个实施例中,所述目标源代码文件的第一方法块中包括N个分支语句,其中,N为正整数;所述将所述各方法块分别进行解析处理,确定所述各方法块中分别包括的各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,包括:将所述第一方法块进行解析处理,获取所述N个分支语句;分别将所述N个分支语句进行解析处理,确定所述N个分支语句中的各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符。可选的,在本申请的另一个实施例中,所述目标源代码文件的第二方法块中包括的非逻辑运算式的数量小于阈值;所述根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架,包括:根据所述第二方法块中的各非逻辑运算式分别对应的不同取值,生成所述第二方法块对应的各测试用例框架,其中,任意两个测试用例框架中至少一个非逻辑运算式的取值不同。可选的,在本申请的另一个实施例中,所述目标源代码文件的第三方法块中包括的非逻辑运算式的数量大于阈值;所述根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架,包括:根据所述第三方法块中各非逻辑运算式的取值及连接所述各非逻辑运算式的逻辑运算符,确定所述第三方法块的两个不同返回值分别对应的两个非逻辑运算式取值组集合;从所述两个非逻辑运算式取值组集合中,各获取一个非逻辑运算式取值组,其中,任意一个非逻辑运算式在获取的两个非逻辑运算式取值组中的取值不同;根据获取的两个非逻辑运算式取值组,确定所述第三方法块对应的测试用例框架。可选的,在本申请的另一个实施例中,所述根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架,包括:根据预设的规则,确定各非逻辑运算式分别对应的各变量;利用所述连接所述各非逻辑运算式的逻辑运算符,连接所述各变量以生成所述各方法块分别对应的各抽象语句;基于所述各抽象语句,生成所述各方法块对应的各测试用例框架。可选的,在本申请的另一个实施例中,所述生成所述目标源代码对应的测试用例之后,还包括:获取所述目标源代码基于所述测试用例测试时生成的覆盖率信息;根据所述覆盖率信息,对所述测试用例进行修正。可选的,在本申请的另一个实施例中,所述覆盖率信息,包括未覆盖代码对应的代码行;所述根据所述覆盖率信息,对所述测试用例进行修正,包括:根据所述未覆盖代码对应的代码行,确定所述未覆盖代码所在的目标方法块;确定所述测试用例框架中与所述目标方法块对应的目标测试用例框架;对所述目标测试用例框架中的测试用例进行修正。可选的,在本申请的另一个实施例中,所述根据所述覆盖率信息,对所述测试用例进行修正之前,还包括:确定所述覆盖率信息未满足预设的覆盖条件。可选的,在本申请的另一个实施例中,所述生成所述目标源代码对应的测试用例之后,还包括:在目标源代码文件更新时,获取更新后的目标源代码文件与目标源代码文件间的差异信息;对所述差异信息进行解析处理,生成所述差异信息对应的更新测试用例框架;利用所述更新测试用例框架,对所述目标源代码对应的各测试用例框架进行更新,以生成所述更新后的目标源代码文件对应的各测试用例框架。为达上述目的,本申请第二方面实施例提出了一种测试用例生成装置,该装置包括:第一获取模块,用于遍历目标源代码文件,获取目标源代码中包含的各方法块;第一确定模块,用于将所述各方法块分别进行解析处理,确定所述各方法块中分别包括的各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符;第一生成模块,用于根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架;第二生成模块,用于根据所述各测试用例框架,生成所述目标源代码对应的测试用例。本申请实施例提供的测试用例生成装置,通过遍历目标源代码文件,获取目标源代码包含的各方法块,并将各方法块分别进行解析处理,确定各方法块中分别包括的各非逻辑运算式及连接各非逻辑运算式的逻辑运算符,然后根据确定的各非逻辑运算式及连接各非逻辑运算式的逻辑运算符,生成各方法块对应的各测试用例框架,然后根据各测试用例框架,生成目标源代码对应的测试用例。由此,通过对源代码中包含的方法块进行解析,以生成与方法块对应的测试用例框架,并根据测试用例框架自动生成源代码对应的测试用例,从而不仅提高了测试用例的生成效率及代码覆盖率,并且还能降低人工设置测试用例所花费的成本,改善了用户体验。为达上述目的,本申请第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,以实现第一方面实施例所述的测试用例生成方法。本申请实施例提供的计算机设备,通过遍历目标源代码文件,获取目本文档来自技高网...

【技术保护点】
1.一种测试用例生成方法,其特征在于,包括:遍历目标源代码文件,获取目标源代码中包含的各方法块;将所述各方法块分别进行解析处理,确定所述各方法块中分别包括的各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符;根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架;根据所述各测试用例框架,生成所述目标源代码对应的测试用例。

【技术特征摘要】
1.一种测试用例生成方法,其特征在于,包括:遍历目标源代码文件,获取目标源代码中包含的各方法块;将所述各方法块分别进行解析处理,确定所述各方法块中分别包括的各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符;根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架;根据所述各测试用例框架,生成所述目标源代码对应的测试用例。2.如权利要求1所述的方法,其特征在于,所述目标源代码文件的第一方法块中包括N个分支语句,其中,N为正整数;所述将所述各方法块分别进行解析处理,确定所述各方法块中分别包括的各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,包括:将所述第一方法块进行解析处理,获取所述N个分支语句;分别将所述N个分支语句进行解析处理,确定所述N个分支语句中的各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符。3.如权利要求1所述的方法,其特征在于,所述目标源代码文件的第二方法块中包括的非逻辑运算式的数量小于阈值;所述根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架,包括:根据所述第二方法块中的各非逻辑运算式分别对应的不同取值,生成所述第二方法块对应的各测试用例框架,其中,任意两个测试用例框架中至少一个非逻辑运算式的取值不同。4.如权利要求1所述的方法,其特征在于,所述目标源代码文件的第三方法块中包括的非逻辑运算式的数量大于阈值;所述根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架,包括:根据所述第三方法块中各非逻辑运算式的取值及连接所述各非逻辑运算式的逻辑运算符,确定所述第三方法块的两个不同返回值分别对应的两个非逻辑运算式取值组集合;从所述两个非逻辑运算式取值组集合中,各获取一个非逻辑运算式取值组,其中,任意一个非逻辑运算式在获取的两个非逻辑运算式取值组中的取值不同;根据获取的两个非逻辑运算式取值组,确定所述第三方法块对应的测试用例框架。5.如权利要求1-4任一所述的方法,其特征在于,所述根据所述各非逻辑运算式及连接所述各非逻辑运算式的逻辑运算符,生成所述各方法块对应的各测试用例框架,包括:根据预设的规则,确定各非逻辑运算式分别对应的各变量;利...

【专利技术属性】
技术研发人员:贾金莉
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1