基于C++映射的TTCN-3测试系统及测试方法技术方案

技术编号:2852569 阅读:235 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种基于C++映射的TTCN-3测试系统及测试方法。该测试系统及其测试方法基于TTCN-3的C++映射标准,通过语言转换器将TTCN-3测试用例转换成语义相等的C++测试用例,并在TTCN-3运行环境进行编译、加载、执行,以实现对被测系统的测试。在转换生成的测试用例中每一个测试组件都实现为一个进程,避免了通常采用的线程技术在堆栈空间和测试组件数量上的限制。采用本发明专利技术实现的TTCN-3运行环境不但可以满足一般系统的黑盒测试,还适用于那些具有并发、交互、实时等特点的系统的测试。

【技术实现步骤摘要】

本专利技术涉及一种基于C++映射而实现的TTCN-3测试系统,也涉及利用该测试系统的测试方法,属于软件测试

技术介绍
TTCN(Testing and Test Control Notation,测试和测试控制符号表示法)是一种广泛使用的国际性标准测试系统,目前最新的版本是TTCN-3。TTCN-3可以用于描述在多种通信端口上的各种响应系统测试。它应用的典型领域是协议测试(包括移动和互联网协议)、服务测试、基于平台的CORBA测试、API测试等等。TTCN-3并不仅限于一致性测试,它还可以用于许多其他种类的测试,如互操作性测试、健壮性测试、回归测试、系统和集成测试等。当前,已有的TTCN-3运行环境都是基于Java或C的映射方法实现的。由于Java语言需要具备良好的平台无关性,由此带来执行效率比较低的问题,很难满足实时系统在反应时间上的测试需要。而对于C的映射方法而言,尽管其执行效率比较高,但是采用该方法实现的TTCN-3运行环境的耦合性过于紧密,不利于针对具体的被测系统进行二次开发。另外,目前已有的TTCN-3的测试系统都是采用多线程技术实现的,这种实现方式比较简单,能满足大部分的黑盒测试需要。然而,操作系统对线程技术存在堆栈空间大小的约束,并且,当线程数量达到一定规模时,会导致系统的执行效率急剧下降。这些限制导致了采用多线程技术实现的TTCN-3运行环境无法应用于大规模的压力测试。
技术实现思路
鉴于现有技术的上述缺陷,本专利技术的目的是提供一种基于C++映射的TTCN-3测试系统及测试方法。该测试系统及测试方法充分利用C++的特点,可以使相应的TTCN-3运行环境满足执行效率和针对被测系统进行二次开发的需要,并避免线程技术所带来的相关限制。为实现上述的专利技术目的,本专利技术采用下述的技术方案一种基于C++映射的TTCN-3测试系统,其特征在于 所述系统包括测试管理器、语言转换器、测试用例执行器、共享内存管理器、内部编码/解码器、C++映射接口、被测系统适配器和操作系统适配器,其中所述测试管理器对整个测试系统进行管理;所述语言转换器转换TTCN-3测试用例,并生成语义等价的C++测试用例,由所述测试用例执行器负责执行;测试用例中的测试组件通过所述内部编码/解码器对其存放到共享内存的数据进行编解码,所述共享内存管理器对所述共享内存进行管理;所述C++映射接口包括测试控制接口和测试执行接口,所述测试控制接口实现所述测试用例执行器与所述被测系统适配器及所述操作系统适配器之间的连接,所述测试执行接口实现所述测试管理器与所述测试用例执行器之间的连接。其中,所述测试用例执行器包括TTCN_Proces类,TTCN_Process_Options类和TTCN_Process_Manager类,其中所述类TTCN_Proces实现对测试组件/进程的封装;类TTCN_Process_Options实现测试组件/进程相关属性的封装;类TTCN_Process_Manager用于管理测试组件。所述共享内存管理器对应用程序开放三层接口,包括符合STL规格的容器库;符合C++规格的new,delete接口;以及符合C规格的allocate,deallocate接口。所述测试用例中的各测试组件都被实现为一个进程。所述各进程之间采用符合POSIX标准的进程间通信技术。所述测试系统采用分层结构,各层之间的功能调用接口严格满足C++映射标准。所述内部编码/解码器利用反射机制动态识别数据的类型和大小。一种基于上述的TTCN-3测试系统实现的测试方法,其特征在于包括如下步骤(1)对于TTCN-3的抽象测试套,由语言转换器将其转换为C++测试用例套;(2)所述C++测试用例套与运行环境库一起,在C++编译器中进行联编,生成测试用例库文件供测试用例执行器加载执行;(3)测试系统启动后台进程,并对环境进行初始化,加载配置文件; (4)根据要执行的测试用例,加载相应的测试用例库文件;(5)启动测试管理进程,实例化库文件中的测试用例;(6)执行测试用例,报告测试执行结果。其中,所述语言转换器对TTCN-3的抽象测试套进行如下处理经过词法分析器和语法分析器之后,生成抽象语法树,由语义信息提取器在做语义检查的同时,从抽象语法树中提取出语义信息,填写各个管理器,包括符号管理器、类型管理器、转换器、全局信息索引和作用域管理器,最后由代码生成器对各个管理器的信息进行处理,在助手类的帮助下,生成满足C++映射接口的测试用例。所述语言转换器在生成的C++测试用例中为数据添加类型属性信息。本专利技术所实现的基于C++映射的TTCN-3测试系统及测试方法不但可以适应一般系统进行黑盒测试的要求,还能够满足具有并发、交互、实时等特点的系统进行测试的实际需求,因此适用范围更广。附图说明下面结合附图和具体实施方式对本专利技术作进一步的说明。图1为语言转换器的基本执行流程示意图。图2为测试用例执行器的主要的类结构关系示意图。图3为共享内存管理器的基本层次结构示意图。图4为基于共享内存的两个进程之间进行过程调用的示意图。图5为面向测试管理器的测试控制接口的基本结构示意图。图6为测试执行接口以及面向测试执行器的测试控制接口的基本结构示意图。图7为本专利技术所述的基于C++映射的TTCN-3测试方法的流程图。具体实施例方式众所周知,C并不是一种面向对象的编程语言,并不具有重用的特性,针对某一具体环境编制的程序很难直接移植到另外的环境中使用,因此使用C语言的开发效率不高。而C++和Java一样,都是面向对象的编程语言,它们都能够通过封装、继承、多态等技术手段实现重用。但是,Java语言的编译代码是一种字节代码,在运行时由操作系统上的Java虚拟机来解释执行,因此运行效率远不如C++。C++与C相比,具备面向对象的特性,便于针对具体的被测系统进行二次开发;另一方面,它又与C语言一样,具有较高的运行效率。因此采用C++来实现TTCN-3运行环境是目前比较理想的选择。为了利用C++来实现TTCN-3运行环境,我们需要进行的工作包括建立相应的C++映射接口。该映射接口包括测试控制接口和测试执行接口。除此之外,还需要建立包括测试管理器、语言转换器、测试执行器、共享内存管理器、内部编码/解码器、被测系统适配器和操作系统适配器在内的功能模块。上述这些功能模块的集合就是本专利技术所述的基于C++映射的TTCN-3测试系统。下面分别对这些功能模块加以说明。测试管理器的功能在于负责整个TTCN-3测试系统的管理工作,其主要的工作内容包括◆测试控制当系统初始化之后,所有的测试都从测试控制服务开始执行,它负责加载测试套,并提供相应的测试套启动参数。◆日志管理负责维护系统日志,并负责记录测试执行过程中其他模块向其发出的各种需要记录的事件通知内容。◆测试组件管理在许多情形下,一个测试用例的执行需要由多个测试组件来共同完成,这些组件可能分布在不同的物理系统当中。测试组件管理功能负责各个测试组件的创建、分发和协调执行工作。◆出错处理当测试执行过程中发生错误或者异常的时候,进行错误(异常)恢复和错误(异常)清理工作。上述的测试套(test suite)是TTCN-3系统特有的模块,它通过引入语句(import st本文档来自技高网...

【技术保护点】
一种基于C++映射的TTCN-3测试系统,其特征在于:所述系统包括测试管理器、语言转换器、测试用例执行器、共享内存管理器、内部编码/解码器、C++映射接口、被测系统适配器和操作系统适配器,其中所述测试管理器对整个测试系统进行 管理;所述语言转换器转换TTCN-3测试用例,并生成语义等价的C++测试用例,由所述测试用例执行器负责执行;测试用例中的测试组件通过所述内部编码/解码器对其存放到共享内存的数据进行编解码,所述共享内存管理器对所述共享内存进行管理;   所述C++映射接口包括测试控制接口和测试执行接口,所述测试控制接口实现所述测试用例执行器与所述被测系统适配器及所述操作系统适配器之间的连接,所述测试执行接口实现所述测试管理器与所述测试用例执行器之间的连接。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵琛潘远明陈伟薛云志杨宗奎孙丽霞
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:11[中国|北京]

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

1