CN100337215C - 测试执行器 - Google Patents

测试执行器 Download PDF

Info

Publication number
CN100337215C
CN100337215C CNB2004100316157A CN200410031615A CN100337215C CN 100337215 C CN100337215 C CN 100337215C CN B2004100316157 A CNB2004100316157 A CN B2004100316157A CN 200410031615 A CN200410031615 A CN 200410031615A CN 100337215 C CN100337215 C CN 100337215C
Authority
CN
China
Prior art keywords
test
module
interpreter
passage
communication frame
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.)
Expired - Fee Related
Application number
CNB2004100316157A
Other languages
English (en)
Other versions
CN1677362A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2004100316157A priority Critical patent/CN100337215C/zh
Publication of CN1677362A publication Critical patent/CN1677362A/zh
Application granted granted Critical
Publication of CN100337215C publication Critical patent/CN100337215C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Maintenance And Management Of Digital Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种测试执行器,包括:测试监管模块,用于测试过程的互动及通讯;若干解释器模块,解释执行自动测试用例中的测试代码;其中,测试监管模块与解释器模块分离设置并通过接口模块进行交互,且解释器模块通过测试监管模块与测试执行器外部进行交互。本发明测试执行器的测试监管功能和解释器分离开来,抽象出测试执行器的框架结构,通过接口模块与测试监管模块交互,进而通过通讯模块实现与执行器外部交互。由于测试监管功能是测试执行器相对不变的部分,而解释器模块是随测试需要所采用的测试代码语言变化的部分,它们的分离使得测试监管模块的重用性提高。

Description

测试执行器
技术领域
本发明涉及软件测试,尤指用于执行自动测试用例的测试执行器。
背景技术
自动测试用例的执行是自动测试中一个关键环节,它的实现目前主要有两种方式:一是测试用例以解释型语言编写,由执行器解释执行;二是测试用例以编译型语言编写,其执行器即为所有测试用例编译后的可运行程序,其执行过程便是程序的运行过程。前者以简单、灵活和可控而得到大量的应用,本发明是针对后者的执行方式。
执行器的主要目的是解释执行测试代码(具体是由相应的解释器负责),但是,由于测试的互动需要,它还必须提供测试通讯、监视、控制、日志、告警、过程管理、调试及其跟踪等通用的测试监管功能。实现测试代码的编程语言是多种多样的,如tcl、python、perl、javascript等,因此执行器的所需要的解释器是不一样的,而且如果一次测试中测试代码包含多种语言,执行器就同时需要多个解释器。解释器一般随其对应的编程语言提供的,而执行器由测试工具的开发者设计和实现。
一般而言,不同执行器的测试监管功能大体是一致的,其开发工作量受其所能提供的功能所决定。能够完全满足自动测试需要的测试监管模块的工作量是非常大的,减少这一部分的开发工作量对执行器的开发有着重大的影响。此外,实际测试工作中不仅需要采用不同的测试编程语言,而且在比较大的系统测试中还可能需要同时执行不同语言编写的测试代码,因而存在执行器对不同解释器的支持也是非常重要的。
现有的执行器都是针对不同的解释器而设计的,大部分执行器都是一个解释器加部分监管代码混合而成。对不同的解释器,需要设计不同的执行器。
目前几乎所有的执行器方案是围绕着解释器而设计的,也就是说,一个解释器决定了一个执行器的设计,甚至在很多设计中两者是等同的。其构造方式类似于:
执行器=解释器+测试监管模块(完全实现或部分实现的)。
在这种设计中,解释器和测试监管模块的代码是相互混杂的,两者一般难以分离。
上述方案有两个致命的缺点:
1.执行器的重用性差,在需要开发多个执行器时效率低下
执行器的设计中,实现一个功能完全、能够满足测试的实际需求的测试监管模块是难度很高、工作量巨大的,它甚至要远远超过一个解释器的工作量。而不同的测试执行器对测试监管模块的需求基本上是一致的,因此完全可以设计为可重用的模块。而该方案因为没有将解释器和测试监管模块分离而使得测试监管模块的重用变得非常困难。这样在针对不同的测试编程语言开发执行器时开发效率会显得十分低下,特别是当这些执行器是由不同的开发者承担时。
2.执行器的可扩展性差
由于执行器的解释器模块和测试监管模块之间缺乏有效的分离,更没有规范的接口,因而它对第三方的解释器的可支持性差,更无法支持多个解释器。这样在新的测试编程语言被引入时,必须为该语言对应的解释器开发新执行器,而其大部分工作都属于重复性开发。这种重复性开发的开发不仅浪费了开发人员的时间和精力,而且由于执行器需要相当长的时间才能进入稳定应用,这样新语言的应用时间也被拉长了,它导致了测试效率的低下和时间损失并最终会损害企业的市场成果。
发明内容
本发明解决的问题是提供一种具有重用性和扩展性的测试执行器。
为解决上述问题,本发明测试执行器包括:测试监管模块,用于测试过程的互动及通讯;若干解释器模块,解释执行自动测试用例中的测试代码;其中,测试监管模块与解释器模块分离设置并通过接口模块进行交互,且解释器模块通过测试监管模块与测试执行器外部进行交互;所述测试监管模块设置有与测试执行器外部交互的通讯模块;接口模块包括:创建连接通道、输入/输出通道、解释器通信帧通道、转发通信帧通道和关闭连接通道;所述接口模块的各通道中:创建连接通道,用于建立测试监管模块与目标解释器模块间通讯的通道;输入/输出通道,用于测试监管模块向解释器模块输入自动测试用例,而解释器模块输出自动测试用例的测试结果信息;解释器通信帧通道,用于将解释器模块输入的通信帧转发到目的地;转发通信帧通道,用于测试监管模块将外部信息转发给目标解释器模块;关闭连接通道,测试监管模块向目标解释器模块请求关闭与测试监管模块间通讯的通道。
所述创建连接通道设置有用户标识和通道标识,其中用户标识用来标识通道的创建者和所有者,而通道标识是测试监管模块与目标解释器模块间通讯的通道的标志。
所述解释器通信帧通道中的通信帧包括:用于回送测试过程信息和测试结果信息的反馈通信帧和向被测系统发送测试过程中控制信息的控制通信帧。
所述反馈通信帧的目的地址为用户标识,源地址为通道标识;而控制通信帧的目的地址为被测系统与测试工具连接的测试端口的地址,源地址为通道标识。
所述转发通信帧通道传送的通信帧的目的地址是通道标识,而源地址为被测系统与测试工具连接的测试端口的地址。
所述测试监管模块还包括如下模块:测试前处理模块,用于分析记录测试任务及分解包括有若干自动测试用例的测试脚本,并将分解得到的自动测试用例通过接口模块发送给目标解释器模块;测试过程管理模块,用于测试过程的相关信息管理,通过接口模块与解释器模块交互;测试后处理模块,用于记录测试结果及存储测试结果信息,通过接口模块与解释器模块交互。
与现有技术相比,本发明具有以下优点:
本发明测试执行器的测试监管功能和解释器分离开来,抽象出测试执行器的框架结构,通过接口模块与测试监管模块交互,进而通过通讯模块实现与执行器外部交互。由于测试监管功能是测试执行器相对不变的部分,而解释器模块是随测试需要所采用的测试代码语言变化的部分,它们的分离使得测试监管模块的重用性提高。与此同时,测试监管模块与解释器接口模块使得新的解释器模块很容易与老的测试执行器的测试监管模块协同工作,从而使测试执行器可以支持不同的解释器模块。这不仅重用了测试执行器的框架,而且是测试执行器可以扩展支持不同的解释器。重用性和扩展性的提高最终减少了因为测试代码语言的不同而带来的测试执行器的开发工作量,并且大大缩短了自动测试工具适用时间,对自动测试工具的开发和应用效率有着改善。
附图说明
图1是本发明测试执行器的整体框图。
图2是图1的进一步细化框图。
图3是本发明测试执行器的应用流程图。
图4是图3的进一步细化框图。
具体实施方式
本发明测试执行器通过将测试监管模块与解释器模块分离开来以使不同的测试执行器可以共享该测试监管模块。解释器模块只跟测试监管模块通讯而不能跟外部有直接联系,解释器模块对测试执行器外部的通讯(如解释器模块与被测系统的通讯)由测试监管模块中转,这样通过测试监管模块中的接口模块,测试执行器能够支持多种不同解释器模块,以最大限度地重用测试执行器通用部分的设计并能够同时支持多语言的测试代码。
请参照图1所示,本发明测试执行器1用来测试被测系统2,包括:
测试监管模块10,用于测试过程的互动及通讯;
若干解释器模块11,解释执行自动测试用例中的测试代码;
测试监管模块10与解释器模块11分离设置接口模块13进行交互的,且解释器模块11通过测试监管模块10与测试执行器1外部进行交互。
测试脚本通过控制台3的输入并发送至测试监控模块10中。控制台3是测试人员的操作界面,是测试执行器1的客户端程序,既可以是图形界面也可以是文本命令行界面。测试脚本又称为测试代码文本,一个测试脚本可以含有一个或多个自动测试用例。自动测试用例执行结果是用格式文本表示的测试脚本执行的测试结果信息,其中含有所对应的自动测试用例标识,因其具体格式的表示不属于本发明的内容,这里不再详述。
本实施例中,接口模块13设置在测试监管模块10中,当然也可以独立设置。请参照图2所示,测试监管模块10进一步包括:
通讯模块101,与测试执行器1外部交互,是测试执行器1对控制台3和被测试系统2的通信接口,使前者与后二者的耦合最小;
测试前处理模块102,用于分析记录测试任务及分解包括有若干自动测试用例的测试脚本,并将分解得到的自动测试用例通过接口模块13发送给目标解释器模块;
测试过程管理模块103,用于测试过程的相关信息管理(如告警、异常处理、测试度量与统计、日志等),通过接口模块13与解释器模块11交互;
测试后处理模块104,用于记录测试结果及存储测试结果信息,通过接口模块13与解释器模块11交互,直接向测试过程管理模块103传递信息,这些信息包括来自控制台的测试控制和跟踪指令、来自解释器模块11的测试异常、测试结果、测试中间过程信息等。由于测试前处理模块102、测试过程管理模块103及测试后处理模块104是现有技术不再赘述。
接口模块13包括以下通道:
1)创建连接通道(OpenChannel),用于建立测试监管模块10与目标解释器模块间通讯的通道;
输入:用户标识;输出:通道标识
这里的用户标识用来标识通道的创建者和所有者,其具体含义由测试监管模块10解释。例如,测试人员从控制台3发起一个测试任务,则可以把测试任务的标识当作用户标识。通道标识是被建立通道的识别标志,通常用一个整数或字符串来表示,其含义由参与创建它的解释器来具体解释。
2)输入/输出通道(SendScript),用于测试监管模块10向解释器模块11输入自动测试用例,而解释器模块11输出自动测试用例的测试结果信息;
输入:测试代码文本;输出:测试代码执行结果(格式文本)
3)解释器通信帧通道(ReceiveFrame),用于将解释器模块11输入的通信帧转发到目的地;
输入:二进制通信帧;输出:转发通信帧到目的地。其中通信帧包含收、发方的地址或标识。
解释器通信帧通道中的通信帧包括:用于回送测试过程信息和测试结果信息的反馈通信帧和向被测系统2发送测试过程中控制信息的控制通信帧,例如在协议测试中,解释器模块11在运行测试代码时会向被测系统2发送消息。
反馈通信帧的目的地址为用户标识,源地址为通道标识;而控制通信帧的目的地址为被测系统2与测试工具连接的测试端口的地址,源地址为通道标识。
4)转发通信帧通道(SendFrame),用于测试监管模块10将外部信息(主要使指来自被测系统2的响应信息)转发给目标解释器模块。例如,将来自被测系统2的响应信息(如协议测试中的应答消息)中转到解释器模块11中;
输入:二进制通信帧;输出:转发通信帧到解释器模块11。
转发通信帧通道传送的通信帧的目的地址是通道标识,而源地址为被测系统2与测试工具连接的测试端口的地址。
5)关闭连接通道(CloseChannel),测试监管模块10向目标解释器模块请求关闭与测试监管模块10间通讯的通道。
输入:通道标识;输出:无。
实际应用中,例如一个产品的测试脚本是用TCL和TTCN语言编写的(这在具体的测试中是比较常见的情况,例如用TTCN来编写协议自动测试用例,用TCL来编写功能自动测试用例),并且每个自动测试用例的测试脚本文件用同一种语言编写,相应测试脚本文件的扩展名与该语言相关联。在运行该产品的测试脚本时就需要在测试执行器1中在测试期间支持TCL和TTCN解释器模块11。测试前处理模块102根据测试脚本文件的扩展名确定该测试脚本运行所需的解释器模块11是TCL解释器还是TTCN的解释器,并将测试脚本文件中的测试脚本通过接口模块13送到TCL或TTCN的解释器模块11中。在测试脚本运行过程中,解释器模块11通过接口模块13与被测系统2交互,或者向测试后处理模块104发送测试结果信息。
请参照图3、4所示,本发明测试执行器的应用流程如下:
1)用户从控制台输入测试脚本并发送到测试执行器的通讯模块,例如用户从控制台发起一个测试任务,并向测试监管模块传入一个或多个测试脚本文件;
2)转发测试脚本到测试前处理模块,测试前处理模块分解测试脚本获得若干自动测试用例,根据测试脚本文件的扩展名配置本次测试所需要的目标解释器模块;
3)各个自动测试用例通过接口模块被送到解释器模块;
使用创建连接通道(OpenChannel)向目标解释器模块请求创建一个连接;
连接创建成功后使用输入/输出通道(SendScript)依测试脚本文件次序或依自动测试用例次序向目标解释器模块传入测试脚本;
4)各个自动测试用例由目标解释器模块解释执行之;
5)解释器模块在执行测试脚本的过程中通过接口模块进行信息交互
51)解释器模块经由接口模块的解释器通信帧通道(ReceiveFrame)、测试过程管理模块、通讯模块向控制台回送测试过程信息;
52)解释器模块经由接口模块的解释器通信帧通道(ReceiveFrame)向被测系统发送控制信息(例如协议测试中),而被测系统通过转发通信帧通道(SendFrame),将来自被测系统的信息(如协议测试中的应答消息)中转到解释器模块中;
6)解释器模块结束执行测试用例,测试结果信息通过接口模块进行交互;
通过接口模块的解释器通信帧通道(ReceiveFrame)将测试结果信息送到测试后处理模块再经由通讯模块传送到控制台;
7)监管模块接口模块的关闭连接通道(CloseChannel)请求解释器模块关闭连接;
8)测试任务结束。
本发明测试执行器的测试监管功能和解释器分离开来,通过接口模块与测试监管模块交互,进而通过通讯模块实现与执行器外部交互。由于测试监管功能是测试执行器相对不变的部分,而解释器模块是随测试需要所采用的测试代码语言变化的部分,它们的分离使得测试监管模块的重用性提高。与此同时,测试监管模块与解释器接口模块使得新的解释器模块很容易与老的测试执行器的测试监管模块协同工作,从而使测试执行器可以支持不同的解释器模块。这不仅重用了测试执行器的框架,而且是测试执行器可以扩展支持不同的解释器。重用性和扩展性的提高最终减少了因为测试代码语言的不同而带来的测试执行器的开发工作量,并且大大缩短了测试工具适用时间,对自动测试工具的开发和应用效率有的改善。

Claims (6)

1.一种测试执行器,其特征在于,包括:
测试监管模块,用于测试过程的互动及通讯;
若干解释器模块,解释执行自动测试用例中的测试代码;
其中,测试监管模块与解释器模块分离设置并通过接口模块进行交互,且解释器模块通过测试监管模块与测试执行器外部进行交互;测试监管模块设置有与测试执行器外部交互的通讯模块;接口模块包括:创建连接通道、输入/输出通道、解释器通信帧通道、转发通信帧通道和关闭连接通道;所述接口模块的各通道中,创建连接通道,用于建立测试监管模块与目标解释器模块间通讯的通道;输入/输出通道,用于测试监管模块向解释器模块输入自动测试用例,而解释器模块输出自动测试用例的测试结果信息;解释器通信帧通道,用于将解释器模块输入的通信帧转发到目的地;转发通信帧通道,用于测试监管模块将外部信息转发给目标解释器模块;关闭连接通道,测试监管模块向目标解释器模块请求关闭与测试监管模块间通讯的通道。
2.如权利要求1所述的测试执行器,其特征在于,创建连接通道设置有用户标识和通道标识,其中用户标识用来标识通道的创建者和所有者,而通道标识是测试监管模块与目标解释器模块间通讯的通道的标志。
3.如权利要求2所述的测试执行器,其特征在于,解释器通信帧通道中的通信帧包括:用于回送测试过程信息和测试结果信息的反馈通信帧和向被测系统发送测试过程中控制信息的控制通信帧。
4.如权利要求3所述的测试执行器,其特征在于,反馈通信帧的目的地址为用户标识,源地址为通道标识;而控制通信帧的目的地址为被测系统与测试工具连接的测试端口的地址,源地址为通道标识。
5.如权利要求2所述的测试执行器,其特征在于,转发通信帧通道传送的通信帧的目的地址是通道标识,而源地址为被测系统与测试工具连接的测试端口的地址。
6.如权利要求1所述的测试执行器,其特征在于,测试监管模块还包括如下模块:
测试前处理模块,用于分析记录测试任务及分解包括有若干自动测试用例的测试脚本,并将分解得到的自动测试用例通过接口模块发送给目标解释器模块;
测试过程管理模块,用于测试过程的相关信息管理,通过接口模块与解释器模块交互;
测试后处理模块,用于记录测试结果及存储测试结果信息,通过接口模块与解释器模块交互。
CNB2004100316157A 2004-03-29 2004-03-29 测试执行器 Expired - Fee Related CN100337215C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100316157A CN100337215C (zh) 2004-03-29 2004-03-29 测试执行器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100316157A CN100337215C (zh) 2004-03-29 2004-03-29 测试执行器

Publications (2)

Publication Number Publication Date
CN1677362A CN1677362A (zh) 2005-10-05
CN100337215C true CN100337215C (zh) 2007-09-12

Family

ID=35049893

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100316157A Expired - Fee Related CN100337215C (zh) 2004-03-29 2004-03-29 测试执行器

Country Status (1)

Country Link
CN (1) CN100337215C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100370434C (zh) * 2005-11-01 2008-02-20 华为技术有限公司 一种实现软件自动测试的方法及系统
CN101242620B (zh) * 2008-03-07 2012-03-28 深圳国人通信有限公司 一种直放站监控的实现方法及系统
CN104181873A (zh) * 2013-05-28 2014-12-03 深圳市菲恩测控科技有限公司 一种数字化的产品检测的实现方法、装置及系统
CN106156423B (zh) * 2016-07-01 2019-07-12 合肥海本蓝科技有限公司 一种实现测试平台与用户待测试设计通信的方法和装置
CN107463500B (zh) * 2017-08-09 2020-05-01 网易(杭州)网络有限公司 测试脚本的调试方法、介质、系统和计算设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126517A1 (en) * 2001-07-27 2003-07-03 Accordsqa Automated software testing and validation system
CN1471267A (zh) * 2002-07-22 2004-01-28 华为技术有限公司 一种网络协议测试方法及其测试系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126517A1 (en) * 2001-07-27 2003-07-03 Accordsqa Automated software testing and validation system
CN1471267A (zh) * 2002-07-22 2004-01-28 华为技术有限公司 一种网络协议测试方法及其测试系统

Also Published As

Publication number Publication date
CN1677362A (zh) 2005-10-05

Similar Documents

Publication Publication Date Title
CN208314755U (zh) 一种人工智能开发平台和系统
WO2014015573A1 (zh) 一种用于移动设备的无线自动化测试装置及方法
CN102917095B (zh) 一种基于Android系统的终端测试的方法及装置
CN1832433A (zh) 分布式架构测试系统和该测试系统的测试方法
CN104898459B (zh) 一种基于命令行接口的机器人测试系统及测试方法
CN102902624B (zh) 一种软件调试系统及方法
CN110861085B (zh) 一种基于VxWorks的机械臂指令解释器系统
CN105740139B (zh) 一种基于虚拟环境的嵌入式软件调试方法
CN104202105A (zh) 一种蓝牙设备的测试方法及系统
CN104461854A (zh) 一种舰船装备软件通用仿真测试平台及其构建方法
CN108427640A (zh) 一种在用户态下调试驱动程序的方法
CN101458633B (zh) 通过脚本程序访问宿主程序的方法及其系统和装置
CN101170785B (zh) 使用tcl进行基站软件测试的装置和方法
CN100337215C (zh) 测试执行器
CN107948009B (zh) Plc协议测试的数据交互通道的构建方法及模型
CN103746873A (zh) 通信模块测试系统和方法
CN109600420B (zh) 一种基于树莓派技术实现在线远程控制的方法及系统
CN102884515B (zh) 串口重定向处理方法、设备和系统
CN101266543A (zh) 一种图形界面处理装置和方法
CN112202798B (zh) 数据的协议转化方法、系统、电子设备及存储介质
CN111290934A (zh) 基于Jenkins的车载网络产品云测试方法及系统
Long et al. A case study in testing distributed systems
CN1764131A (zh) 一种协议测试系统及方法
CN102243489A (zh) 一种跨平台的数据处理系统与方法
CN116301836A (zh) 一种基于国产自主可控环境的嵌入式开发系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: Guangzhou Jiuheng Bar Code Co., Ltd.

Assignor: Huawei Technologies Co., Ltd.

Contract record no.: 2010440000483

Denomination of invention: Method for realizing executor test

Granted publication date: 20070912

License type: Exclusive License

Open date: 20051005

Record date: 20100511

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070912

Termination date: 20160329

CF01 Termination of patent right due to non-payment of annual fee