一种基于TestNG的集成测试方法及系统的制作方法

文档序号:10612726阅读:506来源:国知局
一种基于TestNG的集成测试方法及系统的制作方法
【专利摘要】本发明公开了一种基于TestNG的集成测试方法,包括:按照系统的资源或功能进行测试用例实现模块的划分,并将各测试用例分配到指定的测试用例实现模块中设置各测试用例实现模块中各测试用例的测试组;设置各个测试组之间的依赖关系参数;设置各测试组中各测试用例的执行顺序参数;根据获取的测试参数执行各测试用例,实现系统的集成测试;该方法通过将测试用例设置成模块,并指定各模块中测试用例的分组,进而自动化集成测试,可以提高测试效率,提高测试质量,提高测试覆盖率,能够拓宽测试深度,更好地重现程序缺陷,增进测试人员与开发人员的合作;本发明还公开了一种基于TestNG的集成测试系统,具有上述效果。
【专利说明】
一种基于TestNG的集成测试方法及系统
技术领域
[0001]本发明涉及测试技术领域,特别涉及一种基于TestNG的集成测试方法及系统。
【背景技术】
[0002]随着软件开发技术和工具的提高,软件工程和软件过程实践的推广,软件测试日益得到重视和专业化。自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动的测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。但是如何可以周期性的通过执行自动化测试去发现系统缺陷,持续保证系统质量,是本领域技术人员需要解决的技术问题。

【发明内容】

[0003]本发明的目的是提供一种基于TestNG的集成测试方法及系统,能够自动化集成各测试用例,自动执行各个测试用例,可以提高测试效率,提高测试质量,提高测试覆盖率。
[0004]为解决上述技术问题,本发明提供一种基于TestNG的集成测试方法,包括:
[0005]按照系统的资源或功能进行测试用例实现模块的划分,并将各测试用例分配到指定的测试用例实现模块中;
[0006]设置各测试用例实现模块中各测试用例的测试组;
[0007]设置各个测试组之间的依赖关系参数;
[0008]设置各测试组中各测试用例的执行顺序参数;
[0009]根据获取的测试参数执行各测试用例,实现系统的集成测试。
[0010]其中,设置各测试组中各测试用例的执行顺序参数,包括:
[0011]设置所述执行顺序参数为空时,按照数据字典排序执行测试用例。
[0012]其中,测试参数的获取,包括:
[0013]通过配置文件获取用户输入的测试参数;
[0014]通过系统接口获取系统生成的测试参数。
[0015]其中,还包括:
[0016]定期更新所述测试用例、所述测试用例实现模块、所述测试组、所述依赖关系参数、所述执行顺序参数。
[0017]本发明还提供一种基于TestNG的集成测试系统,包括:
[0018]模块划分模块,用于按照系统的资源或功能进行测试用例实现模块的划分,并将各测试用例分配到指定的测试用例实现模块中;
[0019]测试组划分模块了,用于设置各测试用例实现模块中各测试用例的测试组;
[0020]依赖关系参数设置模块,用于设置各个测试组之间的依赖关系参数;
[0021]执行顺序参数设置模块,用于设置各测试组中各测试用例的执行顺序参数;
[0022]测试模块,用于根据获取的测试参数执行各测试用例,实现系统的集成测试。
[0023]其中,执行顺序参数设置模块包括:
[0024]第一设置单元,用于设置所述执行顺序参数为空时,按照数据字典排序执行测试用例。
[0025]其中,所述测试模块包括:
[0026]第一参数获取单元,用于通过配置文件获取用户输入的测试参数;
[0027]第二参数获取单元,用于通过系统接口获取系统生成的测试参数。
[0028]其中,还包括:
[0029]更新模块,用于定期更新所述测试用例、所述测试用例实现模块、所述测试组、所述依赖关系参数、所述执行顺序参数。
[0030]本发明所提供的基于TestNG的集成测试方法,包括:按照系统的资源或功能进行测试用例实现模块的划分,并将各测试用例分配到指定的测试用例实现模块中;设置各测试用例实现模块中各测试用例的测试组;设置各个测试组之间的依赖关系参数;设置各测试组中各测试用例的执行顺序参数;根据获取的测试参数执行各测试用例,实现系统的集成测试;
[0031]可见,该方法通过将测试用例设置成不同的测试用例实现模块,并指定各测试用例实现模块中测试用例的分组,进而自动化集成各测试用例,自动执行各个测试用例,可以提高测试效率,提高测试质量,提高测试覆盖率,能够测试手工测试不能进行的测试,更好地重现程序缺陷,增进测试人员与开发人员的合作;本发明还提供了一种基于TestNG的集成测试系统,具有上述有益效果,在此不再赘述。
【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0033]图1为本发明实施例所提供的基于TestNG的集成测试方法的流程图;
[0034]图2为本发明实施例所提供的基于TestNG的集成测试的结构示意图;
[0035]图3为本发明实施例所提供的基于TestNG的集成测试系统的结构框图。
【具体实施方式】
[0036]本发明的核心是提供一种基于TestNG的集成测试方法及系统,能够自动化集成各测试用例,自动执行各个测试用例,可以提高测试效率,提高测试质量,提高测试覆盖率。
[0037]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]请参考图1,图1为本发明实施例所提供的基于TestNG的集成测试方法的流程图;该方法可以包括:
[0039]S100、按照系统的资源或功能进行测试用例实现模块的划分,并将各测试用例分配到指定的测试用例实现模块中;
[0040]其中,设置成不同的测试用例实现类即测试用例实现模块或者简称模块,以便多人并行开发,提高开发效率。系统模块的划分可以根据系统的资源或功能进行。例如若系统具有3个功能则可以对应划分为3个模块,每个模块都是具是测试用例实现类,方便将每个测试用例实现类对应的测试用例进行归类管理。
[0041]S110、设置各测试用例实现模块中各测试用例的测试组;
[0042]其中,将测试用例划分成不同的分组,为每一个测试用例指定分组,组可以跨模块,以便可以实现分组管理测试用例。测试组的划分可以跨模块进行,即每个测试组中的测试用例可以来自不同的模块。例如,测试组I可以包括第I模块中的一个测试用例和第3模块中的一个测试用例。
[0043]S120、设置各个测试组之间的依赖关系参数;
[0044]其中,指定组与组之间的依赖关系,以便组与组之间按照指定的顺序执行。由于系统根据其功能的不同,复杂程度也不同,一般都会存在多个模块以及多个测试组,这样每个测试组在执行的时候需要知道什么时候执行;因此,要设置各个测试组之间的依赖关系参数。例如测试组2依赖于测试组I或测试组2在测试组I之后执行,则测试组I执行完才会执行测试组2。
[0045]S130、设置各测试组中各测试用例的执行顺序参数;
[0046]其中,如果测试用例确实有依赖其他的测试用例的需要,那么指定其依赖的方法即执行顺序参数,以便使测试用例之间能够按照预期的测试顺序执行。例如测试组I中有3个测试用例,第2个测试用例依赖第I个测试用例,第3个测试用例依赖第2个测试用例,则他们的执行顺序就是第I个测试用例到第2个测试用例再到第3个测试用例。若没有设置执行顺序参数,即设置所述执行顺序参数为空时,按照数据字典排序执行测试用例。也可以按照其他用户指定的默认顺序执行各个测试用例。
[0047]S140、根据获取的测试参数执行各测试用例,实现系统的集成测试。
[0048]其中,这里的测试参数是指测试用例执行过程中需要的参数,一般情况下,测试参数需要包括用户输入的测试参数及程序执行过程中产生的中间变量为测试参数。可选的,测试参数的获取,包括:
[0049]通过配置文件获取用户输入的测试参数;
[0050 ]通过系统接口获取系统生成的测试参数。
[0051]其中,需要用户输入的参数通过配置文件给出,其他情况尽可能通过系统接口获取参数,一遍自动化测试可以顺利进行。执行测试用例的顺序按照上述设置好的模块,组以及各组之间的依赖关系和组内各个测试用例的顺序关系确定的顺序进行。
[0052]其中,基于TestNG的自动化集成测试方法,在充分考虑自动化测试的功能覆盖率,能够周期性地对软件系统进行测试代替部分人工测试的特点,利用TestNG框架,通过模块划分便于多人协作开发集成测试用例,通过分组便于管理分散在各模块的大量测试用例,通过指定分组依赖实现各个分组的执行顺序,通过指定方法依赖实现各个测试用例的执行顺序。基于TestNG的自动化集成测试方法的核心包括:(I)模块划分,(2)组划分,(3)组与组之间的依赖关系定义,(4)方法之间的依赖关系定义,(5)参数获取。下面参照附图2,若该系统可以划分为2个模块,4个分组和12个测试方法为例描述这一结构的实现过程。
[0053]即将系统集成测试用例划分为两个模块A和B,其中各包含6个测试方法,模块A中包含testAlO到testA6(),模块B中包含testBl()到testB6(),这12个测试方法的任何一个都需要指定所属分组,组内的方法可以显式地指定依赖顺序,如果不指定,则默认按照数据字典排序执行测试用例。如图所示制定了4个分组,组I到组4,其中,每个组包含的测试用例及各测试用例之间的执行顺序参数和各个组之间的依赖关系如图所示。
[0054]基于上述任意技术方案,为了持续保证系统质量,在系统要更新或者增添功能等时候需要相应的对测试用例进行调整,也要对测试用例实现模块,测试组,依赖关系参数,执行顺序参数等设置进行调整,以保证测试的正确性,因此,可以该方法还包括:
[0055]定期更新所述测试用例,所述测试用例实现模块,所述测试组,所述依赖关系参数,所述执行顺序参数。
[0056]基于上述技术方案,本发明实施例提的基于TestNG的集成测试方法,考虑测试用例数目庞大、以及测试用例之间相互依赖的特点,采用基于TestNG的自动化集成测试方法,对系统集成测试用例分模块、分组、指定执行顺序,即根据系统中的资源或功能进行模块划分,设置成不同的测试用例实现类;将测试用例划分成不同的分组,为每一个测试用例指定分组,组可以跨模块;指定组与组之间的依赖关系;如果测试用例确实有依赖其他的测试用例的需要,那么指定其依赖的方法,需要用户输入的参数通过配置文件给出,其他情况尽可能通过系统接口获取参数。可有效系统集成测试的效率,提高测试质量,提高测试覆盖率,能够测试手工测试不能进行的测试,更好地重现程序缺陷,增进测试人员与开发人员的合作。
[0057]本发明实施例提供了基于TestNG的集成测试方法,能够自动化集成各测试用例,自动执行各个测试用例,可以提高测试效率,提高测试质量。
[0058]下面对本发明实施例提供的基于TestNG的集成测试系统进行介绍,下文描述的基于TestNG的集成测试系统与上文描述的基于TestNG的集成测试方法可相互对应参照。
[0059]请参考图3,图3为本发明实施例所提供的基于TestNG的集成测试系统的结构框图;该系统可以包括:
[0060]模块划分模块100,用于按照系统的资源或功能进行测试用例实现模块的划分,并将各测试用例分配到指定的测试用例实现模块中;
[0061 ]测试组划分模块200,用于设置各测试用例实现模块中各测试用例的测试组;
[0062]依赖关系参数设置模块300,用于设置各个测试组之间的依赖关系参数;
[0063]执行顺序参数设置模块400,用于设置各测试组中各测试用例的执行顺序参数;
[0064]测试模块500,用于根据获取的测试参数执行各测试用例,实现系统的集成测试。
[0065]可选的,执行顺序参数设置模块400包括:
[0066]第一设置单元,用于设置所述执行顺序参数为空时,按照数据字典排序执行测试用例。
[0067]可选的,所述测试模块500包括:
[0068]第一参数获取单元,用于通过配置文件获取用户输入的测试参数;
[0069]第二参数获取单元,用于通过系统接口获取系统生成的测试参数。
[0070]基于上述任意技术方案,该系统还包括:
[0071]更新模块,用于定期更新所述测试用例,所述测试用例实现模块,所述测试组,所述依赖关系参数,所述执行顺序参数。
[0072]说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0073]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0074]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(R0M)、电可编程R0M、电可擦除可编程R0M、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0075]以上对本发明所提供的基于TestNG的集成测试方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
【主权项】
1.一种基于TestNG的集成测试方法,其特征在于,包括: 按照系统的资源或功能进行测试用例实现模块的划分,并将各测试用例分配到指定的测试用例实现模块中; 设置各测试用例实现模块中各测试用例的测试组; 设置各个测试组之间的依赖关系参数; 设置各测试组中各测试用例的执行顺序参数; 根据获取的测试参数执行各测试用例,实现系统的集成测试。2.根据权利要求1所述的基于TestNG的集成测试方法,其特征在于,设置各测试组中各测试用例的执行顺序参数,包括: 设置所述执行顺序参数为空时,按照数据字典排序执行测试用例。3.根据权利要求2所述的基于TestNG的集成测试方法,其特征在于,测试参数的获取,包括: 通过配置文件获取用户输入的测试参数; 通过系统接口获取系统生成的测试参数。4.根据权利要求1至3任一项所述的基于TestNG的集成测试方法,其特征在于,还包括: 定期更新所述测试用例、所述测试用例实现模块、所述测试组、所述依赖关系参数、所述执行顺序参数。5.一种基于TestNG的集成测试系统,其特征在于,包括: 模块划分模块,用于按照系统的资源或功能进行测试用例实现模块的划分,并将各测试用例分配到指定的测试用例实现模块中; 测试组划分模块了,用于设置各测试用例实现模块中各测试用例的测试组; 依赖关系参数设置模块,用于设置各个测试组之间的依赖关系参数; 执行顺序参数设置模块,用于设置各测试组中各测试用例的执行顺序参数; 测试模块,用于根据获取的测试参数执行各测试用例,实现系统的集成测试。6.根据权利要求5所述的基于TestNG的集成测试系统,其特征在于,执行顺序参数设置丰吴块包括: 第一设置单元,用于设置所述执行顺序参数为空时,按照数据字典排序执行测试用例。7.根据权利要求6所述的基于TestNG的集成测试系统,其特征在于,所述测试模块包括: 第一参数获取单元,用于通过配置文件获取用户输入的测试参数; 第二参数获取单元,用于通过系统接口获取系统生成的测试参数。8.根据权利要求5至7任一项所述的基于TestNG的集成测试系统,其特征在于,还包括: 更新模块,用于定期更新所述测试用例、所述测试用例实现模块、所述测试组、所述依赖关系参数、所述执行顺序参数。
【文档编号】G06F11/36GK105975397SQ201610566037
【公开日】2016年9月28日
【申请日】2016年7月18日
【发明人】栗丽霞, 闫冬冬, 荆帅帅
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1