CN112559339A - 一种基于数据模板引擎的自动化测试验证方法及其测试系统 - Google Patents

一种基于数据模板引擎的自动化测试验证方法及其测试系统 Download PDF

Info

Publication number
CN112559339A
CN112559339A CN202011446793.1A CN202011446793A CN112559339A CN 112559339 A CN112559339 A CN 112559339A CN 202011446793 A CN202011446793 A CN 202011446793A CN 112559339 A CN112559339 A CN 112559339A
Authority
CN
China
Prior art keywords
test
component
data
data template
components
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.)
Granted
Application number
CN202011446793.1A
Other languages
English (en)
Other versions
CN112559339B (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.)
China Trust Registration Co ltd
Original Assignee
China Trust Registration 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 China Trust Registration Co ltd filed Critical China Trust Registration Co ltd
Priority to CN202011446793.1A priority Critical patent/CN112559339B/zh
Publication of CN112559339A publication Critical patent/CN112559339A/zh
Application granted granted Critical
Publication of CN112559339B publication Critical patent/CN112559339B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于数据模板引擎的自动化测试验证方法及其测试系统,所述自动化测试验证方法中测试组件定义和所述测试组件引用相分离,所述测试组件定义及实现在组件管理模块中以代码形式存储,所述测试组件引用定义在数据库中,实际使用时通过指定的数据模版填写组件编号以及所述测试组件需要的参数进行调用,通过数据模板引擎实现组件间的灵活编排,并通过数据模板的形式实现整个自动化测试过程的数据传递,将测试代码与数据解耦,实现显著提升自动化测试的灵活性及可维护性,自动化测试数据之间实现相互隔离,避免数据“污染”,提高自动化测试验证的复用性。

Description

一种基于数据模板引擎的自动化测试验证方法及其测试系统
技术领域
本发明涉及但不限定于软件测试技术领域,尤指一种基于数据模板引擎的自动化测试验证方法及其测试系统。
背景技术
随着信息科技技术的快速发展,软件产品的质量越来越重要,一般通过软件测试保障软件产品的质量。现有的技术方案中,采用自动化测试方式测试软件产品通常采用如下的方式实现对待测软件的检测。
1)现有技术中没有将组件代码化定义和组件引用定义分开,不使用数据库,必然将组件引用关系固化在代码中,每次调整用例中的组件信息,就会进行系统的发布;
2)没有使用数据模板,自动化测试所应用的底层数据就需要通过硬编码的方式进行填充,数据准备及操作的灵活性及可拓展性大大降低。
为了提高自动化测试效率,现有技术中也采用组件化的方式实现自动化验证过程的编排,或应用文件存储测试数据,但在此类方案中,对于组件的编排过程以及测试数据的准备,大都是通过硬编码(即将测试组件的引用也放在代码中,如果需要调整自动化测试过程中组件之间的排列、或增加、删除组件,都需要修改代码)或者xml配置(XML本身也是在系统工程当中,如果修改了XML,那么也需要将整个自动化测试系统的代码重新编译部署)的方式实现。
现有技术中存在如下的技术问题:在待测软件进行自动化测试验证过程中未能实现测试代码与数据的完全分离,导致自动化测试流程编排的灵活性大大降低,可维护性较差。
有鉴于此,如何设计一种基于数据模板引擎的自动化测试验证方法及其测试系统,是业内相关技术人员亟待解决的一项课题。
发明内容
为了提高现有技术中自动化测试流程编排的灵活性以及提供按测试数据的可维护性,本发明将测试组件的代码接口定义及底层代码实现放在了自动化测试系统中的组件管理模块(也即组件代码库),而自动化测试流程编排中涉及到组件的引用环节及其所需要的测试数据是在数据库中存储,如果需要调整组件次序或进行增删,直接调整数据库数据即可,不需要再去改动自动化测试系统中的代码,即可实现自动化测试过程组件编排及数据的灵活调整。
本发明使用了数据模版引擎以及数据库设计、组件接口的注解设计,并将这些设计串联起来,显著提高了组件编排及数据准备的灵活性。这种灵活性的提高,可以在不修改自动化测试系统组件管理模块中底层代码的情况下,通过本发明实现载体所提供的用户界面直接对流程模板及组件进行编辑操作,直接修改底层数据,通过配置的调整快速准确地满足自动化测试工作的需要。
本发明为了解决上述存在的技术问题,提出了一种基于数据模板引擎的自动化测试验证方法,所述自动化测试验证方法中测试组件定义和所述测试组件引用相分离,所述测试组件定义及实现在组件管理模块中以代码形式存储,所述测试组件引用定义在数据库中,实际使用时通过指定的数据模版填写组件编号以及所述测试组件需要的参数进行调用,包括如下步骤:创建自动化测试配置流程,将自动化测试验证过程拆解成相互独立的所述测试组件,所述测试组件通过代码方式实现,然后将所述测试组件按照一定的规则编号存储在所述数据库中,所述测试组件独立对待测软件进行测试;配置测试组件参数及执行顺序并保存,采用预先设计创建的数据模板,对自动化测试用例中所需要的测试组件进行顺序编排,所述顺序即代表自动化测试执行时各所述测试组件的执行顺序;同时所述测试组件执行过程中所需要的测试输入数据、测试预期结果也存放在所述数据模板中;采用承载测试程序的载体测试模块对待测软件进行自动化测试,所述测试程序在测试过程中使用所述数据模板作为测试过程的测试条件;用于提高自动化测试流程编排的灵活度以及测试数据的可维护性。
进一步地,所述采用承载测试程序的载体测试模块对待测软件进行自动化测试,具体步骤包括:
步骤a:将测试过程拆解成复数个所述测试组件;
步骤b:为所述测试用例创建一个所述数据模板;
步骤c:将所述测试组件按所述顺序进行编号,所述编号按照测试过程的实际执行顺序对所述测试组件进行对应次序编排;
步骤d:对所述测试组件的输入进行数据准备;
步骤e:将所述测试组件的预期输出写入所述数据模板;
步骤f:通过所述数据库调用所述测试组件的代码程序,对待测试软件进行测试,得到所述测试组件的实际输出;
步骤g:对所述测试组件的实际输出进行格式转换;
步骤h:将预期输出和转换后的实际输出进行对比。
更进一步地,所述步骤a包括:将整体的测试过程拆解成复数个具有相对独立功能的所述测试组件,明确其所述测试组件需要的输入,通过开发语言将其所述测试组件在组件实体模块中进行代码实现,将代码存储在所述组件管理模块中,将所述测试组件对应的所述编号并存储在数据库中,所述测试每个组件最终确定一个唯一的所述编号;
所述测试组件可包含测试数据准备组件、测试执行组件、结果校验组件、结果记录组件、数据清理组件。对自动化测试全流程验证过程组件化,将软件验证过程组件化,每一个验证步骤是一个组件,通过数据模板引擎实现组件间的灵活编排,并通过数据模板的形式实现整个自动化测试过程的数据传递,将测试代码与数据解耦,大幅提升自动化测试的灵活性及可维护性。
更进一步地,步骤c包括:按照所述测试组件执行过程的顺序,将所需要的所述测试组件按照该顺序进行排列,排列过程使用所述测试组件对应的所述编号,整个排列过程及结果均在创建的数据模板中操作及存储。多个组件通过编排,完成一个软件的完整功能验证。编排顺序在后面的组件可以使用其顺位之前组件的执行数据。
更进一步地,对所述测试组件中所定义的输入参数进行数据准备,包括:在数据模板中存放测试执行过程所需要的测试数据。
更进一步地,步骤g包括:将待测软件的实际输出转换为可与所述数据模板中的预期输出进行对比的实际输出。
更进一步地,步骤h包括:根据通过准则对预期输出和转换后的实际输出进行对比;当对比结果符合通过准则,所述待测软件通过测试;当对比结果不符合通过准则,将对比结果中的不一致测试信息进行提取,提取的信息包括:不一致测试信息对应的测试标识、测试输入、预期输出、实际输出、通过准则和测试结果。
更进一步地,根据待测软件和数据模板集合,生成用于测试所述待测软件的自动化测试代码或脚本。
本发明更公开一种基于数据模板引擎的自动化测试验证系统,所述自动化测试验证系统包括:测试设备和待测设备,所述待测设备包括用于运行待测软件的计算机,所述测试设备中配置有软件集成开发工具和测试程序;所述待测设备中被配置为数据化测试用例集合,并采用承载测试程序的载体测试模块对待测软件进行自动化测试,所述测试程序在测试过程中使用所述数据模板作为测试条件。
进一步地,所述测试设备中,自动化测试验证方法中测试组件定义和所述测试组件引用相分离,所述测试组件定义及实现在代码库中以代码形式存储,所述测试组件引用定义在数据库中,实际使用时通过指定的数据模版填写组件编号以及所述测试组件需要的参数进行调用。
所述基于数据模板引擎的自动化测试验证系统可以采用基于数据模板引擎的自动化测试验证方法对待测软件进行自动化测试。
其中,调用数据准备组件将软件验证过程所需要的数据插入到数据库中(需要插入到数据库中的数据在模板中填写,具体配置方式参加表1:数据模板表)。
本发明本方相较于现有技术案的优势在于:1)根据不同的自动化测试需求生成不同类别的测试验证数据,实现自动化测试代码与测试数据的分离;2)自动化测试数据之间实现相互隔离,避免数据“污染”;3)通过自动化测试代码与测试数据的相互分离,显著提升自动化测试系统的灵活性及可维护性;4)具有较强的通用性,可应用于自动化测试的大多数场景,针对HTTP、TCP、FTP等多种网络协议也有良好的适配性及可拓展性。
附图说明
附图是用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施说明一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明提供的一种基于数据模板引擎的自动化测试方法的流程图;
图2为图1所示基于数据模板引擎的自动化测试方法的原理图;
图3为本发明提供的基于数据模板引擎的自动化测试方法中测试组件工作模式图。
具体实施方式
下面结合附图详细说明本发明的具体实施例。然而,应当将本发明理解成并不局限于以下描述的这种实施方式,并且本发明的技术理念可以与其他公知技术或功能与那些公知技术相同的其他技术组合实施。
在以下具体实施例的说明中,为了清楚展示本发明的结构及工作方式,将借助诸多方向性词语进行描述,但是应当将“前”、“后”、“左”、“右”、“外”、“内”、“向外”、“向内”、“轴向”、“径向”等词语理解为方便用语,而不应当理解为限定性词语。其中,
组件管理模块:即组件代码库及其配套的管理能力,组件代码库用来存放对相互独立的测试组件进行定义和实现的代码,配套的管理能力包含组件的新增、修改、删除等功能;
组件实体模块:专门指测试组件的定义及实现部分;
自动化测试用例:是指通过自动化测试系统进行批量上传或单个建立的测试用例,其信息是存储于数据库中的,是把人工驱动的测试通过自动化测试的系统或软件转化为自动化执行的过程;
数据清理:是指通过测试清理组件,在自动化测试执行结束后,将前面测试数据准备组件所插入的测试数据进行清理,避免脏数据的出现;
入参定义:是指测试组件对输入参数的定义;
组件入参:指测试组件的输入参数;
数据模板引擎:是指数据模板及其数据都是存储在数据库中的,自动化测试系统有模板管理的模块,可在前端界面对数据模板及其数据进行管理。
为了实现自动化测试过程中,提升自动化测试系统的灵活性及可维护性,本发明通过将自动化测试过程拆分为多个相互之间独立的测试组件,每个测试组件实现一个独立的测试功能,测试组件的定义及实现通过代码形式实现,且该代码存放在组件管理模块以底层代码的形式储存,对测试组件以一定规则进行编号,通过编号对测试组件进行引用,对应的编号被存放在数据库中,配置测试组件参数及执行顺序并保存在数据模板中,测试程序在测试过程中使用数据模板作为测试过程的测试条件。本发明实现了将自动化测试代码与测试数据完全分离,显著提高自动化测试系统的灵活性及可维护性,且自动化测试数据之间实现相互隔离,避免数据“污染”。
图1为本发明提供的一种基于数据模板引擎的自动化测试方法的流程图;其中包括创建自动化测试配置流程,目的是确定是否测试设备中测试组件是否完整,针对待测试软件而言,所需的测试组件在测试设备中均有包含,则完成测试组件的配置,配置结束,若是测试设备中没有包含所有所需的测试设备,则需要引入其他测试组件。
在引入其他测试组件时,配置测试组件参数及执行顺序,并将其保存至数据库中;当配置组件参数和执行顺序完成后,打开数据配置模板,配置所需要的的测试数据,自动化测试执行,保存测试执行结果日志,在进行下一次测试组件测试时,清理测试数据。
下文中将对待检测软件的自动化测试过程进行详细的说明。
1.将测试过程进行拆解成相互之间独立的测试组件;
测试组件定义的接口及代码在整个自动化测试系统的组件实体模块中进行定义并实现,将一个完整的测试过程进行阶段性的拆分,最终拆解成功能相互独立的组件,例如一个接口调用(数据库插入)的测试过程可以具体拆分为:测试数据准备、报文填写、发送接口报文、返回结果校验、数据库结果查询、数据清理等若干步骤,这些步骤的特点是具有通用性,可以在不同的测试场景中进行复用。针对HTTP、TCP、FTP等多种网络协议也有良好的适配性及可拓展性。在自动化测试系统代码的组件实体模块接口定义完成后,使用面向对象语言予以实现,如JAVA、Python等,同时在自动化测试系统的组件配置页面添加测试组件,最终得到测试组件编号,将测试组件编号存放在数据库中,使用时在测试组件流程的模板中自顶向下的引用测试组件编号,自动化测试系统的执行模块在解析数据模板时会采用面向对象的反射技术调用相应的代码执行自动化测试,实现测试组件的引用。
其中,如果某一个需要的测试组件在测试设备中没有被包含,仅需要在自动化测试系统的组件管理模块进行代码实现,然后自动化测试系统的测试组件新增界面中进行新增,这样就会在数据库中的测试组件表新增该测试组件,接下来的自动化测试流程就可以通过数据库中的数据直接引用该测试组件。下文给出了自动化测试组件流程数据模板的样例,见表1。
表1数据模板表
Figure BDA0002831226290000071
Figure BDA0002831226290000081
如表1中的样例,Template_Id为测试组件的引用;Input_Parameters为测试组件所需要的输入参数(代码中有定义);Expected_Parameters为测试组件期望的返回值(代码中有定义),该返回值可供下一个测试组件调用。本发明的不同之处在于,只要测试数据之间不存在并发冲突,不同自动化测试用例下的同一个测试组件可以并发执行,从而大幅提升了自动化测试的执行效率。
2.测试组件规范、实例化过程、测试结果说明;
如下为测试组件规范、测试组件实例化过程、测试组件结果详细介绍。
2.1测试组件规范的定义:
示例:
Figure BDA0002831226290000082
测试组件必须实现以上的方法,此方法使用ComponentMethod注解申明。其中该方法是指本方法是在数据库中存储组件引用的,调用测试组件程序时,会首先读取到数据库中该组件的引用,然后应用JAVA反射机制获取该组件的代码并执行。方法入参使用ComponentParam注解标注组件参数,组件入参可以多个,如:
Figure BDA0002831226290000091
1)注解ComponentMethod标识该方法是组件的执行方法
2)注解ComponentParam标识该参数是组件定义的输入参数,包括参数名(key),参数描述(desc),以及参数类型(type)。
2.2测试组件的实例化过程
每个测试组件会在多个软件验证用例中被实例化使用,上述使用ComponentParam标识的参数,同样会在不同的软件验证用例中被实例化。对应的表2结构设计如下:
表2测试组件参数表
Figure BDA0002831226290000092
Figure BDA0002831226290000101
其中,表2中PARAMETER_NAME为参数名称;PARAMETER_VALUE为参数值;PARAMETER_TYPE为参数类型。
表3测试组件配置表
属性 格式
ID Integer(20)
COMPONENT_NAME Varchar(128)
COMPONENT_DESC Varchar(512)
BEAN_NAME Varchar(128)
其中,表3中COMPONENT_NAME为组件名称;COMPONENT_DESC为组件描述;BEAN_NAME为对象名称。
表4测试组件实例表
Figure BDA0002831226290000102
Figure BDA0002831226290000111
其中,表4中属性部分的中文含义如下:
COMPOENT_ID为组件ID;INSTANCE_NAME为实例名称;INSTANCE_DESC为实例描述;TEMPLATE_ID为模板ID。
图3所示为本发明提供的基于数据模板引擎的自动化测试方法中测试组件工作模式图。当测试组件在软件验证用例中被引用时,就会在测试组件实例表及组件参数表中落地配置数据。例如同一个测试组件在不同的自动化测试用例中被调用执行时,会构造多个测试组件实例对象,不同的实例对象对应的输入参数及参数配置也各有不同,从而形成了各自动化测试用例独有的测试数据。
2.3测试组件的运行
表5组件执行结果表
属性 格式
ID Integer(20)
BATCH_ID Integer(20)
COMPOENT_INSTANCE_ID Integer(20)
EXE_STATUS Varchar(64)
EXE_RESULT Varchar(64)
COMPONENT_EXE_RESULT Varchar(4096)
其中,表5中属性部分的中文含义如下:
BATCH_ID为批次号;COMPOENT_INSTANCE_ID为指组件实例ID;EXE_STATUS为运行状态;EXE_RESULT为运行结果;COMPONENT_EXE_RESULT为组件执行结果。
测试组件的运行结果保存在测试组件执行结果表中。测试组件运行,即通过反射方式找到使用注解ComponentMethod标识的方法,同时通过反射,将方法参数传递给此方法,并执行。其中,反射机制是面向对象高级语言的一种特性,在本例中是通过子类对象找到父类,并通过父类调用执行;方法指的是使用注解ComponentMethod标识的方法,具体来说是使用JAVA等语言编写的类或函数。
3.调用测试程序,对测试软件进行测试,得到测试的实际输出;
配置过程如图2所示,整体过程如下:
a.测试组件执行时,首先会初始化模版引擎,如涉及数据准备,数据准备组件会读取指定的数据模板文件将测试数据插入到被测系统的数据库中。
b.对用到的测试组件进行排序,选出下一个可执行的测试组件。
c.通过模版引擎,将测试组件参数配置中的变量部分,替换成运行时数据,也即执行顺序为上一个测试组件得到的结果。
d.通过反射机制获取组件的可执行方法及对应的参数信息。按照入参定义的顺序与(c)中计算的参数进行匹配,并执行组件的执行方法。
e.将测试组件执行结果保存到数据模版引擎上下文中,以供后续的测试组件使用此测试组件的执行结果。
f.计算下一个可执行测试组件,进入循环,直到所有测试组件执行完成。
首先以本发明一个实际的应用场景来说明上述调用测试程序的过程。如身份核验系统查询人员信息接口的全流程验证过程,分为4个步骤:
a.发起人员信息的数据准备,返回插入数据的id_a。
b.通过id_a,调用被测系统提供的查询接口获取对应的数据,验证系统功能是否满足期望,判断整个测试执行过程的正确性。
c.将测试执行结果写入到测试执行日志中。
d.清理a步骤中所插入的测试数据。
本发明中,将a、b、c、d四个验证步骤以4个测试组件的方式实现,并将a、b、c、d测试组件按照指定顺序写入到数据模板引擎中,同时将a测试组件需要插入的数据提前写入到事先准备好的数据模板中。测试组件的功能具有独立性,测试组件b、c、d可以和测试组件a组合,也可以和其它测试组件组合,从而完成其它应用场景的验证,通过组件化的方式可以显著提高测试代码的复用性,同时测试组件a、b、c、d是相互独立的,因此,测试组件之间的组合和调用更加灵活,从而提升自动化测试的灵活性以及可维护性。
4.对测试的实际输出进行格式转换;
本发明的测试结果转换组件会将测试的实际输出转换成JSON格式,此处是满足用户输入的格式,当然,实际输出转换也可转换为其他的格式,例如文本格式,XML格式。
5.将预期输出和转换后的实际输出进行对比。
本发明的测试结果比对组件会将步骤4中得到的格式化后的实际结果输出与预期结果输出进行比对,并最终得到对比结果,并将其写入到数据模板中的执行结果区域。
其中,当对比结果符合通过准则,通过测试;当对比结果不符合通过准则,将对比结果中的不一致测试信息进行提取,提取的信息包括:不一致测试信息对应的测试标识、测试输入、预期输出、实际输出、通过准则和测试结果。预期数据在数据模板中指定,这个对比可以清楚判断测试执行过程的正确性,本发明方案会详细标明每一个测试组件执行的成功与否,从而帮助使用者快速定位问题。
本发明公开了一种基于数据模板引擎的自动化测试验证方法的系统,其中,所述自动化测试验证系统包括:测试设备和待测设备,所述待测设备包括用于运行待测软件的计算机,所述测试设备中配置有软件集成开发工具和测试程序;所述待测设备中被配置为数据化测试用例集合,并采用承载测试程序的载体测试模块对待测软件进行自动化测试,所述测试程序在测试过程中使用所述数据模板作为测试条件。
其中,在测试设备中,自动化测试验证方法中测试组件定义和所述测试组件引用相分离,所述测试组件定义及实现在组件管理模块(代码库)中以代码形式存储,所述测试组件引用定义在数据库中,实际使用时通过指定的数据模版填写组件编号以及所述测试组件需要的参数进行调用。
所述的自动化测试系统中采用本申请中保护的自动化测试方法进行工作,同样在测试设备中将测试组件定义以及实现存放在和测试组件引用定义不同的位置,测试组件定义及实现采用底层代码形式在组件实体模块中实现各个测试组件的定义,存放在测试设备中的组件管理模块中;测试组件引用的定义存放在数据库中,其中数据库中的测试组件引用定义可以在用户界面中显示,方便用户调用。
自动化测试系统中涉及到的其它验证方法和上述自动化测试方法相同,在此不再进行赘述。
本发明相较于现有技术而言,具有如下优势:根据不同的自动化测试需求生成不同类别的测试验证数据,实现自动化测试代码与测试数据的分离;自动化测试数据之间实现相互隔离,避免数据“污染”;通过自动化测试代码与测试数据的相互分离,显著提升自动化测试系统的灵活性及可维护性;具有较强的通用性,可应用于自动化测试的大多数场景,针对HTTP、TCP、FTP等多种网络协议也有良好的适配性及可拓展性。
本说明书中所述的只是本发明的较佳具体实施例,以上实施例仅用以说明本发明的技术方案而非对本发明的限制。凡本领域技术人员依本发明的构思通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在本发明的范围之内。

Claims (10)

1.一种基于数据模板引擎的自动化测试验证方法,其特征在于:所述自动化测试验证方法中测试组件定义和所述测试组件引用相分离,所述测试组件定义及实现在组件管理模块中以代码形式存储,所述测试组件引用定义在数据库中,实际使用时通过指定的数据模版填写组件编号以及所述测试组件需要的参数进行调用,包括如下步骤:
创建自动化测试配置流程,将自动化测试验证过程拆解成相互独立的所述测试组件,所述测试组件通过代码方式实现,然后将所述测试组件按照一定的规则编号存储在所述数据库中,所述测试组件独立对待测软件进行测试;
配置测试组件参数及执行顺序并保存,采用预先设计创建的数据模板,对自动化测试用例中所需要的测试组件进行顺序编排,所述顺序即代表自动化测试执行时各所述测试组件的执行顺序;同时所述测试组件执行过程中所需要的测试输入数据、测试预期结果也存放在所述数据模板中;
采用承载测试程序的载体测试模块对待测软件进行自动化测试,所述测试程序在测试过程中使用所述数据模板作为测试过程的测试条件;
用于提高自动化测试流程编排的灵活度以及测试数据的可维护性。
2.根据权利要求1所述的基于数据模板引擎的自动化测试验证方法,其特征在于,所述采用承载测试程序的载体测试模块对待测软件进行自动化测试,具体步骤包括:
步骤a:将测试过程拆解成复数个所述测试组件;
步骤b:为所述测试用例创建一个所述数据模板;
步骤c:将所述测试组件按所述顺序进行编号,所述编号按照测试过程的实际执行顺序对所述测试组件进行对应次序编排;
步骤d:对所述测试组件的输入进行数据准备;
步骤e:将所述测试组件的预期输出写入所述数据模板;
步骤f:通过所述数据库调用所述测试组件的代码程序,对待测试软件进行测试,
得到所述测试组件的实际输出;
步骤g:对所述测试组件的实际输出进行格式转换;
步骤h:将预期输出和转换后的实际输出进行对比。
3.根据权利要求2所述的基于数据模板引擎的自动化测试验证方法,其特征在于,所述步骤a包括:
将整体的测试过程拆解成复数个具有相对独立功能的所述测试组件,明确其所述测试组件需要的输入,通过开发语言将其所述测试组件在组件实体模块中进行代码实现,将代码存储在所述组件管理模块中,将所述测试组件对应的所述编号并存储在数据库中,所述测试每个组件最终确定一个唯一的所述编号;
所述测试组件可包含测试数据准备组件、测试执行组件、结果校验组件、结果记录组件、数据清理组件。
4.根据权利要求2所述的基于数据模板引擎的自动化测试验证方法,其特征在于,步骤c包括:
按照所述测试组件执行过程的顺序,将所需要的所述测试组件按照该顺序进行排列,排列过程使用所述测试组件对应的所述编号,整个排列过程及结果均在创建的数据模板中操作及存储。
5.根据权利要求2所述的基于数据模板引擎的自动化测试验证方法,其特征在于,对所述测试组件中所定义的输入参数进行数据准备,包括:
在数据模板中存放测试执行过程所需要的测试数据。
6.根据权利要求2所述的基于数据模板引擎的自动化测试验证方法,其特征在于,步骤g包括:
将待测软件的实际输出转换为可与所述数据模板中的预期输出进行对比的实际输出。
7.根据权利要求2所述的基于数据模板引擎的自动化测试验证方法,其特征在于,步骤h包括:
根据通过准则对预期输出和转换后的实际输出进行对比;
当对比结果符合通过准则,所述待测软件通过测试;
当对比结果不符合通过准则,将对比结果中的不一致测试信息进行提取,提取的信息包括:不一致测试信息对应的测试标识、测试输入、预期输出、实际输出、通过准则和测试结果。
8.根据权利要求1-7任一项所述的基于数据模板引擎的自动化测试验证方法,其特征在于,还包括:
根据待测软件和数据模板集合,生成用于测试所述待测软件的自动化测试代码或脚本。
9.一种基于数据模板引擎的自动化测试系统,其特征在于,所述自动化测试系统采用权利要求1-8任一项中记载的所述验证方法,所述自动化测试验证系统包括:
测试设备和待测设备,所述待测设备包括用于运行待测软件的计算机,所述测试设备中配置有软件集成开发工具和测试程序;
所述待测设备中被配置为数据化测试用例集合,并采用承载测试程序的载体测试模块对待测软件进行自动化测试,所述测试程序在测试过程中使用所述数据模板作为测试条件。
10.根据权利要求9所述的基于数据模板引擎的自动化测试系统,其特征在于,所述测试设备中,自动化测试验证方法中测试组件定义和所述测试组件引用相分离,所述测试组件定义及实现在组件管理模块中以代码形式存储,所述测试组件引用定义在数据库中,实际使用时通过指定的数据模版填写组件编号以及所述测试组件需要的参数进行调用。
CN202011446793.1A 2020-12-11 2020-12-11 一种基于数据模板引擎的自动化测试验证方法及其测试系统 Active CN112559339B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011446793.1A CN112559339B (zh) 2020-12-11 2020-12-11 一种基于数据模板引擎的自动化测试验证方法及其测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011446793.1A CN112559339B (zh) 2020-12-11 2020-12-11 一种基于数据模板引擎的自动化测试验证方法及其测试系统

Publications (2)

Publication Number Publication Date
CN112559339A true CN112559339A (zh) 2021-03-26
CN112559339B CN112559339B (zh) 2023-06-13

Family

ID=75061421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011446793.1A Active CN112559339B (zh) 2020-12-11 2020-12-11 一种基于数据模板引擎的自动化测试验证方法及其测试系统

Country Status (1)

Country Link
CN (1) CN112559339B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115248585A (zh) * 2022-09-20 2022-10-28 平安银行股份有限公司 基于控制器引擎的自动化测试执行方法、控制器及系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028856A1 (en) * 2001-08-01 2003-02-06 Apuzzo Joseph T. Method and apparatus for testing a software component using an abstraction matrix
US20040143819A1 (en) * 2003-01-10 2004-07-22 National Cheng Kung University Generic software testing system and mechanism
US20070028217A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Testing software using verification data defined independently of the testing code
CN102043716A (zh) * 2010-12-24 2011-05-04 南京联创科技集团股份有限公司 基于业务驱动的软件自动化测试方法
US20130019126A1 (en) * 2011-07-15 2013-01-17 Joachim Frohlich Method and System for Test Suite Control
US20140181793A1 (en) * 2010-11-10 2014-06-26 Net Magnus Ltd. Method of automatically testing different software applications for defects
CN104407971A (zh) * 2014-11-18 2015-03-11 中国电子科技集团公司第十研究所 自动化测试嵌入式软件的方法
CN107678941A (zh) * 2017-08-31 2018-02-09 深圳市小牛在线互联网信息咨询有限公司 应用程序测试的方法及装置、存储介质和计算机设备
CN110309071A (zh) * 2019-06-27 2019-10-08 杭州数梦工场科技有限公司 测试代码的生成方法及模块、测试方法及系统
CN110321281A (zh) * 2019-05-24 2019-10-11 中国工程物理研究院计算机应用研究所 基于混合自动化测试框架的Web测试平台及测试方法
CN111382065A (zh) * 2018-12-29 2020-07-07 贵阳忆芯科技有限公司 基于测试模板的验证流程管理系统及其方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028856A1 (en) * 2001-08-01 2003-02-06 Apuzzo Joseph T. Method and apparatus for testing a software component using an abstraction matrix
US20040143819A1 (en) * 2003-01-10 2004-07-22 National Cheng Kung University Generic software testing system and mechanism
US20070028217A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Testing software using verification data defined independently of the testing code
US20140181793A1 (en) * 2010-11-10 2014-06-26 Net Magnus Ltd. Method of automatically testing different software applications for defects
CN102043716A (zh) * 2010-12-24 2011-05-04 南京联创科技集团股份有限公司 基于业务驱动的软件自动化测试方法
US20130019126A1 (en) * 2011-07-15 2013-01-17 Joachim Frohlich Method and System for Test Suite Control
CN104407971A (zh) * 2014-11-18 2015-03-11 中国电子科技集团公司第十研究所 自动化测试嵌入式软件的方法
CN107678941A (zh) * 2017-08-31 2018-02-09 深圳市小牛在线互联网信息咨询有限公司 应用程序测试的方法及装置、存储介质和计算机设备
CN111382065A (zh) * 2018-12-29 2020-07-07 贵阳忆芯科技有限公司 基于测试模板的验证流程管理系统及其方法
CN110321281A (zh) * 2019-05-24 2019-10-11 中国工程物理研究院计算机应用研究所 基于混合自动化测试框架的Web测试平台及测试方法
CN110309071A (zh) * 2019-06-27 2019-10-08 杭州数梦工场科技有限公司 测试代码的生成方法及模块、测试方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杜巍;: "基于Java反射的APP自动化混合测试框架的研究与实现", 移动通信 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115248585A (zh) * 2022-09-20 2022-10-28 平安银行股份有限公司 基于控制器引擎的自动化测试执行方法、控制器及系统

Also Published As

Publication number Publication date
CN112559339B (zh) 2023-06-13

Similar Documents

Publication Publication Date Title
US8010844B2 (en) File mutation method and system using file section information and mutation rules
US20080086627A1 (en) Methods and apparatus to analyze computer software
CN112394942B (zh) 基于云计算的分布式软件开发编译方法及软件开发平台
CN106843840B (zh) 一种基于相似度分析的源代码版本演化注释复用方法
CN110109681B (zh) 不同平台间代码的转换方法及系统
US20040060039A1 (en) Program and process for generating data used in software function test
CN109344053B (zh) 接口覆盖测试方法、系统、计算机设备和存储介质
US8327343B2 (en) Method and system for optimizing source code
US20110196898A1 (en) Database management program and database management apparatus
CN111610744B (zh) 基于工艺时序的逻辑控制程序生成方法、系统和存储介质
US7444618B2 (en) Automatic generation of batch programs with identification, insertion of invariables, declarative statements and variables with the use of place-marks
CN111124892B (zh) 基于命令行的自动化测试方法及系统
CN110990282B (zh) 一种自动化单元测试方法
CN112559339A (zh) 一种基于数据模板引擎的自动化测试验证方法及其测试系统
CN108897678B (zh) 静态代码检测方法和静态代码检测系统、存储设备
CN111259619B (zh) 配置对象的控制方法、装置、存储介质及验证平台
CN112947896A (zh) 一种基于有向图的组件依赖分析方法
CN109359039B (zh) 一种提升Sahi自动化测试效率的方法
KR102096017B1 (ko) 추상 구문 트리를 기반으로 소스코드를 임베딩하여 소프트웨어 버그를 예측하는 방법 및 시스템
CN116340940A (zh) 代码识别方法、终端设备及存储介质
CN112363729B (zh) 用于静态分析的多编译器混合编译的监控方法及装置
CN111597202B (zh) 一种基于分形理论的战场态势信息按需提取方法
CN114063982A (zh) 一种基于多场景应用的自动构建功能组件的方法
CN113672509A (zh) 自动化测试方法、装置、测试平台及存储介质
CN113268231A (zh) 一种数据采集比对方法

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