CN107622017B - 一种通用自动化软件测试的解析方法 - Google Patents

一种通用自动化软件测试的解析方法 Download PDF

Info

Publication number
CN107622017B
CN107622017B CN201710950580.4A CN201710950580A CN107622017B CN 107622017 B CN107622017 B CN 107622017B CN 201710950580 A CN201710950580 A CN 201710950580A CN 107622017 B CN107622017 B CN 107622017B
Authority
CN
China
Prior art keywords
use case
variable
name
type
information
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
Application number
CN201710950580.4A
Other languages
English (en)
Other versions
CN107622017A (zh
Inventor
唐文锋
陈业英
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen xiaoxiliu Technology Co.,Ltd.
Original Assignee
Shenzhen Svi Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Svi Technology Co ltd filed Critical Shenzhen Svi Technology Co ltd
Priority to CN201710950580.4A priority Critical patent/CN107622017B/zh
Publication of CN107622017A publication Critical patent/CN107622017A/zh
Application granted granted Critical
Publication of CN107622017B publication Critical patent/CN107622017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明适用于自动化软件测试领域,提供了一种通用自动化软件测试的解析方法,所述解析方法包括以下步骤:A:将被测对象进行编辑得到具体的用例;B:读取用例进行解析并生成用例代码;C:将生成的用例代码进行选择性执行,如果选择执行则启动执行器进行用例代码执行,如果选择不执行则返回到读取用例进行解析并生成用例代码;D:用例代码执行完成则结束,如果未完成则继续执行直至完成则结束。

Description

一种通用自动化软件测试的解析方法
技术领域
本发明属于自动化软件测试领域,尤其涉及一种通用自动化软件测试的解析方法。
背景技术
随着软件行业的发展,软件越来越复杂,测试用例越来越多,单纯靠手工测试根本无法每个版本都执行那成千上万的用例。执行用例工作量太大,导致测试工程师没办法考虑更多场景,思考更多可能,结果测试质量不高,问题反复等问题时有出现。于是需要将稳定的,必须的手工用例转换成自动化用例,将测试工程师从重复劳动中解放出来,可以投入更多精力到思考创造性的,扩展性的工作中去。更好的提高软件质量。
目前主流的自动化测试实现自动化无非3种模式:典型的自动化测试基本框架结构类型有四种:脚本模块化架构,测试库架构,关键词或表格驱动架构,数据驱动架构。测试库构架框架(The Test Library Architecture Framework):将脚本中公共的方法提取抽象成一个个插件,通过插件与数据确定一个测试步骤。数据驱动测试框架(The Data-Driven Testing Framework):仅仅是将测试数据从测试脚本中分离出来,开始了非混沌状态的第一步,这也是所有测试架构中最简单的一种。数据驱动方式的测试代码不便重用,对测试人员的编程能力要求比较高;比较有名的有Automated Testing Specialists Inc.提出的基于数据驱动的自动化测试方法以及GUI测试方法。关键字驱动或表驱动测试框架(The Keyword-Driven or Table-Driven Testing Framework):关键字驱动方式的测试代码便于重用,数据表记录包含了动作,输入数据和输出的期望结果;Mercury InteractiveInc.提出的关键字驱动自动化测试方法及录制/回放式的自动化测试方法. 极大的减少了自动化开发工程师维护量,毕竟在测试团队中,自动化开发工程师占的比较少。缺点是框架的抽象程度比较高,对自动化测试工程师的开发能力比较高。主流方案存在的痛点:普通测试人员能参与的部分不多,主要工作量还是在自动化测试工程师身上;对测试工程师要求比较高;前期投入大,后期维护成本依然高;手工测试和自动化测试不能通用;接口测试、功能测试、UI测试、APP测试用例模板差异较大,不能通用。
发明内容
本发明的目的在于提供一种通用自动化软件测试的解析方法,旨在解决现有技术中存在的技术问题。
本发明是这样实现的,一种通用自动化软件测试的解析方法,所述解析方法包括以下步骤:
A:将被测对象进行编辑得到具体的用例;
B:读取用例进行解析并生成用例代码;
C:将生成的用例代码进行选择性执行,如果选择执行则启动执行器进行用例代码执行,如果选择不执行则返回到读取用例进行解析并生成用例代码;
D:用例代码执行完成则结束,如果未完成则继续执行直至完成则结束。
本发明的进一步技术方案是:所述A步骤还包括以下步骤:
A1、将被测对象进行流程拆分成一个个简单的用例步骤;
A2、将用例步骤所涉及的对象信息进行录入。
本发明的进一步技术方案是:所述A1步骤还包括以下步骤:
A11、将被测对象进行正确识别,录入关键字信息,并分析是否需要新增关键字,如是则进行新增关键字,如否则不需进行新增关键字;
A12、将关键字与正确识别的对象类型进行并联;
A13、并联完成则进行用例编写,首先提取共用变量,将涉及的变量信息进行录入,在将被测对象编写成用例步骤。
本发明的进一步技术方案是:所述A11步骤中的关键字包括关键字ID(FUNC_ID),关键字名称(FUNC_NAME),关键字接口代码(FUNC_CODE),代码对应执行器(EXEC_TYPE),代码依赖库(FUNC_LIB),代码路径(FUNC_PATH)。
本发明的进一步技术方案是:所述A12步骤中的对象类型包括对象类型ID(OBJ_TYPE_ID),对象类型名称(OBJ_TYPE_NAME),执行器类型(EXEC_TYPE)。
本发明的进一步技术方案是:所述A13步骤中涉及的变量信息包括:
用例信息:用例信息包括用例ID(TESTCASE_ID),用例名称(TESTCASE_NAME),用例归属(TESTCASE_Adscription),用例路径(TESTCASE_PATH),用例创建人(TESTCASE_Creater);
步骤信息:步骤信息包括步骤ID(STEP_ID),用例ID(TESTCASE_ID),对象ID(OBJ_ID),动作关键字ID(FUNC_ID),检查关键字ID(CHECK_FUNC_ID),步骤序号(STEP_NUM);
变量集信息:变量集信息包括变量集ID(VariableSet_ID),变量集名称(VariableSet_NAME),关联用例ID(TESTCASE_ID);
变量信息:变量信息包括变量ID(Variable_ID),变量名称(Variable_NAME),归属变量集ID(VariableSet_ID);
值信息:值信息包括变量值ID(Value_ID),变量ID(Variable_ID),值内容(Value_Content)。
本发明的进一步技术方案是:所述A2步骤中涉及的对象信息包括对象ID(OBJ_ID),对象名称(OBJ_NAME),对象描述(OBJ_DESC),对象类型(OBJ_TYPE),执行器类型(EXEC_TYPE),对象定位识别信息(OBJ_CODE),是否动态对象(IS_Dynamic),父对象ID(Father_ID)。
本发明的进一步技术方案是:所述B步骤还包括以下步骤:
B1、解析用例步骤,并将用例步骤分解成包含四个要素的操作对象、动作、校验方法和变量,动作和校验方法都属于关键字库中的具体抽象方法;
B2、替换变量的具体参数,驱动相关关键字运行,实现用例步骤的逻辑;
B3、生成用例代码,根据不同的对象类型关联的执行器生成用例代码;
B4、在不同执行器上执行生成的用例代码。
本发明的有益效果是:普通测试人员能参与的部分变多,自动化测试工程师工作量变的简单;对测试工程师要求降低;后期维护成本降低;手工测试和自动化测试能通用;接口测试、功能测试、UI测试、APP测试用例模板差异变小,能通用。
附图说明
图1是本发明实施例提供的一种通用自动化软件测试的解析方法的流程框图。
具体实施方式
附图标记:
图1示出了本发明提供的一种通用自动化软件测试的解析方法,所述解析方法包括以下步骤:
步骤S1:将被测对象进行编辑得到具体的用例;
所述步骤S1还包括以下步骤:
步骤S11:将被测对象进行流程拆分成一个个简单的用例步骤;
所述步骤S11步骤还包括以下步骤:
步骤S111:将被测对象进行正确识别,录入关键字信息,并分析是否需要新增关键字,如是则进行新增关键字,如否则不需进行新增关键字;
所述步骤S111中的关键字包括关键字ID(FUNC_ID),关键字名称(FUNC_NAME),关键字接口代码(FUNC_CODE),代码对应执行器(EXEC_TYPE),代码依赖库(FUNC_LIB),代码路径(FUNC_PATH)。
步骤S112:将关键字与正确识别的对象类型进行并联;
所述步骤S112中的对象类型包括对象类型ID(OBJ_TYPE_ID),对象类型名称(OBJ_TYPE_NAME),执行器类型(EXEC_TYPE)。
步骤S113:并联完成则进行用例编写,首先提取共用变量,将涉及的变量信息进行录入,在将被测对象编写成用例步骤。
所述步骤S113中涉及的变量信息包括:
用例信息:用例信息包括用例ID(TESTCASE_ID),用例名称(TESTCASE_NAME),用例归属(TESTCASE_Adscription),用例路径(TESTCASE_PATH),用例创建人(TESTCASE_Creater);
步骤信息:步骤信息包括步骤ID(STEP_ID),用例ID(TESTCASE_ID),对象ID(OBJ_ID),动作关键字ID(FUNC_ID),检查关键字ID(CHECK_FUNC_ID),步骤序号(STEP_NUM);
变量集信息:变量集信息包括变量集ID(VariableSet_ID),变量集名称(VariableSet_NAME),关联用例ID(TESTCASE_ID);
变量信息:变量信息包括变量ID(Variable_ID),变量名称(Variable_NAME),归属变量集ID(VariableSet_ID);
值信息:值信息包括变量值ID(Value_ID),变量ID(Variable_ID),值内容(Value_Content)。
步骤S12:将用例步骤所涉及的对象信息进行录入。
所述步骤S12中涉及的对象信息包括对象ID(OBJ_ID),对象名称(OBJ_NAME),对象描述(OBJ_DESC),对象类型(OBJ_TYPE),执行器类型(EXEC_TYPE),对象定位识别信息(OBJ_CODE),是否动态对象(IS_Dynamic),父对象ID(Father_ID)。
步骤S2:读取用例进行解析并生成用例代码;
所述步骤S2还包括以下步骤:
步骤S21:解析用例步骤,并将用例步骤分解成包含四个要素的操作对象、动作、校验方法和变量,动作和校验方法都属于关键字库中的具体抽象方法;
步骤S22:替换变量的具体参数,驱动相关关键字运行,实现用例步骤的逻辑;
步骤S23:生成用例代码,根据不同的对象类型关联的执行器生成用例代码;
步骤S24:在不同执行器上执行生成的用例代码。
步骤S3:将生成的用例代码进行选择性执行,如果选择执行则启动执行器进行用例代码执行,如果选择不执行则返回到读取用例进行解析并生成用例代码;
步骤S4:用例代码执行完成则结束,如果未完成则继续执行直至完成则结束。
设计阶段将确定好要测的被测对象拆分成一个个简单的用例步骤。并将被测对象识别正确,分析是否需要新增关键字,将关键字与识别的对象类型进行关联。然后开始编写用例,提取可以共用的变量。用例如果比较复杂,可以把多个简单的用例串成业务流。编写阶段还有一个比较重要的工作就是录入对象,可以根据需要,选择不同的执行器(qtp、selenium、autoIt)来录制对象定位信息。需要录入的对象信息内容有:对象ID(OBJ_ID),对象名称(OBJ_NAME),对象描述(OBJ_DESC),对象类型(OBJ_TYPE),执行器类型(EXEC_TYPE),对象定位识别信息(OBJ_CODE),是否动态对象(IS_Dynamic),父对象ID(Father_ID)。
测试开发工程师根据不同的对象类型和执行器类型编写对应的代码模板,并关联该对象类型。这样同类型的对象可以生成类似的代码,为后面自动生成该执行器的代码做准备。要录入的对象类型信息有:对象类型ID(OBJ_TYPE_ID),对象类型名称(OBJ_TYPE_NAME),执行器类型(EXEC_TYPE)。
要录入的关键字信息有:关键字ID(FUNC_ID),关键字名称(FUNC_NAME),关键字接口代码(FUNC_CODE),代码对应执行器(EXEC_TYPE),代码依赖库(FUNC_LIB),代码路径(FUNC_PATH) 例如,要在QTP下执行对Image类型的点击操作Browser("name:Browser").Page("class:Page").Image("id:getRates").Click这里有3个对象,分别是Browser、Page、Image。Browser没有父对象,Page是Image的父对象,以此类推。Image类型,关联QTP执行器类型,关联点击动作。
编写阶段涉及的变量信息录入:
用例信息:用例ID(TESTCASE_ID),用例名称(TESTCASE_NAME),用例归属(TESTCASE_Adscription),用例路径(TESTCASE_PATH),用例创建人(TESTCASE_Creater)。
步骤信息:步骤ID(STEP_ID),用例ID(TESTCASE_ID),对象ID(OBJ_ID),动作关键字ID(FUNC_ID),检查关键字ID(CHECK_FUNC_ID),步骤序号(STEP_NUM)。
变量集信息:变量集ID(VariableSet_ID),变量集名称(VariableSet_NAME),关联用例ID(TESTCASE_ID)。
变量信息:变量ID(Variable_ID),变量名称(Variable_NAME),归属变量集ID(VariableSet_ID)。
值信息:变量值ID(Value_ID),变量ID(Variable_ID),值内容(Value_Content)。
执行阶段解析用例中的步骤,分解步骤中包含的四个要素:操作对象、动作、校验方法、变量,动作和校验方法都属于关键字库中的具体抽象方法。
替换变量的具体参数,驱动相关关键字运行,实现用例步骤的逻辑。
生成用例代码,根据不同对象类型关联的执行器生成用例代码。
在不同执行器上执行生成的用例代码(qtp、selenium、appium、bat、shell、python、vbs等)。
普通测试人员能参与的部分变多,自动化测试工程师工作量变的简单;对测试工程师要求降低;后期维护成本降低;手工测试和自动化测试能通用;接口测试、功能测试、UI测试、APP测试用例模板差异变小,能通用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种通用自动化软件测试的解析方法,其特征在于,所述解析方法包括以下步骤:
A:将被测对象进行编辑得到具体的用例;
所述A步骤还包括以下步骤:
A1、将被测对象进行流程拆分,拆分成一个个简单的用例步骤;
所述A1步骤还包括以下步骤:
A11、将被测对象进行正确识别,录入关键字信息,并分析是否需要新增关键字,如是则进行新增关键字,如否则不需进行新增关键字;
A12、将关键字与正确识别的对象类型进行关联;
A13、关联完成则进行用例编写,首先提取共用变量,将涉及的变量信息进行录入,再将被测对象编写成用例步骤;
A2、将用例步骤所涉及的对象信息进行录入;
B:读取用例进行解析并生成用例代码;
所述B步骤还包括以下步骤:
B1、解析用例步骤,并将用例步骤分解成四个要素,包含操作对象、动作、校验方法和变量,动作和校验方法都属于关键字库中的具体抽象方法;
B2、替换变量的具体参数,驱动相关关键字运行,实现用例步骤的逻辑;
B3、生成用例代码,根据不同的对象类型关联的执行器生成用例代码;
B4、在不同执行器上执行生成的用例代码;
C:将生成的用例代码进行选择性执行,如果选择执行则启动执行器进行用例代码执行,如果选择不执行则返回到读取用例进行解析并生成用例代码;
D:用例代码执行完成则结束,如果未完成则继续执行直至完成则结束。
2.根据权利要求1所述的解析方法,其特征在于,所述A11步骤中的关键字包括关键字ID(FUNC_ID),关键字名称(FUNC_NAME),关键字接口代码(FUNC_CODE),代码对应执行器(EXEC_TYPE),代码依赖库(FUNC_LIB),代码路径(FUNC_PATH)。
3.根据权利要求2所述的解析方法,其特征在于,所述A12步骤中的对象类型包括对象类型ID(OBJ_TYPE_ID),对象类型名称
(OBJ_TYPE_NAME),执行器类型(EXEC_TYPE)。
4.根据权利要求3所述的解析方法,其特征在于,所述A13步骤中涉及的变量信息包括:
用例信息:用例信息包括用例ID(TESTCASE_ID),用例名称(TESTCASE_NAME),用例归属(TESTCASE_Adscription),用例路径(TESTCASE_PATH),用例创建人(TESTCASE_Creater);
步骤信息:步骤信息包括步骤ID(STEP_ID),用例ID(TESTCASE_ID),对象ID(OBJ_ID),动作关键字ID(FUNC_ID),检查关键字ID(CHECK_FUNC_ID),步骤序号(STEP_NUM);
变量集信息:变量集信息包括变量集ID(VariableSet_ID),变量集名称(VariableSet_NAME),关联用例ID(TESTCASE_ID);
变量信息:变量信息包括变量ID(Variable_ID),变量名称(Variable_NAME),归属变量集ID(VariableSet_ID);
值信息:值信息包括变量值ID(Value_ID),变量ID(Variable_ID),值内容(Value_Content)。
5.根据权利要求4所述的解析方法,其特征在于,所述A2步骤中涉及的对象信息包括对象ID(OBJ_ID),对象名称(OBJ_NAME),对象描述(OBJ_DESC),对象类型(OBJ_TYPE),执行器类型(EXEC_TYPE),对象定位识别信息(OBJ_CODE),是否动态对象(IS_Dynamic),父对象ID(Father_ID)。
CN201710950580.4A 2017-10-13 2017-10-13 一种通用自动化软件测试的解析方法 Active CN107622017B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710950580.4A CN107622017B (zh) 2017-10-13 2017-10-13 一种通用自动化软件测试的解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710950580.4A CN107622017B (zh) 2017-10-13 2017-10-13 一种通用自动化软件测试的解析方法

Publications (2)

Publication Number Publication Date
CN107622017A CN107622017A (zh) 2018-01-23
CN107622017B true CN107622017B (zh) 2020-09-15

Family

ID=61091905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710950580.4A Active CN107622017B (zh) 2017-10-13 2017-10-13 一种通用自动化软件测试的解析方法

Country Status (1)

Country Link
CN (1) CN107622017B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908909B (zh) * 2019-11-21 2023-09-22 望海康信(北京)科技股份公司 自动化测试方法、装置、存储介质及设备
CN112181849B (zh) * 2020-10-23 2023-07-25 网易(杭州)网络有限公司 测试用例识别方法、装置、设备及存储介质
CN113742250B (zh) * 2021-11-05 2022-03-29 广州易方信息科技股份有限公司 接口自动测试方法及装置
CN114826756A (zh) * 2022-05-10 2022-07-29 深信服科技股份有限公司 一种web漏洞检测方法及相关组件

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978258A (zh) * 2014-04-01 2015-10-14 ***股份有限公司 软件自动化测试方法及***
CN106991046A (zh) * 2017-03-24 2017-07-28 广州酷狗计算机科技有限公司 应用测试方法及装置
CN107193730A (zh) * 2017-05-11 2017-09-22 丹露成都网络技术有限公司 一种自动化的接口测试方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703692B2 (en) * 2014-07-30 2017-07-11 Hitachi, Ltd. Development supporting system
CN105068927A (zh) * 2015-08-04 2015-11-18 株洲南车时代电气股份有限公司 基于关键字驱动的城轨传动控制单元自动化测试方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978258A (zh) * 2014-04-01 2015-10-14 ***股份有限公司 软件自动化测试方法及***
CN106991046A (zh) * 2017-03-24 2017-07-28 广州酷狗计算机科技有限公司 应用测试方法及装置
CN107193730A (zh) * 2017-05-11 2017-09-22 丹露成都网络技术有限公司 一种自动化的接口测试方法

Also Published As

Publication number Publication date
CN107622017A (zh) 2018-01-23

Similar Documents

Publication Publication Date Title
CN107622017B (zh) 一种通用自动化软件测试的解析方法
CN101339534B (zh) 一种软件测试的方法及装置
CN109189479B (zh) 一种用于处理器指令集的并行自动化验证方法
CN102567201B (zh) 跨模型的图形用户界面测试脚本自动修复方法
US20070061641A1 (en) Apparatus and method for generating test driver
US20080307006A1 (en) File mutation method and system using file section information and mutation rules
US10353809B2 (en) System and method for executing integration tests in multiuser environment
CN111382070B (zh) 兼容性测试方法、装置、存储介质和计算机设备
CN111399853A (zh) 机器学习模型与自定义算子的模板化部署方法
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
CN104657274A (zh) 软件界面测试方法及装置
CN115952758A (zh) 芯片验证方法、装置、电子设备及存储介质
CN112131116A (zh) 一种嵌入式软件自动化回归测试方法
Butting et al. On the need for artifact models in model-driven systems engineering projects
Tierno et al. Open issues for the automotive software testing
CN109284222B (zh) 软件单元、数据处理***中的项目测试方法、装置及设备
Jin-Hua et al. The w-model for testing software product lines
CN113094252A (zh) 测试用例生成方法、装置、计算机设备及存储介质
CN104536880A (zh) 基于符号执行的gui程序测试用例扩增方法
CN109491904B (zh) 一种SparkSQL应用程序的自动化测试方法和装置
Goli et al. Through the looking glass: Automated design understanding of SystemC-based VPs at the ESL
Akhtar et al. A Systematic Literature Review on Software-refactoring Techniques, Challenges, and Practices
CN102693128A (zh) 用于生成***规范的方法、设备和计算机程序产品
CN115033434A (zh) 一种内核性能理论值计算方法、装置及存储介质
Melikov et al. System of designing test programs and modeling of the memory microcircuits

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210525

Address after: 1403a, building B, innovation building, 198 Daxin Road, majialong community, Nantou street, Nanshan District, Shenzhen, Guangdong 518000

Patentee after: Shenzhen xiaoxiliu Technology Co.,Ltd.

Address before: 518000 East, 7th floor, Yizhe building, Yuquan Road, Nanshan District, Shenzhen City, Guangdong Province (office only)

Patentee before: SHENZHEN SVI TECHNOLOGY Co.,Ltd.