一种实现测试用例自动化运行的方法

文档序号:6651470阅读:206来源:国知局
专利名称:一种实现测试用例自动化运行的方法
技术领域
本发明涉及测试技术,特别地涉及一种实现测试用例自动化运行的方法。
背景技术
一个测试用例包含的基本内容包括用例编号、名称、描述、前置条件、测试过程、期望结果、后置条件和其他用例说明等内容,其中与测试用例执行相关的内容有前置条件、测试过程、期望结果和后置条件,而目前在设计和实现测试用例过程中都只是关注测试过程和期望结果,对于前置条件和后置条件,通常只是作为测试用例的说明内容。在实际的自动化测试过程中,这种设计实现的测试用例很难组织和执行。
由于在设计实现过程中没有充分考虑测试用例的前置条件和后置条件,每个测试用例的起始状态和结束状态也各不相同,在后续过程中组织执行测试用例需要的处理过程也各不相同,无法统一组织管理。对于这种情况,通常的处理方法有以下两种(1)手工将环境设定为测试用例的起始状态。这种方法在测试用例设计实现过程中应用较多,适合单个测试用例的执行,通过查看测试用例前置条件描述,人为地改变待测对象状态达到测试用例开始执行要求的运行状态。但这种方法在多个测试用例连续执行时很难应用,由于需要人为参与,造成无法自动化的连续测试。
(2)每个测试用例从待测对象的初始状态开始。这种方法较多的应用到待测对象特定功能的测试,基本能够实现自动化测试执行。
但是,这种方法的应用也存在诸多问题,例如每个测试用例规模较大,无法灵活组织执行;测试用例设计实现需要的工作量较大,这使得后续的维护工作量更大,特别是在待测对象修改升级后,其中一个环节的修改,将使得与该环节相关的所有测试用例都需要修改,而即使该环节只是测试用例设定前置条件的中间环节也需要修改维护。

发明内容
本发明要解决的技术问题是提供一种实现测试用例自动化运行的方法,使测试用例可自动化运行,且组织灵活,后续维护工作量小。
为了解决上述技术问题,本发明提供了一种实现测试用例自动化运行的方法,包括以下步骤(a)设定待测对象的状态节点,根据待测对象的执行路径将所述状态节点组成运行过程状态树;(b)在测试平台中建立和保存用于实现所述状态树中任意两个状态节点间转换的函数和处理单元;实现测试用例时,使其起始状态和结束状态均为所述状态树上的状态,并分别设定到该测试用例的前置条件和后置条件中;(c)运行多个测试用例时,在一个测试用例执行完成后,所述处理单元将该测试用例的结束状态作为转换的起始状态,将下一个测试用例的起始状态作为转换的结束状态,调用相应函数,转换到下一测试用例的起始状态,然后执行下一测试用例。
进一步地,上述方法还可具有以下特点所述步骤(b)中,对所述状态树中任意两个相邻状态节点间的连接,均建立和保存用于实现两个相应状态之间双向转换的转换函数,作为所述用于实现状态树中任意两个状态节点间转换的函数;所述步骤(c)中,处理单元先按照状态树的遍历算法找到从所述转换的起始状态到结束状态的路径,然后依次调用该路径上前后两个状态对应的转换函数,从而完成状态转换。
进一步地,上述方法还可具有以下特点所述步骤(b)中,对所述状态树中任意两个相邻状态节点间的连接,均建立和保存用于实现两个相应状态之间双向转换的转换函数;然后采用树的遍历算法得出状态树中任意两个状态节点之间的路径,再依次调用该路径上相邻状态节点对应的转换函数,生成完成首尾两个状态节点状态转换的算法函数,作为所述用于实现状态树中任意两个状态节点间转换的函数;所述步骤(c)中,处理单元直接根据所述转换的起始状态到结束状态找到相应的算法函数,完成状态转换。
进一步地,上述方法还可具有以下特点所述用于实现两个相应状态之间双向转换的转换函数可以是一个可完成状态间双向转换的函数,也可以是两个分别完成状态间单向转换的函数。
进一步地,上述方法还可具有以下特点所述用于实现两个相应状态之间双向转换的转换函数可以是一个可完成状态间双向转换的函数,也可以是两个分别完成状态间单向转换的函数,所述用于实现首尾两个状态节点间状态转换的算法函数,可以是一个可完成双向转换的函数,也可以是两个分别完成单向转换的函数。
进一步地,上述方法还可具有以下特点所述函数均保存在测试平台的库文件中,所述状态节点的标识和对这些函数的声明保存在测试平台的头文件中。
进一步地,上述方法还可具有以下特点所述步骤(a)中,是将待测对象按照功能模块划分,定义出该待测对象的各个状态节点和运行过程状态树的。
进一步地,上述方法还可具有以下特点所述步骤(a)中,是将待测对象按照运行过程划分,定义出该待测对象的各个状态节点和运行过程状态树的。
与现有技术相比,本发明具有如下显著优点(1)采用本发明所述方法,只要在用例设计中把测试用例的起始状态和结束状态设定到运行过程状态树的状态节点上,就自动设定好测试用例运行环境,测试用例实现内容不受限制,可以跨越状态和功能;(2)采用本发明所述方法,测试用例设计的规模可以减小,粒度可以更加细化,待测对象的改变对测试用例的影响很小,后续维护工作量减小;(3)本发明所述方法相当于测试用例粘合剂,连续运行的两个测试用例之间状态的差别可以通过状态转换自动得到结合,实现测试用例连续执行;(4)通过采用本发明所述方法可以方便地建立了测试用例运行的运行环境,使测试用例的组织和测试套的建立更加灵活。


图1为本发明实施例待侧对象的状态树。
图2为本发明实施例自动运行测试用例的示意图。
图3为本发明实施例构建测试用例运行环境设定平台的流程图。
具体实施例方式
本发明自动化构建测试用例运行环境的方法的核心思想是通过分析和整理,描绘出待测对象的运行状态和执行路径;通过数学转换得出待测对象的运行过程状态树;通过实现待测对象的运行过程状态树中所有相邻状态的双向转换,可以使待测对象在任意两个状态之间切换,从而构建一个统一的自动化的测试用例运行环境设定平台,以下也简称为测试平台,用于提供实现测试用例、设置测试用例运行环境和执行测试用例的平台。
下面结合附图和具体实施例对本发明作进一步的介绍,但不作为对本发明的限定。
如图1和图2所示,本实施例自动化构建测试用例运行环境的方法包括以下步骤步骤101,设定待测对象的状态节点,并对这些状态节点分别编号,将所有状态节点的编号以不同的全局变量保存到头文件中以便调用;划分待测对象的方法有很多,可以按照功能模块划分,也可以按照待测对象运行过程划分,只要保证能够清楚定义状态点,可以根据实际待测对象的各种特点划分。
如图1所示,将状态节点分别编号为“状态0”、“状态1”、“状态11”、“状态12”、“状态2”、“状态21”、“状态22”、“状态121”、“状态122”和“状态221”。
步骤102,按照待测对象的执行路径将各个状态节点组成运行过程状态树,除根节点外,每层的状态节点表示与其相邻(指图中相连)的上一层状态节点的后续状态,但相邻状态节点的状态也可以双向转换;如图1所示,其中“状态0”为待测应用的起始状态,并有两个后续状态,分别为“状态1”和“状态2”,而“状态1”有两个后续状态“状态11”和“状态12”,“状态2”也有2个后续状态“状态21”和“状态22”,而“状态12”的后续状态为“状态121”和“状态122”,同时“状态122”也为“状态21”的后续状态,“状态22”的后续状态为“状态221”,如图所示,状态树中所有的相邻状态都是可以相互转换的;步骤103,对状态树中任意两个相邻状态节点之间的连接,建立相应的状态转换函数,可以是一个可完成双向转换的函数,也可以是分别完成一个方向转换的两个函数,将得到的状态转换函数保存到库文件中;在使用不同的测试平台时,根据状态树中相邻状态节点的连接建立状态函数方法也不同,本发明对此不做限定。
步骤104,然后采用树的遍历算法得出状态树中任意两个状态节点之间的路径,并通过依次调用库文件中该路径上相邻状态节点对应的状态转换函数,生成用于实现首尾两个状态节点间状态转换的算法函数,可以是一个可完成双向转换的函数,也可以是两个分别完成单向转换的函数,然后在头文件中进行算法函数的声明,将得到的算法函数放到库文件中;步骤105,修改测试平台,增加实现测试用例间状态转换的状态转换处理单元,用于根据需要转换的两个状态确定转换路径,从头文件和库文件调用相应的算法函数,完成状态转换;步骤106,利用测试平台实现测试用例,要求测试用例的起始状态和结束状态必须为状态图中存在的状态上,完成测试用例实现后,设定测试用例的环境,即将测试用例的起始状态和结束状态分别设定到其前置条件和后置条件中,以便状态转换。
利用上述步骤构建好测试平台后,测试用例的执行过程将不再受到限制。下面结合图2对测试用例执行过程进行描述,图中选择了连续自动化执行两个测试用例。
测试用例N起始状态(前置条件)为状态12,结束状态(后置条件)为221;测试用例N+1起始状态(前置条件)为状态1,结束状态(后置条件)为状态121。
测试用例的自动执行过程如下第一步,首先将测试平台的运行环境设定为测试用例N的起始状态,执行测试用例N的内容;第二步,测试用例N执行完成之后,状态转换处理单元查看测试用例的前置条件和后置条件,将测试用例N的结束状态221作为转换的起始状态,将测试用例N+1的起始状态1作为转换的结束状态;第三步,状态转换处理单元根据转换的起始状态和结束状态,并从库文件中找到相应的算法函数,将待测对象的状态转换为状态1;第四步,测试用例N+1的起始状态(或称为运行环境)自动设定完成,开始进行测试用例N+1内容的执行。
可以看出,既使增加更多的测试用例,也可以由测试平台自动完成多个测试用例的执行,无需人工干预。并且,由于各个测试用例之间相对独立,一个测试用例的起始或结束状态发生变化时,并不需要修改其它的测试用例,还可以方便地增加或删除需要运行的测试用例。因此,方便地实现了测试用例的灵活组织,使测试用例最大程度的得到重用,提高效率。
在上述实施例的基础上,本发明还可以有各种变换。例如,本实施例中虽然用的是头文件、库文件保存得到的状态节点编号和算法函数、转换函数等,但在采用其它的测试平台时,可能名称并不如此称呼。
又如,在另一实施例中,可以不进行实施例步骤104,即不生成和保存状态树中两个状态节点之间的算法函数,而在具体执行时,在对应于实施例的步骤三中,再根据转换的起始状态和结束状态,按照状态树的遍历算法找到从状态221到状态1的路径221→22→2→0→1,然后依次调用该路径上前后两个状态之间的转换函数,也同样可以完成状态转换。原实施例会多占用一些存储空间,不过执行时直接找到相应的算法函数就可以了。
权利要求
1.一种实现测试用例自动化运行的方法,包括以下步骤(a)设定待测对象的状态节点,根据待测对象的执行路径将所述状态节点组成运行过程状态树;(b)在测试平台中建立和保存用于实现所述状态树中任意两个状态节点间转换的函数和处理单元;实现测试用例时,使其起始状态和结束状态均为所述状态树上的状态,并分别设定到该测试用例的前置条件和后置条件中;(c)运行多个测试用例时,在一个测试用例执行完成后,所述处理单元将该测试用例的结束状态作为转换的起始状态,将下一个测试用例的起始状态作为转换的结束状态,调用相应函数,转换到下一测试用例的起始状态,然后执行下一测试用例。
2.如权利要求1所述的方法,其特征在于,所述步骤(b)中,对所述状态树中任意两个相邻状态节点间的连接,均建立和保存用于实现两个相应状态之间双向转换的转换函数,作为所述用于实现状态树中任意两个状态节点间转换的函数;所述步骤(c)中,处理单元先按照状态树的遍历算法找到从所述转换的起始状态到结束状态的路径,然后依次调用该路径上前后两个状态对应的转换函数,从而完成状态转换。
3.如权利要求1所述的方法,其特征在于,所述步骤(b)中,对所述状态树中任意两个相邻状态节点间的连接,均建立和保存用于实现两个相应状态之间双向转换的转换函数;然后采用树的遍历算法得出状态树中任意两个状态节点之间的路径,再依次调用该路径上相邻状态节点对应的转换函数,生成完成首尾两个状态节点状态转换的算法函数,作为所述用于实现状态树中任意两个状态节点间转换的函数;所述步骤(c)中,处理单元直接根据所述转换的起始状态到结束状态找到相应的算法函数,完成状态转换。
4.如权利要求2所述的方法,其特征在于,所述用于实现两个相应状态之间双向转换的转换函数可以是一个可完成状态间双向转换的函数,也可以是两个分别完成状态间单向转换的函数。
5.如权利要求3所述的方法,其特征在于,所述用于实现两个相应状态之间双向转换的转换函数可以是一个可完成状态间双向转换的函数,也可以是两个分别完成状态间单向转换的函数,所述用于实现首尾两个状态节点间状态转换的算法函数,可以是一个可完成双向转换的函数,也可以是两个分别完成单向转换的函数。
6.如权利要求1所述的方法,其特征在于,所述函数均保存在测试平台的库文件中,所述状态节点的标识和对这些函数的声明保存在测试平台的头文件中。
7.如权利要求1所述的方法,其特征在于,所述步骤(a)中,是将待测对象按照功能模块划分,定义出该待测对象的各个状态节点和运行过程状态树的。
8.如权利要求1所述的方法,其特征在于,所述步骤(a)中,是将待测对象按照运行过程划分,定义出该待测对象的各个状态节点和运行过程状态树的。
全文摘要
本发明公开一种实现测试用例自动化运行的方法,先设定待测对象的状态节点,根据其执行路径将状态节点组成状态树;在测试平台中建立和保存实现状态树中任意两个状态节点间转换的函数和处理单元;实现测试用例时,使其起始状态和结束状态为状态树上的状态,并分别设定到前置条件和后置条件中;运行多个测试用例时,在一个测试用例执行完后,处理单元将该测试用例结束状态作为转换起始状态,将下一个测试用例起始状态作为转换结束状态,调用相应函数完成转换,然后执行下一测试用例。本发明可以实现测试用例的自动化运行,且组织灵活,后续维护工作量小。
文档编号G06F11/36GK1987817SQ200510132220
公开日2007年6月27日 申请日期2005年12月22日 优先权日2005年12月22日
发明者韩小宾 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1