一种构造测试软件的方法和应用该方法的测试系统技术方案

技术编号:8241503 阅读:161 留言:0更新日期:2013-01-24 22:25
本发明专利技术公开一种方便编程人员快速构造其测试软件、并使其软件具有较大扩充性、能够在脱离编译环境的情况下快速扩充软件功能、及时响应客户需求、用户能够自行修改需求的构造测试软件的方法,将测试软件分为测试程序框架层、脚本解释引擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释引擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解释脚本、运行控制脚本、链接测试脚本到器件DLL的接口函数,测试脚本层用于描述测试流程,测试命令通过脚本解释引擎加载测试脚本执行测试命令的序列,以便适应各种测试设备及测试流程。

【技术实现步骤摘要】

本专利技术涉及测试软件的
,尤其涉及一种构造测试软件的方法,还有应用该方法的测试系统。
技术介绍
目前,制造业中的测试软件往往都是开发人员根据现有的测试设备、测试方法和流程定制而成。由于产品的差异以及更新换代,哪怕是同一公司内的不同产品,其测试流程往往也会千差万别,而相关的测试软件也必须不断根据用户需求进行修改。这对测试软件编写者带来了极大的挑战,测试软件无法快速适用于不同产品,甚至也无法适用于相同产品的不同阶段(比如研发阶段,中试阶段,生产阶段等等),也无法与现有产线上的各类信息系统紧密结合,一旦产线上做流程变更,软件的变更也不可缺少,由于现有编程语言多半需 要在编译环境下重新编译后才能使用,这会带来几个问题I.开发者所处的开发环境中不一定有软件使用者相关的测试仪表环境,必须在开发机器上修改代码后再发布到使用者机器上。而往往测试软件调试必须经常这样反复往返,这使得开发效率往往在测试环节下变得异常缓慢。2.软件初期版本在用户机器上运行出现问题时,往往不太好迅速定位;由于出现问题的情况多较为复杂,涉及到用户的不同操作,在本地调试环境中也不太好模拟相关操作。3.用户任何细微的需求变更无法自我完成,必须由开发维护人员开放出相关参数后通过用户设置或者配置文件等操作后才能完成,这给开发人员也带来了极大的困恼,一方面,旧项目迟迟无法完结,必须不停地满足客户的变化需求;而另一方面,新的项目又马不停蹄地接踵而至。
技术实现思路
为克服现有技术的缺陷,本专利技术要解决的技术问题是提供了一种方便编程人员快速构造其测试软件、并使其软件具有较大扩充性、能够在脱离编译环境的情况下快速扩充软件功能、及时响应客户需求、用户能够自行修改需求的构造测试软件的方法。本专利技术的技术方案是这种构造测试软件的方法,将测试软件分为测试程序框架层、脚本解释引擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释引擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解释脚本、运行控制脚本、链接测试脚本到器件DLL的接口函数,测试脚本层用于描述测试流程,测试命令通过脚本解释引擎加载测试脚本执行测试命令的序列,以便适应各种测试设备及测试流程。测试程序通过脚本引擎加载脚本执行不同测试命令的序列,也就是不同的脚本,即可快速适应不同测试设备及流程的目的。由于脚本修改都是ASCII文本,不需要重新编译代码,我们可以很方便地直接在用户测试环境中进行调试,及时发现错误,最终达到快速响应用户需求的目的。附图说明图I是根据本专利技术的构造测试软件的方法的一个优选实施例的流程图;图2是应用本专利技术的结构示意图。具体实施例方式如图2所示,这种构造测试软件的方法,将测试软件分为测试程序框架层、脚本解释引擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释引擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解 释脚本、运行控制脚本、链接测试脚本到器件DLL的接口函数,测试脚本层用于描述测试流程,测试命令通过脚本解释引擎加载测试脚本执行测试命令的序列,以便适应各种测试设备及测试流程。测试程序通过脚本引擎加载脚本执行不同测试命令的序列,也就是不同的脚本,即可快速适应不同测试设备及流程的目的。由于脚本修改都是ASCII文本,不需要重新编译代码,我们可以很方便地直接在用户测试环境中进行调试,及时发现错误,最终达到快速响应用户需求的目的。优选地,这种构造测试软件的方法,包括以下步骤(I)开始;(2)选择所需的脚本;(3)脚本引擎解析其脚本内容;(4)根据脚本内容布置测试界面、映射按钮和其它控制事件;(5)用户点击按钮开始测试;(6)生成测试结果和日志。优选地,这种构造测试软件的方法,包括以下步骤(I)将测试仪表按照功能或接口归类封装在DLL中;比如光谱仪一类,不管有多少种不同厂家,不同类型的仪器,其控制接口大都遵循SCPI的标准,我们可以将其封装在一个DLL中,将其常用的功能接口进行公开,比如连接,断开,发送命令,接收命令以及常用功能等等;还比如,常用的串口,网口,也都可以封装在各自的DLL中,只公开其通用接口 ;还有与用户紧密关联的信息系统,也可以仿照器件的模式,封装在DLL中;(2)构造脚本解释引擎及器件DLL,其包含链接已有的DLL (我们这里采取的是静态链接方法,链接后框架进程(exe)即可调用器件DLL中的接口函数),并采用微软的ActiveX Scripting技术,将这些DLL的接口函数进行映射,映射成脚本可以识别的对象及其函数接口(比如,将光谱仪映射成MyOSA ;其OPEN操作,则用脚本MyOSA. Open O这样的语句进行对应;发送命令操作则对应MyOSA. SendO。如此将用户对设备仪表进行相关操作均采用脚本进行对应。同理,用户常用的信息系统也可以当做仪表进行类似的功能封装,以方便测试软件与其他信息系统的数据接入。);对于用户在图形用户界面⑶I (Graphical UserInterface)上的操作(比如构造常用输入控件 Edit, Label, StringGri d, CheckBox, RadioButton),获取用户对常用控件的操作等),在脚本中获取用户在界面上的相关操作,并以此作为程序的相关输入和流程的判定。更进一步地,步骤(2)中的按钮的点击事件,利用编程语言中的通过运行时类型识别RTTI (Run-Time Type Identification)机制,将脚本中的函数直接映射到其点击事件中,以便当用户在点击界面的按钮时,执行脚本中指定函数的代码。优选地,步骤(2)中的映射包括以下步骤(2. 1)创建必要的受控对象,这些受控对象是指将要在脚本文件中引用到的Automation对象,通常是应用系统的文档对象,也可以是某些ActiveX控制;(2. 2)加入名字项,凡是应用系统中要暴露给脚本文件的所有对象都需要加入到引擎的名字空间中(IActiveScript. AddNamedItem);(2.3)引擎在执行脚本时,首先处理其名字空间中的名字项,调用应用系统IActiveScriptSite接口的GetItemInfo成员函数,获取每一个名字所对应的受控对象的信息;(2. 4)在脚本执行过程中,当特定的事件发生时,引擎中的事件控制函数就要被调用;(2. 5)在脚本执行过程中,当调用到受控对象的属性和方法时,引擎会通过它所获取的对象接口调用IDispatch: : Invoke成员函数。也就是说,我们可以利用脚本自己在界面上创建控件,映射控件的相关事件,并执行我们自定义的操作。这样的模式极大扩充了软件的功能,可以很快速的应对外部需求变更。以上所述,仅是本专利技术的较佳实施例,并非对本专利技术作任何形式上的限制,凡是依据本专利技术的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本专利技术技术方案的保护范围。权利要求1.一种构造测试软件的方法,其特征在于将测试软件分为测试程序框架层、脚本解释弓I擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释弓I擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解释脚本文档来自技高网...

【技术保护点】
一种构造测试软件的方法,其特征在于:将测试软件分为测试程序框架层、脚本解释引擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释引擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解释脚本、运行控制脚本、链接测试脚本到器件DLL的接口函数,测试脚本层用于描述测试流程,测试命令通过脚本解释引擎加载测试脚本执行测试命令的序列,以便适应各种测试设备及测试流程。

【技术特征摘要】

【专利技术属性】
技术研发人员:李仲伟江毅许耿裴青峰俞施展黄丹
申请(专利权)人:武汉光迅信息技术有限公司武汉光迅科技股份有限公司
类型:发明
国别省市:

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

1