一种可视化软件测试设计平台的制作方法

文档序号:6428931阅读:224来源:国知局
专利名称:一种可视化软件测试设计平台的制作方法
技术领域
本发明涉及一种软件自动化测试设计的方法与平台,尤其是涉及自动化测试设计平台,涉及其可视化和自动化,有助于提高测试效率,降低测试方案设计难度。
背景技术
目前测试在计算机领域中的角色越来越重要,尤其在高风险行业,测试的重要性不言而喻,因此测试的工作量成为不可忽略的一部分,而手工编写所有的测试用例的工作
量甚巨。在现有的可视化测试设计系统中,有些系统图形界面不够直观,不能完全呈现测试中可能发生的过程和现象;有些对流程的逻辑支持不全面,使流程的逻辑必须封装到程序中,增加了测试人员的工作量;还有些过于专用化和片面化,不能加入用户自定义的元素,可扩展性差。

发明内容
本发明的目的是克服现有技术之不足,提供一种通用的可视化测试设计平台,能够直观地编辑测试流程并展示测试过程,便于测试过程中的错误定位。同时提供强大的测试逻辑控制功能,最大程度避免为测试做二次开发。本发明的技术解决方案如下包括动态链接库(Dynamic Link Library)注册模块、测试流程编辑模块、测试流程解析模块、测试流程执行模块以及测试管理模块;其中,测试管理模块对所有模块进行调度并管理;动态链接库注册模块负责将底层接口定义为测试编辑模块中的原子测试单元;测试流程编辑模块提供可视化的测试解决方案定义工具,测试解决方案包括功能测试图、测试流程图及各图之间的关联关系,通过DLL注册模块将外部DLL的函数定义为流程图中的原子测试单元,即由测试单元节点与逻辑语义节点组成的功能测试图或者测试流程图;测试流程解析模块以测试流程编辑模块维护的流程模型为输入,解析流程图中的结构与关系,分析测试解决方案中的图模型,进行语法分析,并作语法检查,将测试的流程转化为对应逻辑的中间代码;测试流程执行模块加载测试流程解析模块生成的中间代码,构建测试执行的虚拟机环境,并运用虚拟机机制,维护执行过程中的全局变量、局部变量状态表,根据流程所定义的逻辑和测试的状态进行相应的逻辑跳转,通过参数的模拟压栈调用外部DLL函数,即底层接口函数,进而自动完成测试过程;同时,该平台对多语言有良好支持。测试流程编辑模块提供可视化编辑测试解决方案的功能,在执行测试时跟踪测试轨迹,并显示测试过程;测试流程解析模块将流程图的结构转化为顺序执行的中间代码,能够解析条件跳转、子过程调用等多种测试逻辑;测试流程执行模块加载中间代码,并进行测试,支持多种测试模式,提供调试信息,方便问题定位。各个模块的详细描述如下测试流程编辑模块提供可视化的测试解决方案的定义工具,系统涉及的测试方案通过功能测试图、测试流程图以及它们之间的关联关系进行描述;系统首先通过DLL注册模块将外部的DLL函数映射为系统中构建测试方案所需的原子测试单元,即构成功能测试图和测试流程图的测试单元节点和逻辑语义节点。测试流程编辑模块通过可视化的图形界面定义、维护、并执行测试解决方案。测试流程解析模块接受测试流程编辑模块定义并维护的流程模型作为输入,解析流程图中元信息、结构关系,并通过语法分析进行严格的语法检查,包括对测试流程图中的动态链接库调用节点和测试流程子图调用节点的参数数量、类型匹配性、表达式合法性的检查,对测试流程图中的条件分支条件表达式的合法性检查以及检查条件表达式是否符合语法并且结果数据类型是否为布尔类型。最后,在语法检查通过后,将测试流程的图形化描述编译生成为预定义的逻辑中间代码。测试流程执行模块构建测试解决方案执行的虚拟机环境,加载测试流程解析模块生成的中间代码;通过维护执行过程中的全局变量、局部变量列表,使用表驱动的方法,维护虚拟机的状态;根据所定义的逻辑和测试状态执行相应的逻辑流程,通过参数的模拟压栈方法,调用外部DLL函数,并制动完成测试流程的执行;多语言支持模块使该平台对于多语言有良好的支持,通过纯资源动态链接库实现多语言版本的扩充,可扩展性极强。DLL注册模块将待测试的DLL函数库与测试平台进行关联,并将之映射为流程图编辑器中的一个图元,在管理模块中,完成对DLL中所有待测函数的注册,在注册过程中,需要提供DLL函数所对应的参数类型、数量、以及必要之注释等内容。注册模块定义的基本测试模块为流程图编辑模块提供操作单元;DLL注册模块包含界面模块和数据模块;其中,界面模块负责编辑DLL函数的信息,数据模块负责保存并维护DLL函数库注册信息,以便测试流程编辑模块使用;数据模块负责将DLL名称、功能描述、 DLL模块对应的DLL内部的函数名称、DLL函数对应的所有参数的类型、名称、注释信息等用 XML语言的方式存储到配置文件。当需要对DLL模块进行调用时,系统会读取配置文件中的信息,从而实现DLL函数库中函数的调用和执行。系统定义一套中间代码,其能够表示测试方案中的原子测试单元和测试流程;该中间代码的表达能力能够支持流程图的自动翻译和执行,其所能表征的元素有控制流、子流程图定义、子流程图调用、表达式计算等,与这些元素对应的指令类型有变量定义指令、 DLL调用指令、流程图调用指令、表达式计算指令、流程跳转指令等。本发明的有益效果是与现有技术相比的优点在于本发明通过可视化方式定义测试流程,减少测试人员的代码编写工作量,降低了测试人员的技术门槛和技术难度,直观的测试过程展现和丰富的调试信息呈现能够使问题定位更加容易和迅速,能够有效提高测试效率。能够直观地编辑测试流程并展示测试过程,便于测试过程中的错误定位。同时提供强大的测试逻辑控制功能,最大程度避免为测试做二次开发。测试流程定义的表达能力强,可扩展性良好。


图1为本发明的一种可视化测试设计平台结构图;图2为本发明的DLL注册模块结构图;图3为本发明的测试流程解析模块设计流程图4为本发明的测试流程执行模块的运行时堆栈结构图;
具体实施例方式如图1所示,一种可视化测试设计方案包括DLL注册模块、测试流程编辑模块、测试流程解析模块和测试流程执行模块。DLL注册模块将底层接口定义为测试编辑模块中的原子测试单元。测试流程编辑模块通过可视化的图形界面及操作定义测试解决方案,包括功能测试图、测试流程图及各图之间的关联关系。测试流程解析模块以测试流程编辑模块维护的流程模型为输入,通过分析流程图中的结构与关系,生成相应的中间代码。测试流程执行模块载入测试流程解析模块生成的中间代码,建立测试执行的虚拟机环境,根据流程的逻辑自动完成测试过程。如图2所示,DLL注册模块中的将需要测试的DLL方法库与测试平台关联起来,并将之对应到流程图编辑器当中的一个图元。用户需要在管理模块当中完成对DLL函数库当中所有要测试的函数进行注册。在注册中需要提供该DLL函数对应的函数的参数的具体类型,以及必要的注释等内容。注册模块定义了一系列的基本测试模块,为流程图编辑模块提供了基础。在DLL 注册模块中包括界面模块和数据模块。界面模块负责编辑DLL函数的信息,数据模块负责保存DLL注册信息,以供测试流程编辑模块使用。数据模块负责会将DLL对应的物理DLL 名称、DLL模块的功能描述、DLL模块对应的DLL内部的函数名称、DLL函数对应的所有参数的类型、名称、注释信息等用格式化文本的方式存储到配置文件。测试流程编辑模块通过可视化的图形界面及操作让用户编辑测试项目,包括绘制功能测试图和测试流程图以及各图间的关联关系。编辑器维护与图形界面相关的流程模型,进而为解析器提供数据来源。测试流程编辑模块负责编辑测试流程图。一个完整的测试流程图分为功能测试图和测试流程图两个部分。在本发明中,引入了工程的概念,一个工程表示一个功能测试图和多个测试流程图的集合体。在测试过程中,首先通过功能测试图发现和定位问题,然后通过具体的测试流程图来找出软件的缺陷所在。编辑器模块定义了可视化图形编辑的通用数据模型以及显示方案,使图中的节点对应不同的测试逻辑,并在显示方案上加入流程图的特点。具体设计分为界面设计和数据设计两个部分。其中界面设计负责绘制流程图并呈现给用户,数据设计负责将流程图的数据持久化。测试流程采用XML语言结合二进制文件进行存储的方式,每个流程图都包含一个二进制文件以及一个XML文件,该XML文件表达了该流程图中的逻辑关系。数据模型主要由节点和连接线组成。节点有外部DLL调用、子过程调用、变量定义等多种语义,通过连接线的关联,将多个节点串联出一个完整的测试流程。测试流程解析器处于架构的中间层次,对流程图的逻辑进行语法检测,将输入的流程图转化为线性的中间代码,为测试流程执行模块提供可供解析的测试逻辑,使测试流程执行模块完全与测试流程编辑模块完全分离。语法检查模块的核心任务是对表达式的解析过程以及解析生成的语法树进行类型检查。Boost中spirit库提供了语法解析器的生成功能,我们将系统支持的表达式文法描述为spirit所能接受的输入形式,利用spirit库生成表达式解析工具,该工具为符合文法的表达式生成语法树。利用语法分析生成的语法树,按照以下属性文法计算表达式的结果类型
权利要求
1.一种可视化软件测试设计平台,其特征是包括动态链接库(DLL)注册模块、测试流程编辑模块、测试流程解析模块、测试流程执行模块以及测试管理模块;其中,测试管理模块对所有模块进行调度并管理;动态链接库注册模块负责将底层接口定义为测试编辑模块中的原子测试单元;测试流程编辑模块提供可视化的测试解决方案定义工具,测试解决方案包括功能测试图、测试流程图及各图之间的关联关系,通过DLL注册模块将外部DLL的函数定义为流程图中的原子测试单元,即由测试单元节点与逻辑语义节点组成的功能测试图或者测试流程图;测试流程解析模块以测试流程编辑模块维护的流程模型为输入,解析流程图中的结构与关系,分析测试解决方案中的图模型,进行语法分析,并作语法检查,将测试的流程转化为对应逻辑的中间代码;测试流程执行模块加载测试流程解析模块生成的中间代码,构建测试执行的虚拟机环境,并运用虚拟机机制,维护执行过程中的全局变量、局部变量状态表,根据流程所定义的逻辑和测试的状态进行相应的逻辑跳转,通过参数的模拟压栈调用外部DLL函数,即底层接口函数,进而自动完成测试过程;同时,该平台对多语言有良好支持。
2.根据权利要求1所述的一种可视化软件测试设计平台,其特征是所有的DLL在使用之前需要将其信息添加到系统当中,这个过程在该平台中是通过注册机制实现;DLL注册模块将待测试的DLL函数库的元信息提供给本测试平台,并将其映射为流程图编辑器中的图元(功能测试图元或者测试流程元),而管理模块完成对DLL函数库所有待测试函数的注册;在注册中,提供待测试的DLL函数的参数的具体类型、参数数量、以及必要之注释;注册模块定义的基本测试模块为流程图编辑模块提供了基本元素集;DLL注册模块中包含界面模块和数据模块;界面模块负责编辑DLL函数的信息,数据模块负责维护DLL注册信息,并提供给测试流程编辑模块;数据模块负责收集并维护DLL名称、功能描述、DLL模块对应的DLL内部的函数名称、DLL函数对应的参数类型、名称和注释信息,并通过可扩展标记语言(Extensible Markup Language, XML)方式存储到配置文件。
3.根据权利要求1所述的可视化软件测试设计平台,其特征是注册DLL的方法,就是将现有的DLL模块的所具有的参数类型、参数数量等特征信息写到系统相关的配置文件中, 当需要对DLL模块进行调用时,系统会读取配置文件中的信息,从而实现DLL中函数的调用。
4.根据权利要求1所述的可视化软件测试设计平台,其特征是可视化测试中,定义一种中间代码,使其能够表示测试方案中的原子测试单元和测试流程;该中间代码能够支持流程图的自动翻译和执行,并使其具有以下表达能力控制流、子流程图定义、子流程图调用、表达式计算;中间代码规则定义了以下几类指令变量定义指令、DLL调用指令、流程图调用指令、 表达式计算指令和流程跳转指令。
5.根据权利要求1所述的可视化软件测试设计平台,其特征是测试流程解析模测试流程解析模块对测试流程编辑模块中的测试定义流程模型进行语法检测,即对测试流程图中的动态链接库调用节点和测试流程子图调用节点的参数个数匹配性、类型匹配性、表达式合法性进行语法检查,对测试流程图中的条件分支进行条件表达式合法性检查,即要求条件表达式符合语法并且结果类型为布尔类型。
6.根据权利要求5所述的可视化软件测试设计平台,其特征是所述语法检测中,流程中的表达式支持C语言中表达式描述文法的子集,包括算数表达式和逻辑表达式。
7.根据权利要求1所述的可视化软件测试设计平台,其特征是可视化测试框架中,中间代码生成模块将输入的流程图转化为线性的中间代码,其输出作为虚拟机运行模块的输入。
8.根据权利要求1所述的可视化软件测试设计平台,其特征是测试流程执行模块中, 依次加载各个流程图所对应的中间代码;支持全局变量作用域和流程图变量作用域;支持子流程图的嵌套调用,且流程图调用可以传递参数并能够返回调用结果;支持DLL函数的动态调用,即执行模块没有对DLL函数的参数类型和数量做任何限定;执行模块以"表驱动 “方式实现。
9.根据权利要求4所述的可视化软件测试设计平台,其特征是中间代码表达规则 支持的算术运算包括加、减、乘、除;支持的逻辑运算包括与、或、非;支持的变量类型包括 bool、char、int、double、char氺、int氺、double氺禾口内存块。
10.根据权利要求1所述的所述的可视化软件测试设计平台,其特征是多语言支持基于多语言的需求,通过资源DLL进行多语言包的生成,完成国际化语言动态选择,并定制相应用户界面的语言版本。
全文摘要
一种可视化软件测试设计平台,包括动态链接库(DLL)注册模块、测试流程编辑模块、测试流程解析模块、测试流程执行模块以及测试管理模块;其中,测试管理模块对所有模块进行调度并管理;动态链接库注册模块负责将底层接口定义为测试编辑模块中的原子测试单元;测试流程编辑模块提供可视化的测试解决方案定义工具,测试解决方案包括功能测试图、测试流程图及各图之间的关联关系,通过DLL注册模块将外部DLL的函数定义为流程图中的原子测试单元;测试流程执行模块载入测试流程解析模块生成的中间代码,建立测试执行的虚拟机环境,根据已定义的流程的逻辑自动完成测试过程。
文档编号G06F11/36GK102236602SQ20111020387
公开日2011年11月9日 申请日期2011年7月21日 优先权日2011年7月21日
发明者刘嘉, 刘小龙, 吴清, 肖亮, 邢锐, 郑滔, 黄俊卿, 黄志军 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1