CN102890652B - 一种构造测试软件的方法和应用该方法的测试系统 - Google Patents
一种构造测试软件的方法和应用该方法的测试系统 Download PDFInfo
- Publication number
- CN102890652B CN102890652B CN201210439824.XA CN201210439824A CN102890652B CN 102890652 B CN102890652 B CN 102890652B CN 201210439824 A CN201210439824 A CN 201210439824A CN 102890652 B CN102890652 B CN 102890652B
- Authority
- CN
- China
- Prior art keywords
- script
- testing
- test
- layer
- dll
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种方便编程人员快速构造其测试软件、并使其软件具有较大扩充性、能够在脱离编译环境的情况下快速扩充软件功能、及时响应客户需求、用户能够自行修改需求的构造测试软件的方法,将测试软件分为测试程序框架层、脚本解释引擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释引擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解释脚本、运行控制脚本、链接测试脚本到器件DLL的接口函数,测试脚本层用于描述测试流程,测试命令通过脚本解释引擎加载测试脚本执行测试命令的序列,以便适应各种测试设备及测试流程。
Description
技术领域
本发明涉及测试软件的技术领域,尤其涉及一种构造测试软件的方法,还有应用该方法的测试系统。
背景技术
目前,制造业中的测试软件往往都是开发人员根据现有的测试设备、测试方法和流程定制而成。由于产品的差异以及更新换代,哪怕是同一公司内的不同产品,其测试流程往往也会千差万别,而相关的测试软件也必须不断根据用户需求进行修改。这对测试软件编写者带来了极大的挑战,测试软件无法快速适用于不同产品,甚至也无法适用于相同产品的不同阶段(比如研发阶段,中试阶段,生产阶段等等),也无法与现有产线上的各类信息系统紧密结合,一旦产线上做流程变更,软件的变更也不可缺少,由于现有编程语言多半需要在编译环境下重新编译后才能使用,这会带来几个问题:
1.开发者所处的开发环境中不一定有软件使用者相关的测试仪表环境,必须在开发机器上修改代码后再发布到使用者机器上。而往往测试软件调试必须经常这样反复往返,这使得开发效率往往在测试环节下变得异常缓慢。
2.软件初期版本在用户机器上运行出现问题时,往往不太好迅速定位;由于出现问题的情况多较为复杂,涉及到用户的不同操作,在本地调试环境中也不太好模拟相关操作。
3.用户任何细微的需求变更无法自我完成,必须由开发维护人员开放出相关参数后通过用户设置或者配置文件等操作后才能完成,这给开发人员也带来了极大的困恼,一方面,旧项目迟迟无法完结,必须不停地满足客户的变化需求;而另一方面,新的项目又马不停蹄地接踵而至。
发明内容
为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种方便编程人员快速构造其测试软件、并使其软件具有较大扩充性、能够在脱离编译环境的情况下快速扩充软件功能、及时响应客户需求、用户能够自行修改需求的构造测试软件的方法。
本发明的技术方案是:这种构造测试软件的方法,将测试软件分为测试程序框架层、脚本解释引擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释引擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解释脚本、运行控制脚本、链接测试脚本到器件DLL的接口函数,测试脚本层用于描述测试流程,测试命令通过脚本解释引擎加载测试脚本执行测试命令的序列,以便适应各种测试设备及测试流程。
测试程序通过脚本引擎加载脚本执行不同测试命令的序列,也就是不同的脚本,即可快速适应不同测试设备及流程的目的。由于脚本修改都是ASCII文本,不需要重新编译代码,我们可以很方便地直接在用户测试环境中进行调试,及时发现错误,最终达到快速响应用户需求的目的。
附图说明
图1是根据本发明的构造测试软件的方法的一个优选实施例的流程图;
图2是应用本发明的结构示意图。
具体实施方式
如图2所示,这种构造测试软件的方法,将测试软件分为测试程序框架层、脚本解释引擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释引擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解释脚本、运行控制脚本、链接测试脚本到器件DLL的接口函数,测试脚本层用于描述测试流程,测试命令通过脚本解释引擎加载测试脚本执行测试命令的序列,以便适应各种测试设备及测试流程。
测试程序通过脚本引擎加载脚本执行不同测试命令的序列,也就是不同的脚本,即可快速适应不同测试设备及流程的目的。由于脚本修改都是ASCII文本,不需要重新编译代码,我们可以很方便地直接在用户测试环境中进行调试,及时发现错误,最终达到快速响应用户需求的目的。
优选地,这种构造测试软件的方法,包括以下步骤:
(1)开始;
(2)选择所需的脚本;
(3)脚本引擎解析其脚本内容;
(4)根据脚本内容布置测试界面、映射按钮和其它控制事件;
(5)用户点击按钮开始测试;
(6)生成测试结果和日志。
优选地,这种构造测试软件的方法,包括以下步骤:
(1)将测试仪表按照功能或接口归类封装在DLL中;比如光谱仪一类,不管有多少种不同厂家,不同类型的仪器,其控制接口大都遵循SCPI的标准,我们可以将其封装在一个DLL中,将其常用的功能接口进行公开,比如连接,断开,发送命令,接收命令以及常用功能等等;还比如,常用的串口,网口,也都可以封装在各自的DLL中,只公开其通用接口;还有与用户紧密关联的信息系统,也可以仿照器件的模式,封装在DLL中;
(2)构造脚本解释引擎及器件DLL,其包含:链接已有的DLL(我们这里采取的是静态链接方法,链接后框架进程(exe)即可调用器件DLL中的接口函数),并采用微软的ActiveX Scripting技术,将这些DLL的接口函数进行映射,映射成脚本可以识别的对象及其函数接口(比如,将光谱仪映射成MyOSA;其OPEN操作,则用脚本MyOSA.Open()这样的语句进行对应;发送命令操作则对应MyOSA.Send()。如此将用户对设备仪表进行相关操作均采用脚本进行对应。同理,用户常用的信息系统也可以当做仪表进行类似的功能封装,以方便测试软件与其他信息系统的数据接入。);对于用户在图形用户界面GUI(Graphical User Interface)上的操作(比如构造常用输入控件Edit,Label,StringGri d,CheckBox,Radi oButton),获取用户对常用控件的操作等),在脚本中获取用户在界面上的相关操作,并以此作为程序的相关输入和流程的判定。
更进一步地,步骤(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成员函数。
也就是说,我们可以利用脚本自己在界面上创建控件,映射控件的相关事件,并执行我们自定义的操作。这样的模式极大扩充了软件的功能,可以很快速的应对外部需求变更。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。
Claims (2)
1.一种构造测试软件的方法,将测试软件分为测试程序框架层、脚本解释引擎及器件动态链接库DLL层、测试脚本层,测试程序框架层用于脚本解释引擎初始化、日志显示、测试需要的控件显示以及设备面板显示,脚本解释引擎及器件DLL层用于解释脚本、运行控制脚本、链接测试脚本到器件DLL的接口函数,测试脚本层用于描述测试流程,测试命令通过脚本解释引擎加载测试脚本执行测试命令的序列,以便适应各种测试设备及测试流程;
其特征在于:包括以下步骤:
(1)将测试仪表按照功能或接口归类封装在DLL中;
(2)构造脚本解释引擎及器件DLL,其包含:静态链接已有的DLL,并采用微软的ActiveX Scripting技术,将这些DLL的接口函数进行映射,映射成脚本可以识别的对象及其函数接口;对于用户在图形用户界面GUI上的操作,在脚本中获取用户在界面上的相关操作,并以此作为程序的相关输入和流程的判定。
2.根据权利要求1所述的构造测试软件的方法,其特征在于:步骤(2)中的映射包括以下步骤:
(2.1)创建必要的受控对象,这些受控对象是指将要在脚本文件中引用到的Automation对象;
(2.2)加入名字项,凡是应用系统中要暴露给脚本文件的所有对象都需要加入到引擎的名字空间中;
(2.3)引擎在执行脚本时,首先处理其名字空间中的名字项,调用应用系统IActiveScriptSite接口的GetItemInfo成员函数,获取每一个名字所对应的受控对象的信息;
(2.4)在脚本执行过程中,当特定的事件发生时,引擎中的事件控制函数就要被调用;
(2.5)在脚本执行过程中,当调用到受控对象的属性和方法时,引擎会通过它所获取的对象接口调用IDispatch::Invoke成员函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210439824.XA CN102890652B (zh) | 2012-11-07 | 2012-11-07 | 一种构造测试软件的方法和应用该方法的测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210439824.XA CN102890652B (zh) | 2012-11-07 | 2012-11-07 | 一种构造测试软件的方法和应用该方法的测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102890652A CN102890652A (zh) | 2013-01-23 |
CN102890652B true CN102890652B (zh) | 2015-07-01 |
Family
ID=47534160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210439824.XA Active CN102890652B (zh) | 2012-11-07 | 2012-11-07 | 一种构造测试软件的方法和应用该方法的测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102890652B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008029A (zh) * | 2013-02-27 | 2014-08-27 | 腾讯科技(深圳)有限公司 | 内核性能测试的方法及装置 |
CN104333415B (zh) * | 2014-09-26 | 2017-06-09 | 武汉光迅科技股份有限公司 | 一种用于测试光模块的多通道自动测试方法及系统 |
CN105049113B (zh) * | 2015-06-17 | 2017-09-15 | 武汉光迅科技股份有限公司 | 一种有源光模块多通道自动化测试系统及方法 |
CN105243013B (zh) * | 2015-09-17 | 2018-07-20 | 浪潮(北京)电子信息产业有限公司 | 一种软件测试方法与系统 |
CN105224457B (zh) * | 2015-09-29 | 2018-04-17 | 北京奇虎科技有限公司 | 一种测试框架实现方法和装置 |
CN107704376B (zh) * | 2016-08-11 | 2023-07-07 | 福建省天奕网络科技有限公司 | 游戏自动化测试方法及其系统 |
CN109783753A (zh) * | 2018-12-14 | 2019-05-21 | 平安普惠企业管理有限公司 | 网站链接树状图生成方法、装置、设备及存储介质 |
CN113656291B (zh) * | 2021-08-04 | 2023-04-28 | 成都中科合迅科技有限公司 | 软件脚本引擎动态调用方法 |
CN116436541A (zh) * | 2023-06-12 | 2023-07-14 | 西安弘捷电子技术有限公司 | 多通道tr组件测试仪器管理方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1033649A2 (en) * | 1999-03-03 | 2000-09-06 | Dassault Systèmes | Software interface |
CN101017457A (zh) * | 2007-02-09 | 2007-08-15 | 山东浪潮齐鲁软件产业股份有限公司 | 一种计算机软件的自动化测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100175057A1 (en) * | 2009-01-06 | 2010-07-08 | David Simons | Associating advertisements and game data in a flash-based gaming environment |
-
2012
- 2012-11-07 CN CN201210439824.XA patent/CN102890652B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1033649A2 (en) * | 1999-03-03 | 2000-09-06 | Dassault Systèmes | Software interface |
CN101017457A (zh) * | 2007-02-09 | 2007-08-15 | 山东浪潮齐鲁软件产业股份有限公司 | 一种计算机软件的自动化测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102890652A (zh) | 2013-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102890652B (zh) | 一种构造测试软件的方法和应用该方法的测试系统 | |
JP7244176B2 (ja) | プロセス制御プラントにおけるグラフィカルディスプレイ設計ワークフローの簡素化のためのシステム及び方法 | |
CN107085415B (zh) | 过程控制网络中的规则构建器 | |
CA2945328C (en) | Software test automation system and method | |
US10360141B2 (en) | Automated application test system | |
US9189377B1 (en) | Automation testing using descriptive maps | |
US7523447B1 (en) | Configurator using markup language | |
CA2517323A1 (en) | Test automation stack layering | |
CN105117346A (zh) | 虚拟化平台的分布式系统自动化测试方法及系统 | |
US9921946B2 (en) | Method and system to display and browse program trace using source code decoration | |
CN100555219C (zh) | 原子操作封装装置和方法 | |
US20120272211A1 (en) | Generating Constraints in a Class Model | |
CN103399814A (zh) | 自动化测试的方法及装置 | |
Li et al. | A practical approach to testing GUI systems | |
CN113918452B (zh) | 一种多国产化平台下的工业软件兼容性测试方法 | |
Silistre et al. | Models in graphical user interface testing: Study design | |
Saadatmand | Towards automating integration testing of. NET applications using Roslyn | |
US12014158B2 (en) | System and method for developing user interface applications | |
JP2010204840A (ja) | ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体 | |
EP3436948A1 (en) | System for monitoring and reporting performance and correctness issues across design, compile and runtime | |
EP1868099B1 (en) | Bug management tool | |
JP5645325B2 (ja) | ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体 | |
Singh et al. | A reliability growth model for object oriented software developed under concurrent distributed development environment | |
Berezowski et al. | Recommendations for Developing Safety-Related Systems with Graphical Languages. | |
Rauter et al. | Using model-based testing for manufacturing and integration-testing of embedded control systems |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160826 Address after: 430074 Wuhan, Hongshan Province District Road, Department of mail, No. 88 hospital Patentee after: Wuhan Accelink Technologies Co., Ltd. Address before: 430074 Wuhan, Hongshan Province District Road, Department of mail, No. 88 hospital Patentee before: Wuhan Accelink Technologies Co., Ltd. Patentee before: Guangxun Science-Technology Co., Ltd., Wuhan |