著录项信息
专利名称 | 基于测试执行机能力度的测试任务自动分配方法 |
申请号 | CN200910169977.5 | 申请日期 | 2009-09-11 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | | 公开/公告号 | |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/36 | IPC分类号 | G;0;6;F;1;1;/;3;6查看分类表>
|
申请人 | 暂无 | 申请人地址 | 北京市海淀区学院路37号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京航空航天大学 | 当前权利人 | 北京航空航天大学 |
发明人 | 兰雨晴;高静 |
代理机构 | 北京汇智英财专利代理事务所 | 代理人 | 牟长林 |
摘要
本发明公开了一种基于测试执行机能力度的测试任务自动分配方法,其面向分布式自动化测试框架,用于提高分布式自动化测试框架的自动化程度。该方法包含以下步骤(1)首先,通过测试控制台定义测试任务,分解复杂测试任务T,表示为and-or-tree(T)结构,并描述为相应的ECA规则,写入测试执行场景文件中。(2)测试主控机解析测试执行场景文件,对and-or-tree(T)中的每个原子测试任务,迭代执行如下步骤获取当前各测试执行机所拥有的资源情况,计算得到各测试执行机对该原子测试任务的测试执行能力度,然后按照基于测试执行机能力度的测试任务分配标准将该原子测试任务分配给一个测试执行机,并将原子测试任务分配情况写入测试执行场景文件中。
1.一种基于测试执行机能力度的测试任务自动分配方法,用于分布式自动化测试框架,其特征在于包含以下步骤:
(1)首先,通过测试控制台定义测试任务,对复杂测试任务T进行分解,将复杂测试任务T表示为and-or-tree(T)结构,并描述为相应的ECA规则集合,写入测试执行场景文件中,其中,测试任务为实现特定测试目标所要执行的测试用例集该测试任务分为原子测试任务和复杂任务,而原子测试任务为在执行测试任务分配时的一个不可再分的测试用例的最小集合复杂测试任务,复杂任务则是由一系列逻辑相关的原子测试任务所构成的有序集合;
(2)测试主控机解析该测试执行场景文件,对and-or-tree(T)结构中的每个原子测试任务,迭代执行如下步骤:获取当前各测试执行机所拥有的资源情况,计算得到各测试执行机对该原子测试任务的测试执行能力度,然后按照基于测试执行机能力度的测试任务分配标准将该原子测试任务分配给一个测试执行机,并将原子测试任务分配情况写入测试执行场景文件中;
其中,and-or-tree(T)结构为:
树的根节点表示复杂测试任务T,树的叶子节点表示可以被单个测试执行机独立完成的原子测试任务,并且,如果树的某个节点有儿子任务,那么其儿子任务之间的执行逻辑为全“与”或全“或”关系;
其中,测试执行机a对于原子测试任务t的执行能力度为 其中 测
试执行机的执行能力度描述了测试执行机的系统资源状况,表示测试执行机完成原子测试任务的能力大小;其中
η=ηt/ηa,
,
ηt是完成原子测试任务t所需的最长时间,ηa是测试执行机a完成原子测试任务t所需的时间, 是原子测试任务t对第k类资源的需求, 是测试执行机a当前所拥有的第k类资源,测试执行机a当前所拥有的第k类资源为:测试执行机a拥有的该类资源的总数减去被已接受原子测试任务占用的资源数,μk是第k类资源资源的权重, 其中q为资源的类别数;ω1和ω2按时间和资源在任务t中的重要性确定比例,ω1+ω2=
1;
其中,原子测试任务分配标准为:测试执行机a具有执行原子测试任务t的执行能力为Abilat,测试执行机a对于原子测试任务t的执行能力度为 当 时,测试执行机a具有执行原子测试任务t的能力;给定原子测试任务t,其中t∈AT,AT为原子测试任务集,任意两个测试执行机a1和a2,基于测试执行能力度的任务分配标准 为:
,即:
若Abila1t∧Abila2t且 则测试执行机a1的执行能力度大于测试执行机a2的执行能力度,原子测试任务t优先分配给测试机a1。
2.依权利要求1所述的基于测试执行机能力度的测试任务自动分配方法,其特征在于,步骤(2)所述的对测试任务的分配为仅对and-or-tree(T)中所有原子测试任务进行分配,将原子测试任务分配给各测试执行机,而树上其它非原子测试任务的执行与协调均由测试主控机根据测试执行场景文件中ECA规则的描述来完成。
基于测试执行机能力度的测试任务自动分配方法\n技术领域\n[0001] 本发明涉及软件测试任务自动分配方法,尤其是指适用于分布式自动化测试框架的,基于测试执行机能力度的测试任务自动分配的方法。\n背景技术\n[0002] 通过对国内外研究人员在分布式系统测试研究领域内提出的各种测试框架的分析可知,自动化测试框架由两部分功能组成,一部分为测试脚本的生成,另一部分为测试脚本执行和执行管理。测试脚本执行和执行管理部分完成测试任务的定义、测试任务分配、部署、调度,自动化执行、测试结果收集和分析等测试执行管理功能。现有研究主要集中于测试脚本的生成和重用、测试的自动执行,测试的协同工作三个方向。当前研究集中于脚本的自动化执行和测试结果的自动化收集和分析,而对于分布式测试任务的自动化分配、部署、调度方向还未见研究,主要采用人工分配、部署和调度的方式。当前的测试执行框架,包括著名的Rational Test Manager等都采用人工分配测试任务的方式。测试任务人工分配方式增加了测试人员的负担,分配策略只能采用静态任务分配策略,而且和测试人员的经验直接相关,有可能不是最佳的分配方案,导致测试机的资源浪费,增加测试执行时间。测试任务人工分配方式一方面存在效率的问题,另一方面人工调度可能导致任务分配、调度对资源的利用不合理。若能实现测试任务自动化分配将进一步提高自动化测试框架的自动化程度。\n发明内容\n[0003] 为了解决上述问题,进一步提高分布式自动化测试框架的自动化程度,提高测试任务分配的效率,本发明的主要目的在于提出一种基于测试执行机能力度的测试任务自动分配方法。\n[0004] 在本发明中,测试主控机通过分析测试任务对测试执行机能力的要求,按照测试执行能力度大小自动选择适合的测试执行机,完成测试任务的自动分配。具体步骤如下:\n[0005] (1)通过GUI控制台定义测试任务时,分解复杂测试任务T,表示为\nand-or-tree(T)结构,并描述相应的ECA规则集合,写入测试执行场景文件。\n[0006] (2)测试主控机解析测试执行场景文件,对and-or-tree(T)中的每个原子测试任务,迭代执行如下步骤:获取当前各测试执行机所拥有的资源情况,计算得到各测试执行机对该原子测试任务的测试执行能力度,然后按照基于测试执行机能力度的测试任务分配标准将该原子测试任务分配给一个测试执行机,并将原子测试任务分配情况写入测试执行场景文件中。\n[0007] 测试任务的分配为仅对and-or-tree(T)中所有原子测试任务进行分配,将原子测试任务分配给各测试执行机,而树上其它非原子测试任务的执行与协调,例如同步“与”任务,选择“或”任务等,均由测试主控机根据测试执行场景文件中ECA规则的描述来完成。\n[0008] 本发明的技术效果是,为分布式自动化测试框架提供了一种自动化测试任务分配方法,进一步提高了自动化测试框架的自动化程度。\n[0009] 相关定义\n[0010] 定义1测试任务\n[0011] 为实现特定测试目标所要执行的测试用例集。如完成操作系统和数据库之间的兼容性测试所需要执行的测试用例集。测试任务分为原子测试任务和复杂任务。\n[0012] 定义2原子测试任务\n[0013] 原子测试任务ti被定义为在执行测试任务分配时的一个不可再分的测试用例的最小集合,它是参与分配的最小单位。任务ti可以是一个与其它测试用例不相关的单独测试用例,也可以是一组相关联的测试用例。\n[0014] 定义3复杂测试任务\n[0015] 是由一系列逻辑相关的原子测试任务所构成的有序集合,复杂测试任务可以分解为原子测试任务集合。\n[0016] 定义4复杂测试任务的“与-或树”(and-or-tree)描述\n[0017] 将复杂测试任务分解为原子测试任务,复杂测试任务分解为原子测试任务描述为:\n[0018] ComplicatedTask=\n[0019] 其中,DecomID表示复杂测试任务的标识,用以区分各个不同的被分解复杂测试任务;AtomTaskSet表示原子测试任务集;Relation={And,Or,Enable,Facilitae,...},表示原子测试任务的各种相互依赖关系;OTHERS描述了复杂测试任务的其它属性特征,包括复杂测试任务的难度、重要性等属性。\n[0020] 原子测试任务及原子测试任务间各种相互依赖关系共同构成了被分解复杂测试任务的结构特征。通常采用领域无关的任务表达框架TAEMS来描述复杂测试任务分解,TAEMS采用“与-或树”表示任务的分解过程和分解任务,它将方法作为最小的任务执行单位,用概率的方式量化了方法对应的质量、费用、时间等属性值;同时它利用累积函数表达上下层任务间的连接,揭示这些任务间的“与-或”关系。本发明的方法是将原子测试任务与TAEMS中的方法相对应,并定义分解的复杂测试任务T对应的“与-或树”(and-or-tree)描述如下:\n[0021] 设任一复杂测试任务T的结构都可以描述为一棵“与-或树”,记作\nand-or-tree(T),树的根节点表示复杂测试任务T,树的叶子节点表示可以被单个测试执行机独立完成的原子测试任务,并且约定:如果树的某个节点有儿子任务,那么其儿子任务之间的执行逻辑要么全“与”,要么全“或”,记作and-F(t1,t2,...,tn)或or-F(t1,t2,...,tm),其中F是节点标识,ti是F的儿子节点。\n[0022] 将and-or-tree(T)等价地用ECA(event-condition-action)规则集合表示,ECA规则通过条件的组合,例如条件的合取(∧)、析取(∨),描述组合条件关系,同时也描述了执行活动的执行依赖关系。\n[0023] 定义5测试执行机的执行能力和执行能力度\n[0024] 测试执行机的执行能力度描述了测试执行机的系统资源状况,表示测试执行机完成原子测试任务的能力大小。记测试执行机a具有执行原子测试任务t的执行能力为Abilat,测试执行机a对于原子测试任务t的执行能力度为 当 时,测试执行机a具有执行原子测试任务t的能力。\n[0025] 测试执行机a对于原子测试任务t的执行能力度 其中\n[0026] η=ηt/ηa (1)\n[0027] \n[0028] ηt是完成原子测试任务t所需的最长时间,ηa是测试执行机a完成原子测试任务t所需的时间,是原子测试任务t对第k类资源的需求,是测试执行机a当前所拥有的第k类资源(当前所拥有的第k类资源为:测试执行机a拥有的该类资源的总数减去被已接受原子测试任务占用的资源数,例如测试执行机a当前所拥有的自由内存为拥有的总内存减去已用的内存),μk是相应资源的权重, q为资源的类别数;ω1和ω2按\n时间和资源在原子测试任务t中的重要性确定比例,ω1+ω2=1。\n[0029] 若Abila1t∧Abila2t且 则称测试执行机a1的执行能力度大于测试执行\n机a2的执行能力度。\n[0030] 定义6原子测试任务分配标准\n[0031] 本方法采用基于测试执行能力度的原子测试任务分配标准。\n[0032] 给定原子测试任务t,t∈AT(AT为原子测试任务集),任意两个测试执行机a1和a2,基于测试执行能力度的原子测试任务分配标准 定义为:\n[0033] 即:\n[0034] 测试执行机a1的执行能力为Abila1t,a2的执行能力为Abila2t,且测试执行机a1的执行能力度 大于等于测试执行机a2的执行能力度 则优先将原子测试任务t分配给测试执行机a1。\n附图说明\n[0035] 图1为自动化测试执行框架的总体架构设计。\n[0036] 图2为复杂测试任务T的“与-或树”表示。\n[0037] 图3为基于测试机能力度测试任务自动分配方法的流程图。\n具体实施方式\n[0038] 在一个分布式自动化测试执行系统中,每台参与测试任务的机器称为测试机,测试机分为测试主控机和测试执行机。测试主控机是运行GUI测试控制台、测试主控部件和测试结果收集与集成部件的测试机,测试执行机为运行测试执行部件的测试机。系统中有且只有一个主控机,可以有1到N台测试机。构建测试执行系统时,在一台测试机上部署GUI测试控制台、测试主控部件和测试结果收集部件形成测试主控机,负责测试任务的定义、测试任务的分配、测试结果收集与集成等主要工作。在1到N台测试机上部署测试执行部件,作为测试执行机,负责测试任务的具体执行,也可在测试主控机上部署测试执行部件,这时,该机器具有测试主控和测试执行双重功能。\n[0039] 系统配置文件中定义了每台参与的测试机的环境参数和系统标识符,测试执行模式(编译、执行、清除)以及执行模式所用到的应用程序。测试执行场景文件记载了所有的测试任务,描述了测试任务的部署和执行流程,是测试调度和执行控制的依据。执行结果日志文件记录了测试执行过程中产生的测试用例输出信息和测试执行日志信息。\n[0040] 通过图形用户接口的测试控制台定义测试任务、分布式测试系统中各测试机的配置信息,并将定义的信息写入测试执行配置和测试执行场景文件中。在测试执行场景文件中,复杂测试任务被表示为“与-或树”和ECA规则集合。\n[0041] 将复杂测试任务表示为“与-或树”和ECA规则集合的方法:\n[0042] 具体是将复杂测试任务分解为原子测试任务,复杂测试任务分解为原子测试任务:\n[0043] ComplicatedTask=\n[0044] 其中,DecomID表示复杂测试任务的标识,用以区分各个不同的被分解复杂测试任务;AtomTaskSet表示原子测试任务集;Relation={And,Or,Enable,Facilitae,...},表示原子测试任务的各种相互依赖关系;OTHERS描述了复杂任务的其它属性特征,包括任务的难度、重要性等属性。\n[0045] 原子测试任务及原子测试任务间各种相互依赖关系共同构成了被分解复杂测试任务的结构特征。通常采用领域无关的任务表达框架TAEMS来描述复杂测试任务分解,TAEMS采用“与-或树”表示任务的分解过程和分解任务,它将方法作为最小的任务执行单位,用概率的方式量化了方法对应的质量、费用、时间等属性值;同时它利用累积函数表达上下层任务间的连接,揭示这些任务间的“与-或”关系。本发明的方法是将原子测试任务与TAEMS中的方法相对应,并定义分解的复杂测试任务T对应的“与-或树”(and-or-tree)描述如下:\n[0046] 设任一复杂测试任务T的结构都可以描述为一棵“与-或树”,记作\nand-or-tree(T),树的根节点表示复杂测试任务T,树的叶子节点表示可以被单个测试执行机独立完成的原子测试任务,并且约定:如果树的某个节点有儿子任务,那么其儿子任务之间的执行逻辑要么全“与”,要么全“或”,记作and-F(t1,t2,...,tn)或or-F(t1,t2,...,tm),其中F是节点标识,ti是F的儿子节点,例如图2中的and-T(1,2),and-1(3,4,5),or-2(6,\n7)等。\n[0047] 将and-or-tree(T)等价地用ECA(event-condition-action)规则集合表示,ECA规则通过条件的组合,例如条件的合取(∧)、析取(∨),描述组合条件关系,同时也描述了执行活动的执行依赖关系。图2所示and-or-tree(T)的部分ECA规则表示为:\nOn done(1)AND done(2)if union(1,2)=TRUE then done(T);On done(8)OR done(9)if choice(8,9)=TRUE then done(6)。其中,done(完成),union(同步与)和choice(选择或)都是一阶谓词。\n[0048] 如图3所示,为基于测试机能力度测试任务自动分配方法的流程图。当测试工作启动时,测试主控机读取并解析测试人员定义的测试执行配置和测试执行场景文件,测试主控机解析当前测试执行配置文件定义的各测试执行机的信息,并通过通信系统获取测试执行机的当前所拥有的资源情况,对测试执行场景中的每个原子测试任务,计算各测试执行机的执行能力度,按照基于执行能力度的测试任务分配标准将原子测试任务分配到相应的各测试执行机上进行测试,并将原子测试任务分配和部署信息写入测试执行场景文件。\n[0049] 其中,关于计算各测试执行机的执行能力度的方法:\n[0050] 测试执行机的执行能力度描述了测试执行机的系统资源状况,表示测试执行机完成原子测试任务的能力大小。记测试执行机a具有执行原子测试任务t的执行能力为Abilat,测试执行机a对于原子测试任务t的执行能力度为 当 时,测试执行机a具有执行原子测试任务t的能力。\n[0051] 测试执行机a对于原子测试任务t的执行能力度为 其中\n[0052] η=ηt/ηa (1)\n[0053] \n[0054] ηt是完成原子测试任务t所需的最长时间,ηa是测试执行机a完成原子测试任务t所需的时间, 是原子测试任务t对第k类资源的需求,是测试执行机a当前所拥有的第k类资源(测试执行机a当前所拥有的第k类资源为:测试执行机a拥有的该类资源的总数减去被已接受任务占用的资源数,例如测试执行机a当前所拥有的自由内存为拥有的总内存减去已用的内存),μk是相应资源的权重, q为资源的类别数;ω1和ω2按时间和资源在任务t中的重要性确定比例,ω1+ω2=1。\n[0055] 若Abila1t∧Abila2t且 则称测试执行机a1的执行能力度大于测试执行\n机a2的执行能力度。\n[0056] 本方法采用基于测试执行能力度的任务分配标准。\n[0057] 给定原子测试任务t,t∈AT(AT为原子测试任务集),任意两个测试执行机a1和a2,基于测试执行能力度的任务分配标准 定义为:\n[0058] 即:\n[0059] 测试执行机a1的执行能力为Abila1t,a2的执行能力为Abila2t,且测试执行机a1的执行能力度 大于等于测试执行机a2的执行能力度 则优先将原子测试任务t分配给测试执行机a1。\n[0060] 在测试执行过程中,主控端监控各测试执行机的执行。各测试执行机接收到原子测试任务后按照一定顺序进行测试,测试过程中,测试执行机将测试执行信息和测试结果反馈给主控机。如果需要与其它的测试机进行同步,则需要发送同步请求给主控机,由主控机来控制测试执行机之间的同步,并完成测试执行场景中所定义的各个非原子测试任务的执行。\n[0061] 测试控制台是针对测试任务进行定义、管理和报告的图形用户接口。通过控制台完成测试任务的创建和管理,进行测试执行配置,并把测试任务和测试配置信息发送给测试执行服务器,完成测试执行服务器返回的测试结果日志分析工作,提供测试执行报告信息,并对整个测试的流程和通信进行统一管理。\n[0062] 测试执行服务器接收控制台传送过来的测试任务、测试执行配置和测试执行场景信息,依据测试任务和测试执行配置信息,测试执行服务器进行测试任务的分配、测试脚本的部署、测试任务的调度和执行,并收集测试结果信息,测试结束后把最终测试结果日志回送到控制台。\n[0063] 测试控制台与测试执行服务器之间,以及测试执行服务器中测试主控与测试执行器间信息交互通过通信子系统完成。通信子系统是分布式测试执行的基础,为测试脚本部署、测试调度、测试结果收集等各项活动提供了支持。
法律信息
- 2013-06-12
专利权的转移
登记生效日: 2013.05.21
专利权人由兰雨晴变更为北京航空航天大学
地址由100084 北京市海淀区圆明园东门褐石园小区15号楼2单元205室变更为100191 北京市海淀区学院路37号
- 2011-06-01
- 2010-04-28
实质审查的生效
IPC(主分类): G06F 11/36
专利申请号: 200910169977.5
申请日: 2009.09.11
- 2010-02-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |