一种面向分布式系统的自动化测试的执行控制与调度方法技术方案

技术编号:6595684 阅读:421 留言:0更新日期:2012-04-11 18:40
本发明专利技术针对功能测试用例的测试,提出一种面向分布式系统的自动化测试的执行控制与调度方法方法。该方法首先对新建的测试任务中的大量测试用例根据优先级进行分类,然后按照优先级从高到低的顺序依次执行处于同一优先级的测试用例;对于处于同一优先级的测试用例先根据其执行节点类别进行分组,接着并行执行各组测试用例,各执行节点并行执行该组内的测试用例,直至该组内所有测试用例都执行完成。本发明专利技术方法实现了让大量测试用例在被测的分布式系统上自动化执行,而且缩短了总执行时间,并提高了被测系统的资源平均利用率。

【技术实现步骤摘要】

本专利技术属于软件自动化测试领域,具体是一种面向分布式系统自动化测试的执行控制与调度方法。
技术介绍
近年来,软件规模不断扩大,复杂度不断增加,软件质量和可靠性受到越来越多的重视。目前,软件测试技术是保证软件质量的最直接、最有效的手段。但是对于一些航天控制软件、大型武器装备软件等安全苛刻性软件,由于其代码量通常为百万行数量级,系统功能非常复杂,因此测试用例数量庞大,测试工作非常耗时,而且对于上述类型的系统软件会进行多次回归测试,只依靠人工测试会耗费太多的人力、物力。由于回归测试中用例是完全设计好的,测试期望的结果也是完全可以预料的,这就使得由软件代替人工操作,完成对被测试系统的输入,并且对输出进行检验的软件自动化测试成为可能。若将回归测试自动运行,可以让测试人员从繁琐和重复的测试活动中解脱出来,提高测试效率,缩短回归测试时间。虽然自动化测试要比人工测试快得多,但在测试用例数量庞大的时候,执行一次完整的测试有时甚至要花数天时间,导致测试周期过长。因此在对大量测试用例的自动化执行过程中,利用一种合理的测试用例执行调度方法,以进一步缩短测试时间是十分必要的。由于测试用例的执行时间未知,而且部分测试用例执行时同时需要多个主机,所以普通的任务调度方法对测试用例的执行调度是不适用的,同时由于被测系统的差异,很难找出一种通用的、高效的自动化测试执行调度方法。本专利技术针对如下分布式系统系统的网络拓扑结构固定,系统中存在多类执行节点,每一类又包含多个执行节点,同一类的执行节点之间是同构的,不同类执行节点之间是异构的。针对该分布式系统设计的每个测试用例均只在指定的一类执行节点上执行,但可能需要在单个执行节点或同时在多个执行节点上执行。由于同一类的执行节点之间是同构的,这些测试用例在确定的一类执行节点中的任意一个上执行效果等价,因此测试用例的执行节点是不固定的,执行这些测试用例时应该根据一定的策略将它们分发到不同的执行节点上执行。测试用例在部署被测软件的主机上自动化执行,该主机称为测试用例的执行节点。针对上述分布式系统的大量测试用例的执行,简单凭借使用自动化测试工具,不能完全实现自动化,还有很多步骤需要手工或通过自动化测试框架如STAF来完成,比如什么时候执行测试用例、分配到哪台被测主机上执行等。在现有的技术中,不论通过手工完成还是自动化测试框架,测试用例的执行顺序及测试用例执行节点的选取都必须是测试人员人工设定,这样不仅增加了测试人员的工作量,而且如果对测试用例的执行顺序安排不当, 或者测试用例的执行节点选取不当,会出现以下问题(1)部分测试用例可能需要在被测软件刚完成初始化之后便开始执行,部分测试用例执行时需要用到另外一些测试用例的执行结果,如果测试用例间的执行顺序不合理会导致部分用例因执行条件不满足而无法执行;(2)如果测试用例的执行节点选取不当,会导致部分执行节点上的测试用例已执行完毕,另外部分执行节点上仍在执行单个执行时间较长的测试用例,从而增加了所有测试用例的总执行时间。(3)如果测试用例的执行节点选取不当,会导致部分执行节点上无用例执行即处于空闲的时间较长,造成测试资源的利用率不高。
技术实现思路
本专利技术针对上述分布式系统的自动化测试中存在的需要人工设定测试用例的执行顺序及测试用例执行节点的问题,提供了,主要针对功能测试用例的测试。本专利技术的,具体包括以下步骤步骤一、测试人员在自动化测试控制端新建一个测试任务,并输入测试任务中各测试用例的基本信息,然后提交该测试任务;所述的自动化测试控制端部署在与被测系统独立的主机中;所述的测试用例的基本信息包括测试用例的编号、预期执行时间、执行优先级、需要的执行节点类别和执行节点数目、以及测试用例执行需要的其他资源。步骤二、自动化测试控制端依次读取测试任务中每个测试用例的基本信息,将测试用例添加到未执行的测试用例链表中。步骤三、取未执行的测试用例链表中优先级最高的所有测试用例,根据执行节点类别进行分组,将在同一类执行节点上执行的测试用例分为一组,各组测试用例并行地在对应类别的执行节点上执行。步骤四、判断是否执行完所有的测试用例,若否,转步骤三执行,若是,执行步骤五。步骤五、将本次测试任务所有测试用例的执行结果显示给用户查看,结束本次测试任务。步骤一中所述的测试用例的执行优先级,就是该测试用例被划分到的测试用例类别的优先级值。所述的测试用例的类别包括6类,按照优先级从高到低依次为在被测系统刚进入初始状态下执行的测试用例,执行添加操作的测试用例,执行查看操作的测试用例, 执行编辑操作的测试用例,执行删除操作的测试用例以及执行重置操作的测试用例。步骤三中所述的各组测试用例并行地在对应类别的执行节点上执行,具体每一组测试用例执行过程为(1)对该组中的所有测试用例先按照需要的执行节点数目从多到少的顺序排序,再对具有相同的执行节点数目的测试用例,首先将都为第一次执行的测试用例排在所有预期执行时间不为0的测试用例之前,然后对所有预期执行时间不为0的测试用例按照预期执行时间从长到短的顺序排序;对于具有相同的执行节点数目且都为第一次执行的测试用例,它们之间的相对顺序是随机的;( 依次判断未执行的测试用例的执行条件是否满足,若满足,为该测试用例分配执行节点及执行需要的额外资源,并执行该测试用例,然后判断下一个测试用例,若不满足则直接判断下一个测试用例;重复该判断直至被测系统中无空闲的对应类别的执行节点或者该组中所有的测试用例均已判断完毕;(3)监测所有正在执行的测试用例的执行状态,若监测到任意一个测试用例执行完毕,判断该组测试用例中是否有未执行的测试用例,若有转至( 执行,若没有执行下一步;(4)等待当前所有正在执行的测试用例执行完毕,更新数据库中该组中所有测试用例的预期执行时间,保存测试用例的执行结果。本专利技术的优点与积极效果在于(1)本专利技术实现了对测试用例的执行控制与调度,通过按优先级降低的顺序执行测试用例,降低了测试用例中因执行条件不满足导致测试用例无法执行的可能性;通过根据测试用例执行需要的节点数、预期执行时间对其执行顺序进行排序,降低了因单个执行时间较长的测试用例最后执行而增加多测试用例的总执行时间的可能性,减小了多个测试用例的总执行时间。(2)本专利技术使用测试用例执行调度方法将测试用例分发到所有执行节点上执行, 减少了执行节点处于空闲状态的时间,从而提高了系统资源的平均利用率。(3)本专利技术通过自动化测试控制端控制执行控制代理启动自动化测试工具执行测试用例,实现了分布式软件系统测试用例的自动化执行,测试人员提交测试任务之后无需参与测试用例的执行过程,简化了测试人员的工作。附图说明图1为本专利技术的自动化测试的执行控制与调度方法的整体流程图;图2为本专利技术的同一优先级的一组测试用例执行控制与调度流程图;图3为本专利技术的单个测试用例执行流程图;图4为本专利技术的测试任务文件示意图。具体实施例方式下面将结合附图和实施例对本专利技术作进一步的详细说明。本专利技术一种分布式自动化测试的测试用例执行控制与调度方法,如图1所示,由如下步骤组成步骤一测试人员在自动化测试控制端新建一个测试任务,然后在添加测试用例的页面中,输入本次测试任务的所有测试用例的基本信息。所述的自动化测试控制端部署在与被测系统独立的主机中,提供了本文档来自技高网
...

【技术保护点】
1.一种面向分布式系统的自动化测试的执行控制与调度方法,其特征在于,该方法具体包括以下步骤:步骤一、测试人员在自动化测试控制端新建一个测试任务,并输入测试任务中各测试用例的基本信息,然后提交该测试任务;所述的自动化测试控制端部署在与被测系统独立的主机中;所述的测试用例的基本信息包括:测试用例的编号、预期执行时间、执行优先级、需要的执行节点类别和执行节点数目、以及测试用例执行需要的其他资源;所述的测试用例执行需要的其他资源,是指测试用例执行时除了执行节点之外需要使用的实体资源以及虚拟资源;步骤二、自动化测试控制端依次读取测试任务中每个测试用例的基本信息,将测试用例添加到未执行的测试用例链表中;步骤三、取未执行的测试用例链表中优先级最高的所有测试用例,根据执行节点类别进行分组,将在同一类执行节点上执行的测试用例分为一组,各组测试用例并行地在对应类别的执行节点上执行;步骤四、判断是否执行完所有的测试用例,若否,转步骤三执行,若是,执行步骤五;步骤五、将本次测试任务所有测试用例的执行结果显示给用户查看,结束本次测试任务。

【技术特征摘要】
1.一种面向分布式系统的自动化测试的执行控制与调度方法,其特征在于,该方法具体包括以下步骤步骤一、测试人员在自动化测试控制端新建一个测试任务,并输入测试任务中各测试用例的基本信息,然后提交该测试任务;所述的自动化测试控制端部署在与被测系统独立的主机中;所述的测试用例的基本信息包括测试用例的编号、预期执行时间、执行优先级、需要的执行节点类别和执行节点数目、以及测试用例执行需要的其他资源;所述的测试用例执行需要的其他资源,是指测试用例执行时除了执行节点之外需要使用的实体资源以及虚拟资源;步骤二、自动化测试控制端依次读取测试任务中每个测试用例的基本信息,将测试用例添加到未执行的测试用例链表中;步骤三、取未执行的测试用例链表中优先级最高的所有测试用例,根据执行节点类别进行分组,将在同一类执行节点上执行的测试用例分为一组,各组测试用例并行地在对应类别的执行节点上执行;步骤四、判断是否执行完所有的测试用例,若否,转步骤三执行,若是,执行步骤五;步骤五、将本次测试任务所有测试用例的执行结果显示给用户查看,结束本次测试任务。2.根据权利要求1所述的一种面向分布式系统的自动化测试的执行控制与调度方法, 其特征在于,所述的测试用例的编号,用于在数据库中唯一检索查询对应编号的测试用例及该测试用例对应的脚本文件。3.根据权利要求1所述的一种面向分布式系统的自动化测试的执行控制与调度方法, 其特征在于,所述的预期执行时间,通过下面公式得到2ETn=IRTl,n = 2 0, = 1其中,ETn, ETlri分别表示测试用例的第η次与第(η-1)次执行的预期执行时间,RTn+ RT1分别表示测试用例的第(η-1)次与第1次执行的实际执行时间,测试用例的第一次执行的的预期执行时间ET1设置为0。4.根据权利要求1所述的一种面向分布式系统的自动化测试的执行控制与调度方法, 其特征在于,所述的测试用例的执行优先级,具体确定方法为根据该测试用例的主要操作步骤中的动作判断该测试用例的类别,然后将该类测试用例的优先级值设为该测试用例的执行优先级;所述的测试用例的类别包括6类,按照优先级从高到低依次为在被测系统刚进入初始状态下执行的测试用例,执行添加操作的测试用例,执行查看操作的测试用例,执行编辑操作的测试用例,执行删除操作的测试用例以及执行重置操作的测试用例。5.根据权利要求4所述的一种面向分布式系统的自动化测试的执行控制与调度方法, 其特征在于,所述的测试用例,根据主要操作步骤中的动作被划分为多类测试用例时,将该测试用例的执行优先级根据被划分为的优先级最低的一类测试用例的优先级值进行设置。6.根据权利要求1所述的一种面向分布式系统的自动化测试的执行控制与调度方法,其特征在于,所述的测试任务,采用XML文件描述,具体包括以下元素用于表示一个测试任务的根元素<task>,包括两个子元素〈resources〉、<uces>以及一个用于在数据库中唯一检索该测试任务的属性;元素〈resources〉用于表示该测试任务执行过程中所要用到的测试资源,含有两个子元素<nodes>元素和<other_resources>元素,<nodes>元素用于表示被测系统中该测试任务能用的执行节点信息,每个能用的执行节点用元素<node>表示;元素〈node〉具有两个属性表示执行节点所属的类别的属性以及表示执行节点网络地址的属性;<other_res0urCes>...

【专利技术属性】
技术研发人员:储大为尹杰余丹马世龙王志超张强张杨
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11

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

1