基于流程图的仿真测试建模系统及方法
【技术领域】
[0001]本发明涉及一种计算机测试技术,对软件或硬件系统进行测试建模,并进行自动化测试。
【背景技术】
[0002]现有的自动化测试工具,虽然使用可视化方式进行建模,但提供的模块比较底层来说封装性不强,而且缺乏通信模块、算法库的支持。用户为表达一个逻辑功能需要花过多的时间在流程图的搭建上,甚至需要自己动手编写脚本并进行模块组合,这无疑给测试人员提高了门槛并增加了相当多的工作量。
[0003]经检索,申请号为200810203104.7中公开一种嵌入式软件自动化测试方法,通过以下步骤实现的:编辑并建立测试用例库;在流程图编辑界面中建立测试流程框架;根据测试任务需求,在测试流程图中插入各种测试用例;利用脚本生成器将编辑的流程图转换为仿真测试平台上的测试序列;驱动仿真测试平台上的I/o与通讯接口,激励被测软件并接收回馈控制信号。有益效果是:可以进行开环测试与闭环测试;可以通过不断地加入接口模型来形成功能强大的外围环境仿真库及接口模块库,以减少后续的二次开发,使资源重复利用。但该现有技术在以下方面存在缺陷:
[0004]1、便捷性:没有自动布局功能,用户工作量大;
[0005]2、简洁性:分支控制模块复杂,当涉及较多的控制逻辑时,比较混乱;上述专利流程图间没有引用功能,容易造成用户设计的逻辑混乱;
[0006]3、可调试:没有断点跟踪调试功能,用户有时需要掌握当前的测试进度或进行运行时故障注入,对比专利没有这个功能;
[0007]4、兼容性:上述专利没有对设备用例进行抽象化处理,一旦系统中的某个设备需要用其它类型的设备进行替换(如原来使用串口进行通信,后来改用以太网通信)则用到这个设备的其它模块可能也要做想用的修改,兼容性差。
【发明内容】
[0008]本发明针对上述现有技术中存在的技术问题,提供一种基于流程图的仿真测试建模系统及方法,创建丰富的测试用例模块库,让用户通过简单的拖放就可搭建出测试流程图,从而使用户达到减少搭建流程图的时间,而把他们的测试思路用简单的模块组合清晰地表达出来,让他们把时间和精力集中在测试逻辑上。
[0009]为达到上述目的,本发明所采用的技术方案如下:
[0010]一种基于流程图的仿真测试建模系统,包括:
[0011]测试用例模块库
[0012]库中的测试用例模块以配置文件保存模块基本信息,测试用例库模块在软件启动时读取该些配置文件,将基本信息提取出来以工具按钮的形式放到工具箱窗口中;
[0013]测试用例驱动模块
[0014]测试用例驱动模块将测试用例模块与脚本程序关联起来,根据测试用例模块标识,为每个测试用例模块的功能接口提供脚本模板,脚本模板规定了测试用例模块功能接口的输入参数以及输出参数;
[0015]测试流程设计模块
[0016]利用可视化图形模块在画布上拖放操作设计测试场景图,测试用例模块的参数利用图形化界面进行配置,并能够在测试用例模块上设置断点标记以备仿真测试时调试用;
[0017]仿真测试模块
[0018]包括运行模式和调试模式,将测试用例驱动模块生成的脚本根据需要放到模拟环境上或下载到真实设备上运行,在调试模式下根据测试用例模块之前是否设置过断点,程序暂停以便用户跟踪调试测试流程或让程序继续运行。
[0019]所述测试用例模块包括通用的分支控制模块、常用的输入输出模块、高度集成的功能t吴块。
[0020]为了提供测试用例模块库可的扩展性,采用多个配置文件保存测试用例模块信息,每个配置文件记录一个或多个测试用例模块信息,以便随时增加配置文件。
[0021]在生成运行脚本时,所述输入参数和输出参数根据需要用实际的数据进行替换。
[0022]所述脚本模板同时规定了测试用例模块功能接口的脚本控制逻辑,以Python脚本编写,脚本能够通过DLL驱动程序操作具体设备或者通过编写仿真模型,供DLL驱动程序或Python脚本直接调用,从而实现全数字或半实物仿真测试,当某个测试用例模块的功能需要更新时,只需修改脚本模板或DLL驱动程序。
[0023]所述测试场景图根据需要分成不同的测试场景组,测试场景图与测试场景组之间能够相互引用,为了在不同环境测试不同的对象,创建不同的测试计划,在测试计划下新建测试场景或测试场景组,或者将现有的测试场景或测试场景组引用过来,从而实现不同的测试逻辑。
[0024]所述测试流程设计模块包括绘图模块、复制粘贴模块、工程管理模块,所述绘图模块用于在流程图视图上绘制、调整测试用例模块,并能够配置模块信息,所述复制粘贴模块用于复制、粘贴模块图形本身、模块信息或场景图,所述工程管理模块用于提供流程图管理视图。
[0025]所述绘图模块提供了自动布局功能,当拖放多个模块到画布上时,通过分析模块释放的位置,自动将其与前面和后面的模块用关联线连接起来,同时将其后面的所有模块做相应的向后移动;由于每个测试用例模块的尺寸可能不同,还能够根据所有模块的边界自动调整模块的位置;对复杂的分支控制模块设置折叠与展开模式,在折叠模式下方便宏观掌握测试逻辑,在展开模式下对逻辑模块的细节部分进行调整。
[0026]所述复制粘贴模块支持多模块同时复制粘贴,一次选择多个模块时,首先在复制后分析出各个模块的尺寸信息、模块的前后关系、折叠模块的父子关系、模块引用信息,然后在粘贴时根据之前的分析结果先将按照尺寸、前后关系、父子关系创建出相应的图形,并将各个图形按照原来的连接关系用连接线连接起来,再将原模块的参数信息复制并绑定到新创建的图形。
[0027]一种基于流程图的仿真测试建模方法,采用上述任一所述的系统完成。
[0028]由于采用了上述技术方案,本发明的有益效果是:
[0029]I)可视化构造测试流程,自动布局操作方便;
[0030]2)设计出的流程图结构清晰;
[0031]3)抽象化设备测试用例,便于替换,可扩展性强;
[0032]4)仿真测试时,能够设置断点跟踪调试。
【附图说明】
[0033]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0034]图1是本发明所提供的系统组成框图。
【具体实施方式】
[0035]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0036]图1所示,本发明所提供的基于流程图的仿真测试建模系统及方法的具体结构和流程如下:
[0037]测试用例库模块:本测试工具提供通用的分支控制模块、常用的输入输出模块、高度集成的功能模块(包括串口通信、网络通信、CAN总线、1553总线等模块),这些测试用例模块以配置文件保存。配置文件记录了每个模块的标识、类型、名称、功能接口、可配置参数、图形类型、图形尺寸等信息,为了提供扩展性,采用多个配置文件保存模块信息,每个配置文件可以记录一个或多个模块信息,这样便可以随时增加配置文件从而扩充测试用例库。测试用例库模块在软件启动时读取这些配置文件,将模块基本信息提取出来以工具按钮的形式放到工具箱窗口中。
[0038]测试用例驱动模块:测试用例模块只是某个功能的外在表现形式,需要与之配套的脚本程序才能完成实际工作,测试用例驱动模块提供一种措施将测试用例模块与脚本程序关联起来。测试用例驱动模块根据测试用例模块标识,为每个测试用例模块的功能接口提供脚本生成模板,这些模板规定了接口的输入参数、脚本控制逻辑、输出参数,在生成运行时脚本时,输入参数和输出参数会根据需要用实际的数据进行替换。脚本控制逻辑,以Python脚本编写,如果有必要脚本可以引用外部DLL操作具体的设备,我们提供了像串口通信、网络通信、CAN总线、1553总线等DLL驱动程序,当某个测试用例的功能需要更新时,只需要修改这些脚本模板或DLL驱动程序就可以了,并且如果暂时缺少某种真实设备,完全可以编写一个仿真模型,供驱动程序或Python脚本直接调用,从而实现全数字或半实物仿真测试。
[0039]测试流程设计模块:利用可视化图形模块在画布上拖放操作设计测试场景图,测试用例模块的参数可以利用图形化界面进行配置,并且可以在模块上设置断点标记以备仿真测试