CN103942140A - 一种测试程序自动转换方法 - Google Patents
一种测试程序自动转换方法 Download PDFInfo
- Publication number
- CN103942140A CN103942140A CN201310702911.4A CN201310702911A CN103942140A CN 103942140 A CN103942140 A CN 103942140A CN 201310702911 A CN201310702911 A CN 201310702911A CN 103942140 A CN103942140 A CN 103942140A
- Authority
- CN
- China
- Prior art keywords
- test
- automatic switching
- switching method
- test procedure
- procedure automatic
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种测试程序自动转换方法,其特征在于,包括如下步骤:步骤一:定义语法;步骤二:对语义进行分析;步骤三:生成目标脚本。本发明使用测试用例与目标脚本分离、一次测试用例编写对应多个目标脚本的技术,从测试用例到目标代码的生成只需要几秒钟,后期目标代码的维护也极为简单,只需修改测试用例重新转换即可。
Description
技术领域
本发明涉及一种测试程序自动转换方法,具体涉及一种将测试人员利用熟悉的载体、并按简单的、一定的规则编写的测试用例自动转换成目标机可执行的脚本文件的方法,本发明属于软件验证测试领域。
背景技术
随着软件规模的扩大,软件开发中出现错误或缺陷的机会越来越多,市场对软件质量重要性的认识逐渐增强。软件测试在软件项目实施过程中的重要性日益突出,自动化测试作为软件测试中重要的一块,对测试人员的要求也有所提高,除了要使用自动化测试工具外,还需要熟悉不同的脚本语言。
脚本文件编写过程便是具体的测试用例的脚本转化。初学的自动化测试人员均会使用录制脚本到修改脚本的过程。但专业化的建议是以录制为参考,以编写脚本为主要行为,以避免录制脚本带来的冗余、公用元素的不可调用、脚本的调试复杂等问题。
自动化脚本文件的编写要求测试人员具有一定的目标脚本语言开发能力,通常一个测试团队里只有1到2名,而对于规模较大的测试用例编写任务,需要大部分测试人员参与,由于测试人员水平或者习惯不同导致了某些测试脚本文件质量不高,甚至隐藏了错误,影响测试结果的判断。
发明内容
为解决现有技术的不足,本发明的目的在于提供一种测试程序自动转换方法。
为了实现上述目标,本发明采用如下的技术方案:
一种测试程序自动转换方法,其特征在于,包括如下步骤:
步骤一:定义语法;
步骤二:对语义进行分析;
步骤三:生成目标脚本。
前述的一种测试程序自动转换方法,其特征在于,所述步骤一包括:
步骤1a:分析被测***的特点;
步骤1b:根据语法规则定义语句。
前述的一种测试程序自动转换方法,其特征在于,所述被测***的特点包括被测***所处环境,被测***中的元素,被测***中的属性,被测***的操作方法。
前述的一种测试程序自动转换方法,其特征在于,所述语句包括对象、属性、操作方法、操作参数。
前述的一种测试程序自动转换方法,其特征在于,所述步骤二包括:
步骤2a:利用所述语句编写测试用例;
步骤2b:将测试用例导入,并根据已经定义好的规则生成语义树。
前述的一种测试程序自动转换方法,其特征在于,所述步骤2b包括:
步骤2b1:顺序读取测试用例文件,此过程因测试用例文件类型不同而调用不同读取接口函数;
步骤2b2:根据当前语法类型选择调用不同的分析子过程,对于简单语法规则能够一次性分析完成的,直接进入步骤2b3;对于非一次性完成的语法规则,调用栈来临时存储,只有在得到当前语法规则的完成标志后,才进行步骤2b3;
步骤2b3:将步骤2b2获取的结果加到全局语义树中。
前述的一种测试程序自动转换方法,其特征在于,所述步骤2b2获取的结果即一个树节点顺序。
前述的一种测试程序自动转换方法,其特征在于,所述步骤三包括:根据用户选定的目标脚本语言,将步骤2b3取得的语义树转换成目标脚本代码,并生成文件。
前述的一种测试程序自动转换方法,其特征在于,所述目标脚本语言为Python、Perl或TK/Tcl。
前述的一种测试程序自动转换方法,其特征在于,步骤三包括:开发目标代码库,代码库覆盖语法定义规则中的全部内容,语法规则中的每一个点都对应一个可执行代码块;开发公用初始化代码库来连接被测***。
本发明的有益之处在于:本发明使用测试用例与目标脚本分离、一次测试用例编写对应多个目标脚本的技术,从测试用例到目标代码的生成只需要几秒钟,后期目标代码的维护也极为简单,只需修改测试用例重新转换即可。
附图说明
图1是本发明一种测试程序自动转换方法的流程图;
图2是本发明一种测试程序自动转换方法中语义树生成过程图;
图3是本发明一种测试程序自动转换方法中语义树存储图;
图4是本发明一种测试程序自动转换方法中程序自动转换流程图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
参照图1所示,本发明一种测试程序自动转换方法,需要分为4个步骤:定义语法,对语义进行分析,生成脚本代码。
第一部分:定义语法。
首先要分析被测***的特点,在什么环境下,有什么元素,有哪些属性,有哪些方法,根据一定的规则定义一些语句。一个完整的语句通常包括: 对象、属性、操作方法、操作参数等。 例如:
Set Objective “Test PosX of Sys1”; //此处设置测试目标,用于测试过程中显示给用户;
Set Sys1.PosX 1000; //此处设置***Sys1的属性PosX的值为1000;
Load APP1; //此语句启动应用程序APP1
Get Sys1.PosX Temp //此处获取***Sys1的属性PosX的值,并存储到临时变量Temp;
当某些操作会被经常使用,我们便可以编写一个公用函数块,以方便其它用例的调用。
语法规则是有限的,但是可扩展的,不受限于目标代码要求。
第二部分:对语义进行分析。
在语法规则定义完成之后就可以进行测试用例的编写了,测试用例可以保存在Txt文件、XML文件、Excel文件等。
当用户利用第一部分定义好的语句编写完测试用例,就可以将测试用例导入,并根据已经定义好的规则生成语义树。图2是本发明一种测试程序自动转换方法中语义树生成过程图;图3是本发明一种测试程序自动转换方法中语义树存储图;整个导入过程主要有以下几个步骤:
步骤1:顺序读取测试用例文件,此过程因测试用例文件类型不同而调用不同读取接口函数;
步骤2:根据当前语法类型选择调用不同的分析子过程,对于简单语法规则可以一次性分析完成的,直接进入步骤3;对于非一次性完成的语法规则,需要调用栈来临时存储,只有在得到当前语法规则的完成标志后,才进行步骤3,此过程涉及到嵌套问题,因此输出结果也可能是一个多层级的树 ;
步骤3:将步骤2获取的结果即一个树节点顺序加到全局语义树中。
语义分析实现了从文件数据到内存数据的转变,并以顺序存储的方式在多叉树中。
执行语句框代表一个或者多个其它基本功能点,理论上支持3层以上的嵌套。
第三部分:生成目标脚本。
根据用户选定的目标脚本语言,如Python、Perl、TK/Tcl等,将第二部分取得的语义树转换成目标脚本代码,并生成文件。此处需要预先开发目标代码库,代码库应该覆盖语法定义规则中的全部内容,语法规则中的每一个点都对应了一个可执行代码块。且为实现用户接口内容,还需要开发一些公用初始化代码库来连接被测***。整个过程如下图4所示。
由此,本发明实现了以下几点:1.以预定义、有限、可扩展的规则表示自动化测试程序;2.以多叉树的形式保存自动化测试程序数据,支持多层级嵌套3.根据选择的目标代码自动生成最终的可执行目标代码即自动化测试脚本文件4.目标脚本文件可扩展,方便移植,而无须重新编写测试用例。
本发明使用测试用例与目标脚本分离、一次测试用例编写对应多个目标脚本的技术,从测试用例到目标代码的生成只需要几秒钟,后期目标代码的维护也极为简单,只需修改测试用例重新转换即可。
本发明的使用,使普通测试人员也能编写自动化测试用例,专业自动化开发人员负责编写目标代码库即可。从而加快自动化测试用例的编写与维护,缩短测试用例开发周期,提升了效率,节约了成本。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (10)
1. 一种测试程序自动转换方法,其特征在于,包括如下步骤:
步骤一:定义语法;
步骤二:对语义进行分析;
步骤三:生成目标脚本。
2. 根据权利要求1所述的一种测试程序自动转换方法,其特征在于,所述步骤一包括:
步骤1a:分析被测***的特点;
步骤1b:根据语法规则定义语句。
3. 根据权利要求2所述的一种测试程序自动转换方法,其特征在于,所述被测***的特点包括被测***所处环境,被测***中的元素,被测***中的属性,被测***的操作方法。
4. 根据权利要求3所述的一种测试程序自动转换方法,其特征在于,所述语句包括对象、属性、操作方法、操作参数。
5. 根据权利要求1所述的一种测试程序自动转换方法,其特征在于,所述步骤二包括:
步骤2a:利用所述语句编写测试用例;
步骤2b:将测试用例导入,并根据已经定义好的规则生成语义树。
6. 根据权利要求5所述的一种测试程序自动转换方法,其特征在于,所述步骤2b包括:
步骤2b1:顺序读取测试用例文件,此过程因测试用例文件类型不同而调用不同读取接口函数;
步骤2b2:根据当前语法类型选择调用不同的分析子过程,对于简单语法规则能够一次性分析完成的,直接进入步骤2b3;对于非一次性完成的语法规则,调用栈来临时存储,只有在得到当前语法规则的完成标志后,才进行步骤2b3;
步骤2b3:将步骤2b2获取的结果加到全局语义树中。
7. 根据权利要求6所述的一种测试程序自动转换方法,其特征在于,所述步骤2b2获取的结果即一个树节点顺序。
8. 根据权利要求1至7任一项所述的一种测试程序自动转换方法,其特征在于,所述步骤三包括:根据用户选定的目标脚本语言,将步骤2b3取得的语义树转换成目标脚本代码,并生成文件。
9. 根据权利要求8所述的一种测试程序自动转换方法,其特征在于,所述目标脚本语言为Python、Perl或TK/Tcl。
10. 根据权利要求9所述的一种测试程序自动转换方法,其特征在于,步骤三包括:开发目标代码库,代码库覆盖语法定义规则中的全部内容,语法规则中的每一个点都对应一个可执行代码块;开发公用初始化代码库来连接被测***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310702911.4A CN103942140A (zh) | 2013-12-19 | 2013-12-19 | 一种测试程序自动转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310702911.4A CN103942140A (zh) | 2013-12-19 | 2013-12-19 | 一种测试程序自动转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103942140A true CN103942140A (zh) | 2014-07-23 |
Family
ID=51189813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310702911.4A Pending CN103942140A (zh) | 2013-12-19 | 2013-12-19 | 一种测试程序自动转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103942140A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391793A (zh) * | 2014-11-27 | 2015-03-04 | 中国联合网络通信集团有限公司 | 测试步骤及测试脚本生成方法及装置 |
CN108958726A (zh) * | 2017-05-19 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 一种数据开发的方法和装置 |
CN109074254A (zh) * | 2016-03-30 | 2018-12-21 | 日立社会信息服务有限公司 | 程序源转换方法、程序源转换装置、信息处理装置、信息处理方法和程序 |
CN111651157A (zh) * | 2020-07-13 | 2020-09-11 | 太仓市同维电子有限公司 | 一种基于Python的PoE仪表封装方法 |
CN111694738A (zh) * | 2020-06-04 | 2020-09-22 | 贵州易鲸捷信息技术有限公司 | 一种sql测试脚本的生成方法 |
CN112667494A (zh) * | 2020-12-08 | 2021-04-16 | 上海纳恩汽车技术股份有限公司 | 一种基于配置表的汽车uds自动化测试方法,***以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436128A (zh) * | 2007-11-16 | 2009-05-20 | 北京邮电大学 | 软件测试用例自动生成方法及*** |
US20100058300A1 (en) * | 2008-08-26 | 2010-03-04 | International Business Machines Corporation | Test coverage analysis method and apparatus |
CN102541730A (zh) * | 2011-12-08 | 2012-07-04 | 北京空间飞行器总体设计部 | 一种航天器测试脚本语义识别与自动生成方法 |
-
2013
- 2013-12-19 CN CN201310702911.4A patent/CN103942140A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436128A (zh) * | 2007-11-16 | 2009-05-20 | 北京邮电大学 | 软件测试用例自动生成方法及*** |
US20100058300A1 (en) * | 2008-08-26 | 2010-03-04 | International Business Machines Corporation | Test coverage analysis method and apparatus |
CN102541730A (zh) * | 2011-12-08 | 2012-07-04 | 北京空间飞行器总体设计部 | 一种航天器测试脚本语义识别与自动生成方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391793A (zh) * | 2014-11-27 | 2015-03-04 | 中国联合网络通信集团有限公司 | 测试步骤及测试脚本生成方法及装置 |
CN104391793B (zh) * | 2014-11-27 | 2017-07-14 | 中国联合网络通信集团有限公司 | 测试步骤及测试脚本生成方法及装置 |
CN109074254A (zh) * | 2016-03-30 | 2018-12-21 | 日立社会信息服务有限公司 | 程序源转换方法、程序源转换装置、信息处理装置、信息处理方法和程序 |
CN109074254B (zh) * | 2016-03-30 | 2021-12-24 | 日立社会信息服务有限公司 | 程序源转换方法、程序源转换装置 |
CN108958726A (zh) * | 2017-05-19 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 一种数据开发的方法和装置 |
CN108958726B (zh) * | 2017-05-19 | 2022-01-28 | 北京京东尚科信息技术有限公司 | 一种数据开发的方法和装置 |
CN111694738A (zh) * | 2020-06-04 | 2020-09-22 | 贵州易鲸捷信息技术有限公司 | 一种sql测试脚本的生成方法 |
CN111651157A (zh) * | 2020-07-13 | 2020-09-11 | 太仓市同维电子有限公司 | 一种基于Python的PoE仪表封装方法 |
CN111651157B (zh) * | 2020-07-13 | 2024-02-27 | 太仓市同维电子有限公司 | 一种基于Python的PoE仪表封装方法 |
CN112667494A (zh) * | 2020-12-08 | 2021-04-16 | 上海纳恩汽车技术股份有限公司 | 一种基于配置表的汽车uds自动化测试方法,***以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103942140A (zh) | 一种测试程序自动转换方法 | |
CN103412820B (zh) | Web***中的页面的测试方法和装置 | |
US10354031B2 (en) | Information processing by interpenetrating signal transmission channel in design for testability of chip | |
CN110737594B (zh) | 自动生成测试用例的数据库标准符合性测试方法及装置 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN104598274A (zh) | 一种自动插桩编译安装方法及*** | |
US9098630B2 (en) | Data selection | |
CN105893254A (zh) | 测试用例导入方法及装置 | |
CN110109897A (zh) | 数据库脚本生成方法、装置、计算机设备和存储介质 | |
CN110471652B (zh) | 任务编排方法、编排器、设备及可读存储介质 | |
CN102306122A (zh) | 自动化测试方法及设备 | |
CN111506314B (zh) | 项目开发的方法、装置、服务器及介质 | |
CN110046091B (zh) | 一种自动测试方法和装置 | |
CN110543427B (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN103186463B (zh) | 确定软件的测试范围的方法和*** | |
CN104750606A (zh) | 一种基于反射的自动化测试方法 | |
CN113050953A (zh) | 基于注释生成代码的方法、装置及存储介质 | |
CN116661756B (zh) | 一种基于低代码dsl的对象解析方法及装置 | |
US20120259611A1 (en) | System and method for generation of cim-based power system circuit models | |
CN116610568A (zh) | 一种识别代码的依赖关系的方法、装置、设备及介质 | |
CN116629172A (zh) | 芯片设计中模块自动生成和集成方法、装置、设备及介质 | |
US20190303279A1 (en) | Modeling system | |
CN108897678B (zh) | 静态代码检测方法和静态代码检测***、存储设备 | |
CN111158665B (zh) | 代码生成方法及装置、电子设备和存储介质 | |
CN109359039A (zh) | 一种提升Sahi自动化测试效率的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140723 |