CN109542779A - 测试方法、装置和存储介质 - Google Patents

测试方法、装置和存储介质 Download PDF

Info

Publication number
CN109542779A
CN109542779A CN201811340300.9A CN201811340300A CN109542779A CN 109542779 A CN109542779 A CN 109542779A CN 201811340300 A CN201811340300 A CN 201811340300A CN 109542779 A CN109542779 A CN 109542779A
Authority
CN
China
Prior art keywords
code
party
name
edition
version
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
Application number
CN201811340300.9A
Other languages
English (en)
Inventor
刘伟
李�瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taikang Insurance Group Co Ltd
Original Assignee
Taikang Insurance Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Taikang Insurance Group Co Ltd filed Critical Taikang Insurance Group Co Ltd
Priority to CN201811340300.9A priority Critical patent/CN109542779A/zh
Publication of CN109542779A publication Critical patent/CN109542779A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

本发明提供一种测试方法、装置和存储介质,该方法包括:根据应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,确定第二版本对应的代码中发生修改的第一代码,第一版本低于第二版本;根据第一代码对应的第一方法名,在第二版本对应的代码中获取调用第一方法名对应的方法的第二代码,以及,与第二代码对应的第二方法名;采用第一方法名对应的第一测试用例,以及第二方法名对应的第二测试用例分别对第二版本对应的代码进行测试。本发明确定不同版本中的应用程序发生修改的代码,针对性的采用发生修改的代码的方法对应的测试用例进行测试,减少了测试的时间,进而减少自动化发布的时间。

Description

测试方法、装置和存储介质
技术领域
本发明涉及代码测试技术领域,尤其涉及一种测试方法、装置和存储介质。
背景技术
自动化发布,是使用发布工具代替手工发布的一系列工作,包括代码的更新、测试、编译打包、环境发布等一系列的过程。在利用编程语言开发代码的过程中,对代码的各个部分进行的测试,在防止代码引起的系统运作的错误,保证高品质的程序的层面上非常重要。目前,一个项目的代码通常会使用多种测试用例(test case)进行测试。
一个项目的测试用例可能有很多,现有技术中,一个项目对应的代码即使在只修改了一行的情况下,也会使用所有的测试用例对整个项目代码重新进行测试,造成测试时间的浪费,进而造成自动化发布时间的延长。
发明内容
本发明提供一种测试方法、装置和存储介质,确定不同版本中的应用程序发生修改的代码,针对性的采用发生修改的代码的方法对应的测试用例进行测试,减少了测试的时间,进而减少自动化发布的时间。
本发明的第一方面提供测试方法,包括:
根据应用程序的第一版本对应的代码和所述应用程序的第二版本对应的代码,确定所述第二版本对应的代码中发生修改的第一代码,所述第一版本低于所述第二版本;
根据所述第一代码对应的第一方法名,在所述第二版本对应的代码中获取调用所述第一方法名对应的方法的第二代码,以及,与所述第二代码对应的第二方法名;
采用所述第一方法名对应的第一测试用例,以及所述第二方法名对应的第二测试用例分别对所述第二版本对应的代码进行测试。
可选的,所述采用所述第一方法名对应的第一测试用例,以及所述第二方法名对应的第二测试用例分别对所述第二版本号对应的代码进行测试之前,还包括:
在测试用例集合中,获取所述第一方法名对应的第一测试用例,以及,所述第二方法名对应的第二测试用例。
可选的,所述在测试用例集合中,获取所述第一方法名对应的第一测试用例,以及,所述第二方法名对应的第二测试用例,包括:
获取所述第一代码对应的第一类名,以及,所述第二代码对应的第二类名;
在测试用例集合中,根据所述第一类名和所述第一方法名,获取所述第一测试用例,以及,根据所述第二类名和所述第二方法名,获取所述第二测试用例。
可选的,所述第一版本与所述第二版本是所述应用程序两次相邻的自动化发布的版本。
可选的,所述第二版本是所述应用程序的最新的版本。
可选的,所述根据应用程序的第一版本对应的代码和所述应用程序的第二版本对应的代码,确定所述第二版本对应的代码中发生修改的第一代码之前,还包括:
根据所述应用程序的每个版本的日志,从所述应用程序的多个版本中获取所述第二版本和所述第一版本,每个所述版本的日志包括版本的测试记录、修改记录或发布记录中的一种或多种。
可选的,第一方法名包括:第一方法名称和第一方法参数;
所述根据所述第一代码对应的第一方法名,在所述第二版本对应的代码中获取调用所述第一方法名对应的方法的第二代码,包括:
在所述第二版本对应的代码中,将调用的方法对应的方法名称和方法参数分别与所述第一方法名称和所述第一方法参数均相同的方法对应的代码作为所述第二代码。
本发明的第二方面提供一种测试装置,包括:
第一代码确定模块,用于根据应用程序的第一版本对应的代码和所述应用程序的第二版本对应的代码,确定所述第二版本对应的代码中发生修改的第一代码,所述第一版本低于所述第二版本;
第二代码确定模块,用于根据所述第一代码对应的第一方法名,在所述第二版本对应的代码中获取调用所述第一方法名对应的方法的第二代码,以及,与所述第二代码对应的第二方法名;
测试模块,用于采用所述第一方法名对应的第一测试用例,以及所述第二方法名对应的第二测试用例分别对所述第二版本对应的代码进行测试。
可选的,所述装置还包括:测试用例获取模块;
所述测试用例获取模块,用于在测试用例集合中,获取所述第一方法名对应的第一测试用例,以及,所述第二方法名对应的第二测试用例。
可选的,所述测试用例获取模块,具体用于获取所述第一代码对应的第一类名,以及,所述第二代码对应的第二类名;
在测试用例集合中,根据所述第一类名和所述第一方法名,获取所述第一测试用例,以及,根据所述第二类名和所述第二方法名,获取所述第二测试用例。
可选的,所述第一版本与所述第二版本是所述应用程序两次相邻的自动化发布的版本。
可选的,所述第二版本是所述应用程序的最新的版本。
可选的,所述装置还包括:版本获取模块;
所述版本获取模块,用于根据所述应用程序的每个版本的日志,从所述应用程序的多个版本中获取所述第二版本和所述第一版本,每个所述版本的日志包括版本的测试记录、修改记录或发布记录中的一种或多种。
可选的,第一方法名包括:第一方法名称和第一方法参数;
第二代码确定模块,具体用于在所述第二版本对应的代码中,将调用的方法对应的方法名称和方法参数分别与所述第一方法名称和所述第一方法参数均相同的方法对应的代码作为所述第二代码。
本发明的第三方面提供一种测试装置,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述测试装置上述的测试方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机执行指令,当所述计算机执行指令被处理器执行时,实现上述测试方法。
本发明提供一种测试方法、装置和存储介质,该方法包括:根据应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,确定第二版本对应的代码中发生修改的第一代码,第一版本低于第二版本;根据第一代码对应的第一方法名,在第二版本对应的代码中获取调用第一方法名对应的方法的第二代码,以及,与第二代码对应的第二方法名;采用第一方法名对应的第一测试用例,以及第二方法名对应的第二测试用例分别对第二版本对应的代码进行测试。本发明确定不同版本中的应用程序发生修改的代码,针对性的采用发生修改的代码的方法对应的测试用例进行测试,避免了现有技术中在修改少量代码的情况下,采用全部的测试用例对代码进行测试的问题,本发明减少了测试的时间,进而减少自动化发布的时间。
附图说明
图1为本发明提供的测试方法的流程示意图一;
图2为本发明提供的测试方法的流程示意图二;
图3为本发明提供的测试方法的流程示意图三;
图4为本发明提供的测试装置的结构示意图一;
图5为本发明提供的测试装置的结构示意图二;
图6为本发明提供的测试装置的结构示意图三。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
专业术语释义:
应用程序:指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。
自动化发布:是使用发布工具代替手工发布的一系列工作,包括代码的更新、测试、编译打包、环境发布等一系列的过程。
方法名:在应用程序中每个对象(相应的代码)均具有对应的方法,该方法指的是每个对象的功能和操作,在应用程序运行的时候,每个对象按照对应的方法运行。
一般地,方法名包括方法名称和方法参数,示例性的,createSuccessXml(MiddleBo middleBo)表示一个方法名,其中,createSuccessXml为方法名,MiddleBomiddleBo为方法参数。
类名:一个类在被加载的时候就会自动的生成一个这个类的一个Class类型的“类对象”,每个类都对应着一个这样的类对象,通过这个Class类型的类对象,就能够访问一个类的信息,如:一个类中的方法有哪些等。
版本:每一个应用程序都有一个版本号,版本号(version number)是应用程序不同版本的标识号。应用程序版本能使用户了解所使用的操作系统是否为最新的版本以及它所提供的功能与设施。
代码:是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
测试用例:是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个应用程序路径或核实是否满足某个特定需求。
调用:是将应用程序中一段代码的执行交给其他的代码段,通常是一个子例程,同时保存必要的信息,从而使被调用段执行完毕后返回到调用点继续执行。示例性的,在代码中比较常见,若a程序需要很长一段代码,则可以建立另外一个文件b存放这段代码,当a需要时候直接调用b。
自动化发布包括代码的更新、测试、编译打包、环境发布等一系列的过程,而这一系列过程全是由发布工具主动进行的。在利用编程语言开发代码的过程中,在代码更新或者编写完成后,需要对代码的各个部分进行的测试,以避免代码引起的系统运作的错误。目前,一个项目的代码通常会使用多种测试用例进行测试。如两个版本的应用程序只有两行代码的修改,现有技术中,也会采用所有的测试用例对整个项目代码重新进行测试,造成测试时间的浪费,进而造成自动化发布时间的延长。本发明就是从对代码进行测试的角度进行优化,使得代码测试的时间减少,进而减少自动化发布时间。
图1为本发明提供的测试方法的流程示意图一,图1所示的测试方法的执行主体为测试装置,该测试装置可以由硬件或软件组成,如图1所示,本实施例提供的测试方法可以包括:
S101,根据应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,确定第二版本对应的代码中发生修改的第一代码,第一版本低于第二版本。
本实施例中的应用程序的第一版本低于第二版本,即在时间上,应用程序的第二版本是在应用程序的第一版本之后的版本;示例性的,在应用程序自动化发布的过程中,应用程序的第一版本在时间上是早于第二版本进行自动化发布的。在应用程序的第一版本自动化发布之后,程序人员可以对已经自动化发布的应用程序的第一版本中的代码进行修改,以使得第一版本的应用程序中的错误被修复,或者增加该应用程序第一版本所不具有的功能和操作等对应的程序,经过程序人员的修改等操作,进行应用程序的第二版本自动化发布。本实施例中的应用程序的不同版本的自动化发布成功指的是,用户可通过该应用程序自动化发布的应用服务器进行下载安装该应用程序。
其中,应用程序的不同版本对应有不同的运行代码,运行代码正常运行能够保证该应用程序的正常运行。本实施例中,通过对比应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,确定在第二版本对应的代码中发生修改的第一代码。本实施例中,第一代码可以为多个发生修改的代码。
示例性的,测试装置通过比较应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,发现在应用程序的第二版本中有两行代码发生修改,下述示例中斜体部分的代码为发生修改的代码。
示例性的,
S102,根据第一代码对应的第一方法名,在第二版本对应的代码中获取调用第一方法名对应的方法的第二代码,以及,与第二代码对应的第二方法名。
应用程序中的每段代码均对应有一个方法名,本实施例中,在测试装置获取发生修改的第一代码后,确定与该第一代码对应的第一方法名。其中,第一方法名中包括该第一代码对应的方法。
具体的,测试装置在获取发生修改的第一代码后,确定该第一代码对应的第一方法名,在第二版本对应的代码中获取调用该第一方法名对应的方法的第二代码。本实施例中,测试装置在获取调用该第一方法名对应的方法的第二代码后,还需要获取该第二代码对应的第二方法名。使得在下述的步骤中,采用第一方法名和第二方法名对应的测试用例对第二版本对应的代码进行测试,能够完整的获取的发生修改的,以及,对应发生修改的方法名,进而使得对应的测试用例能够准确的对第二版本对应的代码进行测试。避免了遗漏发生修改的方法名,以及,其对应的测试用例,使得对第二版本对应的代码进行测试的不完全的现象的发生。
进一步的,由于一段代码对应一个方法名,且对应一个类名;而不同的类名下对应的方法名可以相同,为了区分不同类名下不同的方法名。本实施例中,测试装置在获取第一代码对应的第一方法名时,还需要获取该第一代码对应的第一类名;具体的,在获取第二代码时,测试装置需要获取调用该第一类名和第一方法名的第二代码。本实施例中,在测试装置获取第二代码时,需要对代码调用的类名和方法名进行比对,在代码调用的类名和方法名均与该第一类名、第一方法名相同时,确定该代码为第二代码。
示例性的,上述代码中第一代码的第一方法名为createSuccessXml(MiddleBoMiddleBo),第一类名为After Quality。下述中的第二代码调用了第一代码对应的第一方法名,以及第一类名对应的方法,如下斜体所示。第二代码如下示:
其中,第二代码的第二方法名为Book Msg(MiddleBo MiddleBo),第二类名为ArriveBook。
S103,采用第一方法名对应的第一测试用例,以及第二方法名对应的第二测试用例分别对第二版本对应的代码进行测试。
不同的方法名对应有不同的测试用例,因一个应用程序中包含多个方法名,因此在对应用程序对应的代码进行测试时,需要采用多个不同的测试用例对应用程序对应的代码进行测试。
而本实施例中,测试装置获取发生改变的第一代码的第一方法名对应的第一测试用例对第二版本对应的代码进行测试,以及,调用该第一方法名的方法的第二代码,根据该第二代码的第二方法名对应的第二测试用例对第二版本对应的代码进行测试,避免了应用程序的第二版本的代码相对于第一版本对应的代码中未发生修改的代码的方法名对应的测试用例对第二版本对应的代码进行测试的过程,本实施例中针对性的采用发生修改的代码对应的测试用例对第二版本对应的代码进行测试,大大减少了测试的时间。
具体的,本实施例中采用测试用例分别对第二版本对应的代码进行测试,可以是,采用测试用例验证应用程序的第二版本对应的代码能否正常的运行完成。本实施例中对测试用例如何对应用程序的第二版本对应的代码进行测试的过程不做赘述。
可选的,本实施例中测试装置在获取第一方法名和第二方法名之后,可以将第一方法名和第二方法名进行集合,获取方法名集合,并将该方法名集合与当前应用程序的版本进行对应存储;便于在之后追溯的过程中查找对应版本的应用程序进行自动化发布之前的测试过程。
本实施例提供一种测试方法,该方法包括:根据应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,确定第二版本对应的代码中发生修改的第一代码,第一版本低于第二版本;根据第一代码对应的第一方法名,在第二版本对应的代码中获取调用第一方法名对应的方法的第二代码,以及,与第二代码对应的第二方法名;采用第一方法名对应的第一测试用例,以及第二方法名对应的第二测试用例分别对第二版本对应的代码进行测试。本发明确定不同版本中的应用程序发生修改的代码,针对性的采用发生修改的代码的方法对应的测试用例进行测试,避免了现有技术中在修改少量代码的情况下,采用全部的测试用例对代码进行测试的问题,本发明减少了测试的时间,进而减少自动化发布的时间。
在上述实施例的基础上,下面结合图2对本发明提供的测试方法进行进一步说明,图2为本发明提供的测试方法的流程示意图二,如图2所示,本实施例提供的测试方法可以包括:
S201,根据应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,确定第二版本对应的代码中发生修改的第一代码。
本实施例中的应用程序的第一版本与第二版本是应用程序两次相邻的自动化发布的版本。在应用程序自动化发布的过程中,应用程序的每一次自动化发布在对应的应用程序版本的日志中都会有发布记录,具体的,该发布记录中可以但不限于包括:发布时间、发布的应用程序的版本号,程序人员标识等信息。
进一步的,由于本实施例中的应用程序的第一版本与第二版本是应用程序两次相邻的自动化发布的版本,在应用程序的第一版本进行发布后,程序人员可以对该应用程序的已发布的第一版本进行修改或者优化,具体的,程序人员的对第一版本的修改或者优化均具有对应的修改记录,该修改记录包括但不限于修改时间、修改的应用程序的版本号,对应的进行修改操作的程序人员标识等信息。
可选的,该应用程序版本的日志中还可以包括该应用程序版本的测试记录等,其中,该测试记录的形式与上述发布记录、修改记录的形式相同,在此不做赘述。
S202,根据第一代码对应的第一方法名,在第二版本对应的代码中获取调用第一方法名对应的方法的第二代码,以及,与第二代码对应的第二方法名。
S203,在测试用例集合中,获取第一方法名对应的第一测试用例,以及,第二方法名对应的第二测试用例。
不同的方法名对应有不同的测试用例,因一个应用程序中包含多个方法名,因此在对应用程序对应的代码进行测试时,需要采用多个不同的测试用例对应用程序对应的代码进行测试,而该多个不同的测试用例的集合即为测试用例集合。
本实施例中,在测试用例集合中,获取第一方法名对应的第一测试用例,以及,第二方法名对应的第二测试用例的具体方式为:获取第一代码对应的第一类名,以及,第二代码对应的第二类名;其中,第一类名的获取时机可以是在测试装置确定发生修改的第一代码获取第一方法名时获取该第一代码对应的第一类名;第二类名的获取时机可以是在测试装置确定第二代码时,获取第二代码对应的第二方法名时获取该第二代码对应的第二类名。
具体的,测试装置在测试用例集合中,根据第一类名和第一方法名,获取第一测试用例,以及,根据第二类名和第二方法名,获取第二测试用例。其中,测试装置在测试用例集合中查找与第一类名和第一方法名对应的测试用例确定为第一测试用例,查找与第二类名和第二方法名对应的测试用例确定为第二测试用例。
S204,采用第一方法名对应的第一测试用例,以及第二方法名对应的第二测试用例分别对第二版本对应的代码进行测试。
本实施例中的S201-S202、S204中的具体实施方式可以参照上述实施例中的S101-S102、S103中的相关描述,在此不做赘述。
本实施例中,第一版本与第二版本是应用程序两次相邻的自动化发布的版本,获取第一代码对应的第一类名,以及,第二代码对应的第二类名;且在测试用例集合中,根据第一类名和第一方法名,获取第一测试用例,以及,根据第二类名和第二方法名,获取第二测试用例。使得获取的测试用例更为准确,一方面减少了测试时间,另一方面,保证了测试用例对第二版本号对应的代码的测试准确性。
在上述实施例的基础上,下面结合图3对本发明提供的测试方法进行进一步说明,图3为本发明提供的测试方法的流程示意图三,如图3所示,本实施例提供的测试方法可以包括:
S301,根据应用程序的每个版本的日志,从应用程序的多个版本中获取第二版本和第一版本,每个版本的日志包括版本的测试记录、修改记录或发布记录中的一种或多种。
本实施例中的应用程序的第一版本与第二版本是应用程序两次相邻的自动化发布的版本,进一步的,第二版本是应用程序的最新的版本,即第一版本为最新的版本之前的上一次自动化发布的版本。
在应用程序自动化发布的过程中,应用程序的每一次自动化发布在对应的应用程序版本的日志中都会有发布记录,具体的,该发布记录中可以但不限于包括:发布时间、发布的应用程序的版本号,程序人员标识等信息。
本实施例中,根据发布记录中的发布时间从应用程序的多个版本中获取应用程序的第一版本和第二版本。
可选的,本实施例提供的每个版本的日志包括版本的测试记录、修改记录或发布记录中的一种或多种,具体的,在应用程序的第一版本进行发布后,程序人员可以对该应用程序的已发布的第一版本进行修改或者优化,具体的,程序人员的对第一版本的修改或者优化均具有对应的修改记录,该修改记录包括但不限于修改时间、修改的应用程序的版本号,对应的进行修改操作的程序人员标识等信息。可选的,该应用程序版本的日志中还可以包括该应用程序版本的测试记录等,其中,该测试记录的形式与上述发布记录、修改记录的形式相同,在此不做赘述。
S302,根据应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,确定第二版本对应的代码中发生修改的第一代码。
S303,在第二版本对应的代码中,将调用的方法对应的方法名称和方法参数分别与第一代码的第一方法名称、和第一方法参数均相同的方法对应的代码作为第二代码,并获取第二代码对应的第二方法名。
每个方法名对应有方法名称和方法参数,相应的,第一方法名包括:第一方法名称和第一方法参数,示例性的,如:第一方法名为createSuccessXml(MiddleBo MiddleBo)时,其中的第一方法名称为createSuccessXml,方法参数为MiddleBo MiddleBo。
测试装置在第二版本对应的代码中,将调用的方法对应的方法名称和方法参数分别与第一代码的第一方法名称、和第一方法参数均相同的方法对应的代码作为第二代码,即测试装置在第二版本对应的所有代码中国,查询调用与该第一代码的第一方法名称、和第一方法参数均相同的方法对应的代码。
可选的,由于一段代码对应一个方法名,且对应一个类名;而不同的类名下对应的方法名可以相同,为了区分不同类名下不同的方法名。本实施例中,测试装置在获取第一代码对应的第一方法名时,还需要获取该第一代码对应的第一类名;具体的,在获取第二代码时,测试装置需要获取调用该第一类名和第一方法名的第二代码。本实施例中,在测试装置获取第二代码时,需要对代码调用的类名和方法名进行比对,在代码调用的类名和方法名中的方法名称和方法参数均与该第一类名、第一方法名称、第一方法参数均相同时,确定该代码为第二代码。示例性的,如:该after Quality createSuccessXml(MiddleBoMiddleBo)中的第一类名为after Quality,和第一方法名为createSuccessXml(MiddleBoMiddleBo)。
S304,在测试用例集合中,获取第一方法名对应的第一测试用例,以及,第二方法名对应的第二测试用例。
S305,采用第一方法名对应的第一测试用例,以及第二方法名对应的第二测试用例分别对第二版本对应的代码进行测试。
本实施例中的S302-305中的具体实施方式可以参照上述实施例中的S201-S204中的相关描述,在此不做赘述。
本实施例中,第二版本是应用程序的最新的版本,根据应用程序的每个版本的日志,从应用程序的多个版本中获取第二版本和第一版本,进一步的,在测试装置获取第二代码时,需要对代码调用的类名和方法名进行比对,在代码调用的类名和方法名中的方法名称和方法参数均与该第一类名、第一方法名称、第一方法参数均相同时,确定该代码为第二代码,使得获取的第二代码更为准确,进一步使得获取的测试用例更为准确,保证了测试结果的准确性。
图4为本发明提供的测试装置的结构示意图一,如图4所示,该测试装置400包括:第一代码确定模块401、第二代码确定模块402和测试模块403。
第一代码确定模块401,用于根据应用程序的第一版本对应的代码和应用程序的第二版本对应的代码,确定第二版本对应的代码中发生修改的第一代码,第一版本低于第二版本。
第二代码确定模块402,用于根据第一代码对应的第一方法名,在第二版本对应的代码中获取调用第一方法名对应的方法的第二代码,以及,与第二代码对应的第二方法名。
测试模块403,用于采用第一方法名对应的第一测试用例,以及第二方法名对应的第二测试用例分别对第二版本对应的代码进行测试。
本实施例提供的测试装置与上述测试方法实现的原理和技术效果类似,在此不作赘述。
可选的,图5为本发明提供的测试装置的结构示意图二,如图5所示,该测试装置400还包括:测试用例获取模块404和版本获取模块405。
测试用例获取模块404,用于在测试用例集合中,获取第一方法名对应的第一测试用例,以及,第二方法名对应的第二测试用例。
版本获取模块405,用于根据应用程序的每个版本的日志,从应用程序的多个版本中获取第二版本和第一版本,每个版本的日志包括版本的测试记录、修改记录或发布记录中的一种或多种。
可选的,测试用例获取模块404,具体用于获取第一代码对应的第一类名,以及,第二代码对应的第二类名;
在测试用例集合中,根据第一类名和第一方法名,获取第一测试用例,以及,根据第二类名和第二方法名,获取第二测试用例。
可选的,第一版本与第二版本是应用程序两次相邻的自动化发布的版本。
可选的,第二版本是应用程序的最新的版本。
可选的,第一方法名包括:第一方法名称和第一方法参数;
第二代码确定模块402,具体用于在第二版本对应的代码中,将调用的方法对应的方法名称和方法参数分别与第一方法名称和第一方法参数均相同的方法对应的代码作为第二代码。
图6为本发明提供的测试装置的结构示意图三,如图6所示,该测试500包括:存储器501和至少一个处理器502。
存储器501,用于存储程序指令。
处理器502,用于在程序指令被执行时实现本实施例中的测试方法,具体实现原理可参见上述实施例,本实施例此处不再赘述。
该测试装置500还可以包括及输入/输出接口503。
输入/输出接口503可以包括独立的输出接口和输入接口,也可以为集成输入和输出的集成接口。其中,输出接口用于输出数据,输入接口用于获取输入的数据,上述输出的数据为上述方法实施例中输出的统称,输入的数据为上述方法实施例中输入的统称。
本发明还提供一种可读存储介质,可读存储介质中存储有执行指令,当测试装置的至少一个处理器执行该执行指令时,当计算机执行指令被处理器执行时,实现上述实施例中的测试方法。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。测试装置的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得测试装置实施上述的各种实施方式提供的测试方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在上述网络设备或者终端设备的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种测试方法,其特征在于,包括:
根据应用程序的第一版本对应的代码和所述应用程序的第二版本对应的代码,确定所述第二版本对应的代码中发生修改的第一代码,所述第一版本低于所述第二版本;
根据所述第一代码对应的第一方法名,在所述第二版本对应的代码中获取调用所述第一方法名对应的方法的第二代码,以及,与所述第二代码对应的第二方法名;
采用所述第一方法名对应的第一测试用例,以及所述第二方法名对应的第二测试用例分别对所述第二版本对应的代码进行测试。
2.根据权利要求1所述的方法,其特征在于,所述采用所述第一方法名对应的第一测试用例,以及所述第二方法名对应的第二测试用例分别对所述第二版本号对应的代码进行测试之前,还包括:
在测试用例集合中,获取所述第一方法名对应的第一测试用例,以及,所述第二方法名对应的第二测试用例。
3.根据权利要求2所述的方法,其特征在于,所述在测试用例集合中,获取所述第一方法名对应的第一测试用例,以及,所述第二方法名对应的第二测试用例,包括:
获取所述第一代码对应的第一类名,以及,所述第二代码对应的第二类名;
在测试用例集合中,根据所述第一类名和所述第一方法名,获取所述第一测试用例,以及,根据所述第二类名和所述第二方法名,获取所述第二测试用例。
4.根据权利要求1所述的方法,其特征在于,所述第一版本与所述第二版本是所述应用程序两次相邻的自动化发布的版本。
5.根据权利要求4所述的方法,其特征在于,所述第二版本是所述应用程序的最新的版本。
6.根据权利要求5所述的方法,其特征在于,所述根据应用程序的第一版本对应的代码和所述应用程序的第二版本对应的代码,确定所述第二版本对应的代码中发生修改的第一代码之前,还包括:
根据所述应用程序的每个版本的日志,从所述应用程序的多个版本中获取所述第二版本和所述第一版本,每个所述版本的日志包括版本的测试记录、修改记录或发布记录中的一种或多种。
7.根据权利要求1所述的方法,其特征在于,第一方法名包括:第一方法名称和第一方法参数;
所述根据所述第一代码对应的第一方法名,在所述第二版本对应的代码中获取调用所述第一方法名对应的方法的第二代码,包括:
在所述第二版本对应的代码中,将调用的方法对应的方法名称和方法参数分别与所述第一方法名称和所述第一方法参数均相同的方法对应的代码作为所述第二代码。
8.一种测试装置,其特征在于,包括:
第一代码确定模块,用于根据应用程序的第一版本对应的代码和所述应用程序的第二版本对应的代码,确定所述第二版本对应的代码中发生修改的第一代码,所述第一版本低于所述第二版本;
第二代码确定模块,用于根据所述第一代码对应的第一方法名,在所述第二版本对应的代码中获取调用所述第一方法名对应的方法的第二代码,以及,与所述第二代码对应的第二方法名;
测试模块,用于采用所述第一方法名对应的第一测试用例,以及所述第二方法名对应的第二测试用例分别对所述第二版本对应的代码进行测试。
9.一种测试装置,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述测试装置执行权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机执行指令,当所述计算机执行指令被处理器执行时,实现权利要求1-7任一项所述的方法。
CN201811340300.9A 2018-11-12 2018-11-12 测试方法、装置和存储介质 Pending CN109542779A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811340300.9A CN109542779A (zh) 2018-11-12 2018-11-12 测试方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811340300.9A CN109542779A (zh) 2018-11-12 2018-11-12 测试方法、装置和存储介质

Publications (1)

Publication Number Publication Date
CN109542779A true CN109542779A (zh) 2019-03-29

Family

ID=65846944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811340300.9A Pending CN109542779A (zh) 2018-11-12 2018-11-12 测试方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN109542779A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134595A (zh) * 2019-04-19 2019-08-16 平安科技(深圳)有限公司 Svn资源库测试前的分析方法、装置、计算机设备
CN110716859A (zh) * 2019-08-30 2020-01-21 平安普惠企业管理有限公司 自动为修改的代码推送测试用例的方法及相关装置
CN110928786A (zh) * 2019-11-20 2020-03-27 中国工商银行股份有限公司 针对财务程序的测试方法和装置
CN112527659A (zh) * 2020-12-17 2021-03-19 展讯通信(上海)有限公司 测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198010A (zh) * 2012-01-06 2013-07-10 腾讯科技(深圳)有限公司 软件测试方法、装置及系统
CN105723346A (zh) * 2013-08-19 2016-06-29 微软技术许可有限责任公司 使用可修改的快照定义来对执行代码拍摄快照
CN106528399A (zh) * 2015-09-15 2017-03-22 腾讯科技(深圳)有限公司 一种测试用例确定方法及装置
CN107729227A (zh) * 2017-07-26 2018-02-23 上海壹账通金融科技有限公司 应用程序测试范围确定方法、系统、服务器和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198010A (zh) * 2012-01-06 2013-07-10 腾讯科技(深圳)有限公司 软件测试方法、装置及系统
CN105723346A (zh) * 2013-08-19 2016-06-29 微软技术许可有限责任公司 使用可修改的快照定义来对执行代码拍摄快照
CN106528399A (zh) * 2015-09-15 2017-03-22 腾讯科技(深圳)有限公司 一种测试用例确定方法及装置
CN107729227A (zh) * 2017-07-26 2018-02-23 上海壹账通金融科技有限公司 应用程序测试范围确定方法、系统、服务器和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
梁力: "《程序设计基础与C语言》", 31 January 2001 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134595A (zh) * 2019-04-19 2019-08-16 平安科技(深圳)有限公司 Svn资源库测试前的分析方法、装置、计算机设备
CN110716859A (zh) * 2019-08-30 2020-01-21 平安普惠企业管理有限公司 自动为修改的代码推送测试用例的方法及相关装置
CN110928786A (zh) * 2019-11-20 2020-03-27 中国工商银行股份有限公司 针对财务程序的测试方法和装置
CN110928786B (zh) * 2019-11-20 2024-04-02 中国工商银行股份有限公司 针对财务程序的测试方法和装置
CN112527659A (zh) * 2020-12-17 2021-03-19 展讯通信(上海)有限公司 测试方法及装置

Similar Documents

Publication Publication Date Title
CN109542779A (zh) 测试方法、装置和存储介质
CN109408373B (zh) 智能合约的测试方法、计算机可读存储介质及测试终端
EP2788867B1 (en) Automatic modularization of source code
US20120330598A1 (en) Method, program, and system for generating test cases
CN108459964B (zh) 测试用例选择方法、装置、设备以及计算机可读存储介质
US9317405B2 (en) Test double generation
WO2007001108A1 (en) System for providing feature-oriented software product line engineering environment
JP2012208830A (ja) プログラムテスト装置、プログラムテスト方法、およびプログラム
US9396095B2 (en) Software verification
WO2015039793A1 (en) Derivation of generalized test cases
CN106933591A (zh) 代码合并的方法及装置
EP3457274A1 (en) System and method for creating domain specific language
CN110503644B (zh) 基于移动平台的缺陷检测实现方法、缺陷检测方法及相关设备
JP6310527B1 (ja) オブジェクト分析装置、オブジェクト分析方法、及びプログラム
CN110187890B (zh) 项目部署的方法、电子设备、存储介质
US20150220425A1 (en) Test context generation
CN105117243B (zh) 一种获取应用程序的启动时间的方法和装置
JP2017041196A (ja) スタブ化対象判定装置、方法、及びプログラム
US20110098963A1 (en) Context based testing
US20080195453A1 (en) Organisational Representational System
CN112346613A (zh) 图标显示效果的控制方法、终端及计算机可读存储介质
WO2019142266A1 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP2016076162A (ja) ソフトウェア試験支援装置およびソフトウェア試験支援プログラム
CN116048978B (zh) 一种软件服务性能自适应测试方法、系统、终端及介质
CN117251298B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190329

RJ01 Rejection of invention patent application after publication