CN104536897B - 基于关键字的自动测试方法及系统 - Google Patents
基于关键字的自动测试方法及系统 Download PDFInfo
- Publication number
- CN104536897B CN104536897B CN201510023579.8A CN201510023579A CN104536897B CN 104536897 B CN104536897 B CN 104536897B CN 201510023579 A CN201510023579 A CN 201510023579A CN 104536897 B CN104536897 B CN 104536897B
- Authority
- CN
- China
- Prior art keywords
- analysis result
- information
- module
- logic branch
- keyword
- 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
本发明公开了一种基于关键字的自动测试方法及系统,所述方法包括:从步骤表中读取步骤信息;根据所述步骤信息的对象关键字字段的值,从对象表中获取与该对象关键字对应的对象的信息;根据所述获取的对象的信息判断所述对象是否为逻辑分支关键字对象;以及如果所述对象是逻辑分支关键字对象,则对所述对象进行逻辑分支控制处理。通过采用本发明中的基于关键字的自动测试方法及系统,可实现测试系统在流程执行过程中不同条件下的选择执行,使得运行过程的容错性更好,从而提高运行效率。
Description
技术领域
本发明涉及数据处理领域,更为具体而言,涉及一种基于关键字的自动测试方法及系统。
背景技术
为了提高测试效率和准确性,越来越多的测试工作引入了自动化测试的思想和方法,随着自动化测试工具的发展,自动化测试更加容易实现且更高效。实践证明,软件自动化测试技术帮助软件开发和测试人员在更短的时间内开发出更高质量的产品,通过代替频繁重复的手工测试从而节省了大量的时间开支。同时,自动化测试技术也避免了手工测试出现的人为错误,完成了许多手工测试无法实现的工作。
现有的自动化测试方式大致分为两种:代码驱动和关键字驱动。这两种测试方式都是利用机器行为代替手工的行为。代码驱动的测试系统需要测试人员通过编写符合一定条件的脚本来实现操作的逻辑;而关键字驱动的测试系统则不需要使用人员具备代码基础,通过一种友好的设计方式提供专门的解析语法,使用者通过学习这种友好的语法来完成测试行为的逻辑。
然而现有的基于关键字的测试系统无法实现逻辑分支控制,只能单一的执行流程,同时在执行的过程中容错很差,无法做到运行中判定是否已经出错,导致运行效率不高。
发明内容
为了解决当前现有的基于关键字的测试系统无法实现逻辑分支控制所导致的运行效率不高的问题,本发明的实施方式提供了一种基于关键字的自动测试方法及系统。
一方面,本发明实施方式提供了一种基于关键字的自动测试方法,所述方法包括:
从步骤表中读取步骤信息;
根据所述步骤信息的对象关键字字段的值,从对象表中获取与该对象关键字对应的对象的信息;
根据所述获取的对象的信息判断所述对象是否为逻辑分支关键字对象;以及
如果所述对象是逻辑分支关键字对象,则对所述对象进行逻辑分支控制处理。
相应的,本发明实施方式还提供了一种基于关键字的自动测试系统,所述系统包括:
读取模块,用于从步骤表中读取步骤信息;
获取模块,用于根据所述步骤信息的对象关键字字段的值,从对象表中获取与该对象关键字对应的对象的信息;
判断模块,用于根据所述获取的对象的信息判断所述对象是否为逻辑分支关键字对象;
第一执行模块,用于如果所述对象是逻辑分支关键字对象,则对所述对象进行逻辑分支控制处理。
实施本发明的各种实施方式具有以下有益效果:可实现测试系统在流程执行过程中不同条件下的选择执行,使得运行过程的容错性更好,从而提高测试系统的运行效率。
附图说明
图1是根据本发明实施方式的基于关键字的自动测试方法的流程图;
图2是本发明的基于关键字的自动测试方法的更详细实施例;
图3是根据本发明实施方式的基于关键字的自动测试系统的架构图;
图4示出了图3所示的第一执行模块400的框图;
图5示出了图4所示的执行子模块420的框图;
图6是根据本发明实施方式的系统中的第二执行模块500的框图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
图1是根据本发明实施方式的基于关键字的自动测试方法的流程图;参见图1,该方法可以包括:
S1,从步骤表中读取步骤信息;其中,步骤表是存储待执行用例的所有步骤的表,该表主要包含以下三个字段的属性信息:关键字、行为和参数。
S2,根据步骤信息的对象关键字字段的值,从对象表中获取与对象关键字对应的对象的信息;其中,步骤信息是指存储在步骤表中每一步步骤的内容,对应于步骤表的各字段,关键字字段表明该步骤实际操作的对象,行为字段表明该步骤需要执行的行为,参数字段表明在执行这一步骤的时候可能传入的参数。
其中,对象包括但不仅限于以下类型:1.待测系统中的控件对象,涉及点击,勾选,获取文本,判断是否可见等操作。2.文件资源,涉及创建,删除,执行(可执行脚本,第三方工具)等操作。3.系统资源,如注册表、服务、进程等,涉及创建,删除,关闭等操作。4.逻辑控制方法,如if…else分支判断,try…catch异常处理等。5.自定义的方法接口,后台会对一些完成特定功能可重复使用的步骤进行封装形成函数库。上述2、3和4类型数据是抽象于相对静态的资源,故针对不同的待测系统不涉及替换操作;上述1和5等类型,只需根据待测产品在存储系统中对数据进行相应更新即可。所有数据对象在存储系统中都采用关键字进行描述。在步骤表中,通过关键字来表示某种具体对象,例如:用“File”来表示文件对象,相对应的,文件对象包含的行为有复制、创建、删除等。又如,用“if…true”表示逻辑分支控制关键字对象,这个关键字所在的步骤就表示要进行逻辑分支判断操作。在编写测试用例的时候,通过对对象和操作的组合实现具体的测试用例,不需要使用者具备代码基础。
S3,根据获取的对象的信息判断对象是否为逻辑分支关键字对象,其中,逻辑分支关键字对象是关键字对象的一种,用于表示逻辑分支控制的行为,逻辑分支关键字对象的参数字段格式为:[验证表达式],[步骤列表];以及
S41,如果对象是逻辑分支关键字对象,则对对象进行逻辑分支控制处理,可通过下述代码实现逻辑分支控制处理的过程:
If[验证表达式]=真:
执行具体步骤
Else:
不执行具体步骤
或者
If[验证表达式]=假:
执行具体步骤
Else:
不执行具体步骤
其中,对对象进行逻辑分支控制处理包括:解析读取的步骤信息的参数字段,得到解析结果;根据解析结果,执行步骤信息的指定步骤。其中,解析结果可以是自定义的代码、数值(例如:TURE或FALSE,0或1,空或非空),也可以是可得出TURE或FALSE的算术表达式,例如1+2>2,前一步骤的返回值为TURE或非0等。如果解析结果为表达式,则执行表达式,得到二级解析结果(TURE或FALSE等),再根据二级解析结果,执行步骤信息的指定步骤。
S42,如果对象不是逻辑分支关键字对象,对对象执行预定义的操作,其中,对对象执行预定义的操作可包括:首先判断对象的类别;而后,根据对象的类别,对对象执行预定义的操作。例如,对于文件类型的对象,具体操作可以有读取、写入、复制等操作;对于控件类型的对象,则可以有控件点击、获取控件文本、判断控件是否可见等操作。
在本发明的实施方式中,测试人员在处理测试过程时,可通过下述过程完成测试:1.测试人员编写用例步骤,并将其存储在步骤表中。其中,用例步骤包括每一个步骤需要执行的操作,在此过程中,根据用例的流程选择是否需要进行分支控制,来使用例步骤的容错性更强。2.编写完成后,测试人员可以利用系统提供的配套的界面工具,执行已经写好的步骤,此执行过程便是系统的执行流程。3.全部步骤执行完毕,用例执行完毕。通过实施本发明实施方式的方法,可实现测试系统在流程执行过程中不同条件下的选择执行,使得运行过程的容错性更好,从而提高运行效率。
图2是本发明的基于关键字的自动测试方法的实施例;参见图2,该方法可以包括:
S01,从步骤表中读取步骤信息(对象关键字、行为和参数);
S02,根据步骤信息的对象关键字字段的值,从对象表中获取与对象关键字对应的对象的信息;其中,步骤表和对象表的信息与图1中的相关内容一致,在此不再赘述。
S03,根据获取的对象的信息,判断对象是否为逻辑分支关键字对象,如果是,则执行S041,否则执行S05;
S041,解析参数字段的内容,逻辑分支关键字对象的参数字段格式为:[验证表达式],[步骤列表];
S042,解析参数字段的验证表达式;
S043,判断验证表达式是否为数值(例如:TURE或FALSE,0或1,空或非空),如果是,则执行S045,否则执行S044;
S044,执行表达式,计算返回值;其中表达式是可得出TURE或FALSE的算术表达式,例如1+2>2,计算得到的返回值为TURE或非0等。
S045,判断数值是否为指定值(TURE或FALSE),如果是,则说明对象是逻辑分支关键字对象,执行S046,否则返回S01;
S046,执行参数的指定执行步骤,指定执行步骤为关键字所预定义的指定执行步骤(例如读取、写入、复制等操作);
S05,根据对象的类别,对对象执行预定义的操作。例如,对于文件类型的对象,具体操作有读取、写入、复制等操作;对于控件类型的对象,则行为有控件点击、获取控件文本、判断控件是否可见等操作。
图3根据本发明实施方式的基于关键字的自动测试系统1的架构图;参见图3,该系统可以包括:
读取模块100,用于从步骤表中读取步骤信息;其中,步骤表是存储待执行用例的所有步骤的表,该表主要包含以下三个字段的属性信息:关键字、行为和参数。
获取模块200,用于根据步骤信息的对象关键字字段的值,从对象表中获取与对象关键字对应的对象的信息,其中,步骤信息是指存储在步骤表中每一步步骤的内容,对应于步骤表的各字段,关键字字段表明该步骤实际操作的对象,行为字段表明该步骤需要执行的行为,参数字段表明在执行这一步骤的时候可能传入的参数。其中,步骤表和对象表与图1中的相关内容一致,在此不再赘述。
判断模块300,用于根据获取的对象的信息判断对象是否为逻辑分支关键字对象,其中,逻辑分支关键字对象的参数字段格式为:[验证表达式],[步骤列表];
第一执行模块400,用于如果对象是逻辑分支关键字对象,则对对象进行逻辑分支控制处理。可通过下述代码实现逻辑分支控制处理的过程:
If[验证表达式]=真:
执行具体步骤
Else:
不执行具体步骤
或者
If[验证表达式]=假:
执行具体步骤
Else:
不执行具体步骤
其中,逻辑分支控制处理包括:解析读取的步骤信息的参数字段,得到解析结果;根据解析结果,执行步骤信息的指定步骤。
另外,系统可以进一步包括:
第二执行模块,用于如果对象不是逻辑分支关键字对象,则对对象执行预定义的操作。例如,对于文件类型的对象,具体操作有读取、写入、复制等操作;对于控件类型的对象,则行为有控件点击、获取控件文本、判断控件是否可见等操作。
在本发明的实施方式中,测试人员在处理测试过程时,可通过下述过程完成测试:1.测试人员编写用例步骤,并将其存储在步骤表中。其中,用例步骤包括每一个步骤需要执行的操作,在此过程中,根据用例的流程选择是否需要进行分支控制,来使用例步骤的容错性更强。2.编写完成后,测试人员可以利用系统提供的配套的界面工具,执行已经写好的步骤,此执行过程便是系统的执行流程。3.全部步骤执行完毕,用例执行完毕。
通过实施本发明实施方式的系统,可实现测试系统在流程执行过程中不同条件下的选择执行,使得运行过程的容错性更好,从而提高运行效率。
图4示出了图3所示的第一执行模块400的框图;参见图4,第一执行模块400可以包括:
解析子模块410,用于解析读取的步骤信息的参数字段,得到解析结果;
执行子模块420,用于根据解析结果,执行步骤信息的指定步骤。
其中,解析结果可以是自定义的代码、数值(例如:TURE或FALSE,0或1,空或非空),也可以是可得出TURE或FALSE的算术表达式,例如1+2>2,前一步骤的返回值为TURE或非0等。
图5示出了图4所示的执行子模块420的框图;参见图4,执行子模块420可以包括:
判断单元421,用于判断解析结果是否为表达式;
执行单元422,用于如果解析结果是表达式,则执行表达式,得到二级解析结果(TURE或FALSE等),再根据二级解析结果,执行步骤信息的指定步骤。
图6是本发明所述系统中的第二执行模块500的框图;参见图6,第二执行模块500可以包括:
对象类别判断子模块510,用于判断对象的类别;
预定义执行子模块520,用于根据所述对象的类别,对对象执行预定义的操作步骤。
例如,对于文件类型的对象,具体操作有读取、写入、复制等操作;对于控件类型的对象,则行为有控件点击、获取控件文本、判断控件是否可见等操作。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以全部通过软件来实现,可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对现有技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
Claims (10)
1.一种基于关键字的自动测试方法,其特征在于,所述方法包括:
从步骤表中读取步骤信息;
根据所述步骤信息的对象关键字字段的值,从对象表中获取与该对象关键字对应的对象的信息;
根据所述获取的对象的信息判断所述对象是否为逻辑分支关键字对象;以及
如果所述对象是逻辑分支关键字对象,则对所述对象进行逻辑分支控制处理;
其中,所述对所述对象进行逻辑分支控制处理包括:
解析所述读取的步骤信息的参数字段,得到解析结果;
根据所述解析结果,执行所述步骤信息的指定步骤;
其中,所述参数字段包含验证表达式。
2.如权利要求1所述的方法,其特征在于,所述方法进一步包括步骤:
如果所述对象不是逻辑分支关键字对象,则对所述对象执行预定义的操作。
3.如权利要求1所述的方法,其特征在于,所述解析结果包括:
自定义的代码、数值或表达式。
4.如权利要求3所述的方法,其特征在于,所述根据所述解析结果,执行所述步骤信息的指定步骤包括:
判断所述解析结果是否为所述表达式;
如果所述解析结果是所述表达式,则执行表达式,得到二级解析结果,再根据所述二级解析结果,执行所述步骤信息的指定步骤。
5.如权利要求2所述的方法,其特征在于,所述对所述对象执行预定义的操作包括:
判断所述对象的类别;
根据所述对象的类别,对所述对象执行预定义的操作步骤。
6.一种基于关键字的自动测试系统,其特征在于,所述系统包括:
读取模块,用于从步骤表中读取步骤信息;
获取模块,用于根据所述步骤信息的对象关键字字段的值,从对象表中获取与该对象关键字对应的对象的信息;
判断模块,用于根据所述获取的对象的信息判断所述对象是否为逻辑分支关键字对象;
第一执行模块,用于如果所述对象是逻辑分支关键字对象,则对所述对象进行逻辑分支控制处理;
其中,所述第一执行模块包括:
解析子模块,用于解析所述读取的步骤信息的参数字段,得到解析结果;
执行子模块,用于根据所述解析结果,执行所述步骤信息的指定步骤;
其中,所述参数字段包含验证表达式。
7.如权利要求6所述的系统,其特征在于,所述系统进一步包括:
第二执行模块,用于如果所述对象不是逻辑分支关键字对象,则对所述对象执行预定义的操作。
8.如权利要求6所述的系统,其特征在于,所述解析结果包括:
自定义的代码、数值或表达式。
9.如权利要求8所述的系统,其特征在于,所述执行子模块包括:
判断单元,用于判断所述解析结果是否为所述表达式;
执行单元,用于如果所述解析结果是所述表达式,则执行表达式,得到二级解析结果,再根据所述二级解析结果,执行所述步骤信息的指定步骤。
10.如权利要求7所述的系统,其特征在于,所述第二执行模块包括:
对象类别判断子模块,用于判断所述对象的类别;
预定义执行子模块,用于根据所述对象的类别,对所述对象执行预定义的操作步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510023579.8A CN104536897B (zh) | 2015-01-16 | 2015-01-16 | 基于关键字的自动测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510023579.8A CN104536897B (zh) | 2015-01-16 | 2015-01-16 | 基于关键字的自动测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104536897A CN104536897A (zh) | 2015-04-22 |
CN104536897B true CN104536897B (zh) | 2018-02-13 |
Family
ID=52852427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510023579.8A Active CN104536897B (zh) | 2015-01-16 | 2015-01-16 | 基于关键字的自动测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536897B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI664537B (zh) * | 2015-05-06 | 2019-07-01 | 中華電信股份有限公司 | Test case generation system, method and computer program product for generating test cases based on test keywords |
CN104965790B (zh) * | 2015-07-17 | 2018-04-27 | 小米科技有限责任公司 | 基于关键字驱动的软件测试方法及系统 |
CN112685045A (zh) * | 2020-12-28 | 2021-04-20 | 北京达佳互联信息技术有限公司 | 页面源文件的处理方法、装置、电子设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1908892A (zh) * | 2005-08-01 | 2007-02-07 | 王彤 | 测试用例设计方法和系统 |
CN101246448A (zh) * | 2008-03-17 | 2008-08-20 | 中兴通讯股份有限公司 | 一种自动化脚本实现方法 |
CN102799529A (zh) * | 2012-07-13 | 2012-11-28 | 北京航空航天大学 | 一种动态的二进制代码测试用例生成方法 |
CN103164337A (zh) * | 2013-02-28 | 2013-06-19 | 汉柏科技有限公司 | 基于有限状态机的云计算软件测试方法 |
CN103995781A (zh) * | 2014-06-10 | 2014-08-20 | 浪潮通用软件有限公司 | 一种基于模型的构件测试用例生成方法 |
-
2015
- 2015-01-16 CN CN201510023579.8A patent/CN104536897B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1908892A (zh) * | 2005-08-01 | 2007-02-07 | 王彤 | 测试用例设计方法和系统 |
CN101246448A (zh) * | 2008-03-17 | 2008-08-20 | 中兴通讯股份有限公司 | 一种自动化脚本实现方法 |
CN102799529A (zh) * | 2012-07-13 | 2012-11-28 | 北京航空航天大学 | 一种动态的二进制代码测试用例生成方法 |
CN103164337A (zh) * | 2013-02-28 | 2013-06-19 | 汉柏科技有限公司 | 基于有限状态机的云计算软件测试方法 |
CN103995781A (zh) * | 2014-06-10 | 2014-08-20 | 浪潮通用软件有限公司 | 一种基于模型的构件测试用例生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104536897A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Prowell et al. | Cleanroom software engineering: technology and process | |
Boehm | Seven basic principles of software engineering | |
US8370808B2 (en) | Apparatus and a method for generating a test case | |
CN107622014A (zh) | 测试报告生成方法、装置、可读存储介质和计算机设备 | |
CN105446874B (zh) | 一种资源配置文件的检测方法和装置 | |
US9098630B2 (en) | Data selection | |
CN107545182B (zh) | 一种ios应用中绕过函数调用链检测的方法及系统 | |
CN108182058A (zh) | 一种基于云平台的软件开发方法和云开发平台 | |
CN104536897B (zh) | 基于关键字的自动测试方法及系统 | |
CN103761189A (zh) | 一种测试用例管理方法及系统 | |
Hesse et al. | Formal concept analysis used for software analysis and modelling | |
CN109840198A (zh) | 基于自动测试工具的测试软件的方法、装置和计算机设备 | |
Molka et al. | Conformance checking for BPMN-based process models | |
CN109240936A (zh) | 应用程序的兼容性测试方法、终端设备及介质 | |
CN110059002A (zh) | 测试数据的生成方法、测试设备、存储介质及装置 | |
EP3547143B1 (en) | System and method for model-based and behaviour-driven testing | |
CN110069414A (zh) | 回归测试方法及系统 | |
CN117312167A (zh) | 一种面向低代码平台的自动化测试方法及系统 | |
US20170206153A1 (en) | Simulating process variable changes during process runtime | |
Gerke et al. | Continuous quality improvement of IT processes based on reference models and process mining | |
CN110196712A (zh) | 基于云服务器的软件开发方法及服务器 | |
KR101698422B1 (ko) | Iwod를 사용한 프로세스 맵 설계 장치 및 방법 | |
Hsu et al. | Analysing inaccurate artifact usages in workflow specifications | |
CN101589367A (zh) | 复合断言和动态系统的系统定义和gui | |
CN109284097A (zh) | 实现复杂数据分析的方法、设备、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into 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: 20190808 Address after: 100085 Beijing, Haidian District, No. ten on the ground floor, No. 10 Baidu building, layer 2 Patentee after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. Address before: 100091 C, block, building No. 4, Zhongguancun Software Park, No. 8, West flourishing West Road, Beijing, China 1-03 Patentee before: Pacify a Heng Tong (Beijing) Science and Technology Ltd. |