CN106326125B - 一种测试用例生成方法 - Google Patents

一种测试用例生成方法 Download PDF

Info

Publication number
CN106326125B
CN106326125B CN201610739639.0A CN201610739639A CN106326125B CN 106326125 B CN106326125 B CN 106326125B CN 201610739639 A CN201610739639 A CN 201610739639A CN 106326125 B CN106326125 B CN 106326125B
Authority
CN
China
Prior art keywords
test
action
case
current
basic
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
CN201610739639.0A
Other languages
English (en)
Other versions
CN106326125A (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.)
Shanghai Fortune Mdt Infotech Ltd
Original Assignee
Shanghai Fortune Mdt Infotech 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 Shanghai Fortune Mdt Infotech Ltd filed Critical Shanghai Fortune Mdt Infotech Ltd
Priority to CN201610739639.0A priority Critical patent/CN106326125B/zh
Publication of CN106326125A publication Critical patent/CN106326125A/zh
Priority to PCT/CN2017/098689 priority patent/WO2018036531A1/zh
Priority to JP2019531516A priority patent/JP2019525373A/ja
Application granted granted Critical
Publication of CN106326125B publication Critical patent/CN106326125B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

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

一种测试用例生成方法
技术领域
本发明涉及软件测试技术领域,尤其涉及一种测试用例生成方法。
背景技术
传统的软件测试技术存在着人工干预的阶段,测试人员需要手动设置测试用例以及其中包括的各种测试动作,并且手动运行测试,手动比对测试结果以及根据比对结果判断测试是否成功。换言之,在现有的软件测试技术中存在过多人工干预的步骤,因此会占用大量的人工资源,延长软件测试的时间,降低测试效率。
同时,现有的软件测试技术中,通常需要用到数量较大的测试用例,以产生较多的测试样本才能够根据测试结果判断系统的功能和稳定性,而现有技术中通常要求测试人员手动编写或者设置每一个测试用例,以及每个测试用例中的每一个测试动作,因此会造成测试用例编写非常花费时间,大幅延长了测试用时,降低了测试效率,并且耗费了大量的人力成本。
发明内容
根据现有技术中存在的上述问题,现提供一种测试用例生成方法的技术方案,旨在实现测试用例的自动编写,从而缩短测试用时、提升测试效率,节省人力成本。
上述技术方案具体包括:
一种测试用例自动生成方法,其中,预设多个基础测试用例,每个所述基础测试用例中包括多个基础测试动作,每个所述基础测试动作对应于一个包括零至多个正确取值的正确值列表,以及一个包括零至多个错误取值的错误值列表;
针对一个所述基础测试用例,根据所述正确值列表中的所述正确取值或者所述错误值列表中的所述错误取值,分别更改每个所述基础测试动作的数值,以分别形成多个不同的衍生测试动作,并且根据多个不同的所述衍生测试动作组成关联于所述基础测试用例的多个不同的衍生测试用例;
将所有所述基础测试用例和所有所述衍生测试用例均作为测试用例,并将所有所述基础测试动作和所有所述衍生测试动作均作为测试动作,随后根据所述测试用例和所述测试动作对系统进行自动测试。
优选的,该测试用例自动生成方法,其中,针对所述基础测试用例,执行下述步骤:
步骤A1,选择所述基础测试用例中的一个所述基础测试动作作为扩展测试动作;
步骤A2,从关联于所述扩展测试动作的所述正确值列表中选择一个所述正确取值;
步骤A3,判断被选择的所述正确取值是否与所述扩展测试动作的取值相同:
若相同,则返回所述步骤A2;
步骤A4,根据被选择的所述正确取值对所述扩展测试动作进行赋值,以形成一个所述衍生测试动作;
步骤A5,根据所述衍生测试动作以及所述基础测试用例中除所述扩展测试动作以外的所有所述基础测试动作,组合形成一个所述衍生测试用例;
步骤A6,判断所述基础测试用例中是否存在尚未被选择的所述基础测试动作:
若存在,则返回所述步骤A1;
若不存在,则退出。
优选的,该测试用例自动生成方法,其中,针对所述基础测试用例,执行下述步骤:
步骤B1,选择所述基础测试用例中的一个所述基础测试动作作为扩展测试动作;
步骤B2,从关联于所述扩展测试动作的所述错误值列表中选择一个所述错误取值;
步骤B3,判断被选择的所述错误取值是否与所述扩展测试动作的取值相同:
若相同,则返回所述步骤B2;
步骤B4,根据被选择的所述错误取值对所述扩展测试动作进行赋值,以形成一个所述衍生测试动作;
步骤B5,根据所述衍生测试动作以及所述基础测试用例中除所述扩展测试动作以外的所有所述基础测试动作,组合形成一个所述衍生测试用例;
步骤B6,判断所述基础测试用例中是否存在尚未被选择的所述基础测试动作:
若存在,则返回所述步骤B1;
若不存在,则退出。
优选的,该测试用例自动生成方法,其中,针对所述基础测试用例中的每个所述基础测试动作,分别采用对应的所述错误值列表中的一个所述错误取值对所述基础测试动作进行赋值,以分别生成对应的一个所述衍生测试动作,并将所有所述衍生测试动作组合形成一个所述衍生测试用例。
优选的,该测试用例自动生成方法,其中,针对所述基础测试用例,执行下述步骤:
步骤C1,选择所述基础测试用例中的一个所述基础测试动作作为扩展测试动作;
步骤C2,对所述扩展测试动作赋值为空,以形成一个所述衍生测试动作;
步骤C3,根据所述衍生测试动作以及所述基础测试用例中除所述扩展测试动作以外的所有所述基础测试动作,组合形成一个所述衍生测试用例;
步骤C4,判断所述基础测试用例中是否存在尚未被选择的所述基础测试动作:
若存在,则返回所述步骤C1;
若不存在,则退出。
优选的,该测试用例自动生成方法,其中,针对所述基础测试用例中的每个所述基础测试动作,分别对所述基础测试动作赋值为空,以分别生成对应的一个所述衍生测试动作,并将所有所述衍生测试动作组合形成一个所述衍生测试用例。
优选的,该测试用例自动生成方法,其中,按序排列多个所述测试用例,每个所述测试用例对应于多个按序执行的所述测试动作,每个所述测试动作对应于一个测试控件,每个所述测试动作对应于一个操作方法,每个所述测试控件对应一个测试画面,每个所述测试动作对应多个预想结果;
将本次需要执行的所有所述测试用例对应的所有所述测试动作按照所述测试用例被执行的顺序排列形成一测试动作列表;
根据所述测试用例和所述测试动作对系统进行自动测试的方法具体包括:
步骤S1,于所述动作列表中选择一个所述测试动作作为当前动作,并将所述当前动作对应的所述测试用例作为当前用例进行测试;
步骤S2,将测试过程中系统浏览器中的显示画面的编号,和所述当前动作对应的所述测试画面的编号进行比较,以对所述显示画面进行定位;
步骤S3,于被定位的所述显示画面中抓取匹配于所述当前动作的所述测试控件作为当前控件;
步骤S4,根据所述当前动作的动作属性,依据对应的所述操作方法对被抓取的所述当前控件进行操作,随后输出对应所述当前动作的操作结果;
步骤S5,将所述操作结果与对应所述当前动作的所述预想结果进行比较,以判断所述当前动作是否执行成功,将对应的比较结果保存为所述当前动作的测试结果。
优选的,该测试用例自动生成方法,其中,所述步骤S1中,在执行关联于所述当前用例的第一个所述测试动作时,提取对应于所述当前用例的第一个所述测试控件的所述测试画面作为开启画面,并通过关联于所述开启画面的地址打开所述开启画面,以开始对所述当前用例进行测试。
优选的,该测试用例自动生成方法,其中,所述步骤S1中,在执行关联于所述当前用例的每个所述测试动作之前,根据所述测试动作的动作属性判断是否需要打开对应于所述测试动作的所述测试控件的所述测试画面,并在需要时提取关联于所述测试画面的地址以打开所述测试画面。
优选的,该测试用例自动生成方法,其中,所述步骤S1中,当将所述测试用例确认为所述当前用例后提取所述当前用例的初始化数据,对关联于所述当前用例的数据库中的数据进行初始化操作,以开始对所述当前用例进行测试;
提取对应于所述当前用例的第一个所述测试控件的所述测试画面的地址作为所述开启画面的开启地址,并基于所述开启地址,使用关联于所述当前用例的启动参数开启所述开启画面,以对所述启动画面进行测试。
优选的,该测试用例自动生成方法,其中,所述步骤S2具体包括:
获取对应于所述当前动作的后续的所述测试动作的所述测试画面的编号,同时监控所述显示画面的编号,在所述显示画面的编号与所述测试画面的编号一致时,确认所述显示画面切换成功,以对所述显示画面进行定位。
优选的,该测试用例自动生成方法,其中,所述步骤S2具体包括:
获取对应于所述当前动作的后续的所述测试画面的编号,同时监控所述显示画面的编号,在所述显示画面的编号与所述测试画面的编号一致时,确认所述显示画面切换成功,以对所述显示画面进行定位。
优选的,该测试用例自动生成方法,其中,所述步骤S3中,抓取到所述显示画面中的一个所述测试控件后,将所述测试控件的控件属性与所述当前动作对应的所述测试控件的控件属性进行匹配并得到匹配结果,并在所述匹配结果表示匹配成功时将被抓取的所述测试控件定位为所述当前控件。
优选的,该测试用例自动生成方法,其中,所述步骤S4中,在对所述控件进行操作之前,首先判断所述当前动作的所述动作属性,并根据所述动作属性确定对所述当前控件进行操作:
若所述当前动作的所述动作属性为设定值,则对所述当前控件进行的操作为给所述控件赋值;
若所述当前动作的所述动作属性为执行操作命令,则对所述当前控件进行的操作为执行所述操作命令以操作所述控件;
若所述当前动作的所述动作属性为发送文字列消息,则操作所述当前控件发送对应的所述文字列消息;
若所述当前动作的所述动作属性为内存复制,则将所述当前控件的值保存于系统内存中;
若所述当前动作的所述动作属性为内存赋值,则将所述当前控件的值更改为所述系统内存中保存的值;
若所述当前动作的所述动作属性为逻辑判断,则对保存于所述系统内存中用于表示赋值的表达式进行判断,并根据判断结果跳过关联于所述当前动作的预设的后续的所述测试动作;
若所述当前动作的所述动作属性为采用功能键组合的方式进行操作,则通过向系统的输入装置发送对应的功能键组合命令的方式操作所述当前控件。
优选的,该测试用例自动生成方法,其中,所述步骤S5中,根据所述操作结果的类型进行所述操作结果与所述预想结果之间的比较:
若所述操作结果为操作所述显示画面中包括的所述控件的结果,则系统读取所述浏览器中的所述显示画面对应的所述控件的信息,并将读取到的信息与所述预想结果进行比较;
若所述操作结果为对应于所述浏览器中的一栏数据的结果,则系统读取所述浏览器中对应的所述一栏数据,并将读取到的信息与所述预想结果进行比较;
若所述操作结果为系统的数据库中的数据,则系统读取所述数据库中的数据,并读取到的信息与所述预想结果进行比较。
优选的,该测试用例自动生成方法,其中,所述步骤S5中,判断所述当前动作是否执行成功:
若是,则保存关联于所述当前动作的所述操作结果,随后继续执行所述步骤S5;
若否,则结束所述当前用例的测试,并跳转至下一个所述测试用例,随后返回所述步骤S1。
优选的,该测试用例自动生成方法,其中,所述步骤S5中,将对应的比较结果保存为所述当前动作的测试结果后,跳转至下一个所述测试动作:
若跳转至的下一个所述测试动作表示对全局的控件进行操作,则返回所述步骤S4。
上述技术方案的有益效果是:提供一种测试用例生成方法,能够实现测试用例的自动编写,从而缩短测试用时、提升测试效率,节省人力成本。
附图说明
图1-3是本发明的较佳的实施例中,测试用例自动生成方法的不同流程的示意图;
图4是本发明的较佳的实施例中,一种应用上述测试用例生成方法生成的测试用例和测试动作进行自动测试的总体流程示意图;
图5-6是本发明的较佳的实施例中,预设测试用例的示意图;
图7是本发明的较佳的实施例中,预设画面的示意图;
图8是本发明的较佳的实施例中,预设测试动作的示意图;
图9是本发明的较佳的实施例中,预设控件的示意图;
图10-12是本发明的较佳的实施例中,不同的预想结果的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种测试用例生成方法。该测试用例生成方法中,预设多个基础测试用例,每个基础测试用例中包括多个基础测试动作,每个基础测试动作对应于一个包括零至多个正确取值的正确值列表,以及一个包括零至多个错误取值的错误值列表;
针对一个基础测试用例,根据正确值列表中的正确取值或者错误值列表中的错误取值,分别更改每个基础测试动作的数值,以分别形成多个不同的衍生测试动作,并且根据多个不同的衍生测试动作组成关联于基础测试用例的多个不同的衍生测试用例;
将所有基础测试用例和所有衍生测试用例均作为测试用例,并将所有基础测试动作和所有衍生测试动作均作为测试动作,随后根据测试用例和测试动作对系统进行自动测试。
具体地,上述实施例中,首先设定一个基础测试用例以及该基础测试用例中包括的多个基础测试动作,即对基础测试用例以及对应的多个基础测试动作设置好相应的参数和其他初始化数据等,以形成完整的可以执行的基础测试用例以及基础测试动作。
随后,上述实施例中,根据上述基础测试用例中的每个基础测试动作,分别预设一个正确值列表和一个错误值列表。其中正确值列表中包括的数值全都为正确取值,即使得该基础测试动作有效的取值。相应地,上述错误值列表中包括的数值全都为错误取值,即使得该基础测试动作无效的取值。
因此,上述实施例中,最终根据对应每个基础测试动作的正确值列表和错误值列表分别随机生成多个不同的衍生测试动作(例如将正确值列表/错误值列表中的某个正确取值/错误取值赋值到基础测试动作中,以形成一个衍生测试动作),并根据多个不同的衍生测试动作组合形成多个不同的衍生测试用例。上述基础测试用例和衍生测试用例均被确认为是测试用例,相应地上述基础测试动作和衍生测试动作均被确认为是测试动作。最终可以通过上述测试用例和测试动作对整个系统进行自动化测试,以测试系统功能和系统的运行稳定性。
上述实施例中,所谓“零至多个正确值”和“零至多个错误值”的描述,是指正确值列表/错误值列表可以为空,也可以包括多个正确值/错误值。当正确值列表为空时,对应的基础测试动作的正确值扩展就不需要执行。类似地,当错误值列表为空时,对应的基础测试动作的错误值扩展就不需要执行。下文中不再详述。
本发明的较佳的实施例中,如图1所示,针对基础测试用例,执行下述步骤,则可以生成包括全部为正确取值的衍生测试动作的衍生测试用例:
步骤A1,选择基础测试用例中的一个基础测试动作作为扩展测试动作;
步骤A2,从关联于扩展测试动作的正确值列表中选择一个正确取值;
步骤A3,判断被选择的正确取值是否与扩展测试动作的取值相同:
若相同,则返回步骤A2;
步骤A4,根据被选择的正确取值对扩展测试动作进行赋值,以形成一个衍生测试动作;
步骤A5,根据衍生测试动作以及基础测试用例中除扩展测试动作以外的所有基础测试动作,组合形成一个衍生测试用例;
步骤A6,判断基础测试用例中是否存在尚未被选择的基础测试动作:
若存在,则返回步骤A1;
若不存在,则退出。
具体地,本发明的一个较佳的实施例中,上述基础测试用例可以为购买机票的测试用例,则其中包括的基础测试动作可以为:
A,出发日期:输入20160412;
B,返回日期:输入20160418;
C,出发城市:输入北京;
D,到达城市:输入上海;
E,出发人数:输入2;
F,查询
则对应不同的基础测试动作的正确值列表和错误值列表分别可以设置为:
A,出发日期:正确值列表(20160412,20160228,20160229,20160418);错误值列表(00,11000203,20160230,21061255,2016/16/10);
B,返回日期:正确值列表(20160412,20160228,20160229,20160418);错误值列表(00,11000203,20160230,21061255,2016/16/01);
C,出发城市:正确值列表(北京,天津,石家庄);错误值列表(00,AA,东北,北京11,22北京,亚洲,北海道)
D,到达城市:正确值列表(北京,天津,石家庄);错误值列表(00,AA,东北,北京11,22北京,亚洲,北海道);
E,出发人数:正确值列表(1,2,9,99);错误值列表(0,A,-1,100,101)。
则可以选择上述基础测试动作中的第一个动作作为扩展测试动作(即测试动作A),并且选择对应的正确值列表中的一个正确取值,判断该正确取值是否与基础测试动作的初始取值相同(例如上述正确值列表中的20160412就与基础测试动作的初始取值相同):若相同,则重新从正确值列表中取一个正确取值。
上述实施例中,取到一个与初始取值不同的正确取值之后,采用该正确取值对扩展测试动作进行赋值,以形成一个不同于该扩展测试动作的衍生测试动作。
最后,该实施例中,将该衍生测试动作,以及原本的基础测试用例中除扩展测试动作之外的其他基础测试动作一起组合一个不同于该基础测试用例的衍生测试用例。例如:A’(以基础测试动作A填充正确取值得到的衍生测试动作),B,C,D,E和F组成一个衍生测试用例。
上述实施例中,针对每个基础测试动作,将其正确值列表中的每个正确取值均赋值一遍,最终可以形成多个不同的衍生测试用例。例如上述实施例中,可以形成14个全部包括正确值的衍生测试用例。
本发明的较佳的实施例中,如图2所示,针对所述基础测试用例,执行下述步骤,可以生成包括有错误取值的衍生测试动作的衍生测试用例:
步骤B1,选择基础测试用例中的一个基础测试动作作为扩展测试动作;
步骤B2,从关联于扩展测试动作的错误值列表中选择一个错误取值;
步骤B3,判断被选择的错误取值是否与扩展测试动作的取值相同:
若相同,则返回步骤B2;
步骤B4,根据被选择的错误取值对扩展测试动作进行赋值,以形成一个衍生测试动作;
步骤B5,根据衍生测试动作以及基础测试用例中除扩展测试动作以外的所有基础测试动作,组合形成一个衍生测试用例;
步骤B6,判断基础测试用例中是否存在尚未被选择的基础测试动作:
若存在,则返回步骤B1;
若不存在,则退出。
具体地,本发明的较佳的实施例中,类似上述步骤A1-A6,在步骤B1-B6中,依然首先确定扩展测试动作,并且从关联该扩展测试动作的错误值列表中选择一个错误取值,同时判断该错误取值是否与扩展测试动作的初始取值相同(若相同则重新挑选)。随后根据被选择的错误取值对扩展测试动作进行赋值,以形成一个全新的衍生测试动作。该衍生测试动作为一个错误的测试动作。
最后,上述实施例中,将新生成的衍生测试动作与基础测试用例中除去上述扩展测试动作后的其余基础测试动作一起组成一个新的衍生测试用例。
最终,以上述基础测试用例为例,根据其中不同的基础测试动作的不同的错误值列表进行遍历赋值,可以得到31个不同的衍生测试用例,这些衍生测试用例中均包括有赋值有错误取值的衍生测试动作。
本发明的较佳的实施例中,针对基础测试用例中的每个基础测试动作,分别采用对应的错误值列表中的一个错误取值对基础测试动作进行赋值,以分别生成对应的一个衍生测试动作,并将所有衍生测试动作组合形成一个衍生测试用例。即上述实施例中,可以针对每个基础测试动作选择一个错误取值,以分别形成不同的赋值有错误取值的衍生测试动作,并进而形成一个只包括有错误的衍生测试动作的衍生测试用例。
则;依照上文中所述的基础测试用例,最终形成的只包括有错误的衍生测试动作的衍生测试用例为1个。
本发明的较佳的实施例中,如图3所示,针对基础测试用例,执行下述步骤,可以生成全为空的衍生测试用例:
步骤C1,选择基础测试用例中的一个基础测试动作作为扩展测试动作;
步骤C2,对扩展测试动作赋值为空,以形成一个衍生测试动作;
步骤C3,根据衍生测试动作以及基础测试用例中除扩展测试动作以外的所有基础测试动作,组合形成一个衍生测试用例;
步骤C4,判断基础测试用例中是否存在尚未被选择的基础测试动作:
若存在,则返回步骤C1;
若不存在,则退出。
具体地,本发明的较佳的实施例中,对于基础测试用例中的每个基础测试动作,分别赋值为空,则可以形成包括取值为空的衍生测试动作的衍生测试用例。如上文中所述的基础测试用例,最终可以形成5个包括取值为空的衍生测试动作的衍生测试用例。
本发明的较佳的实施例中,对于基础测试用例中的每个基础测试动作,可以分别赋值为空,则可以形成只包括取值为空的衍生测试动作的衍生测试用例。如上文中所述的基础测试用例,最终可以形成1个只包括取值为空的衍生测试动作的衍生测试用例。
因此,如上文中所述,利用一个基础测试用例,最终可以生成至多51个衍生测试用例。如果在生成衍生测试用例之前修改正确值列表/错误值列表中包括的取值的数量,则可以生成更多的衍生测试用例,以满足不同的自动化测试的需求。
本发明的较佳的实施例中,针对上文中所述的包括0个正确值的正确值列表的情况,虽然可以跳过生成上述生成衍生测试用例的对应的步骤(即生成包括正确值的衍生测试用例),但是仍然可以执行步骤C1-C4的步骤,以生成全为空的衍生测试用例。同理,对于包括0个错误值的错误值列表的情况,虽然可以跳过生成包括错误值的衍生测试用例的步骤,也仍然可以执行步骤C1-C4的步骤,以生成全为空的衍生测试用例。
综上所述,本发明技术方案中,针对每个基础测试动作均设置正确值列表和错误值列表,根据正确值列表和错误值列表中的取值以及空取值对每个基础测试动作进行赋值,并根据赋值后形成的不同的衍生测试动作组合形成多个不同的衍生测试用例,从而将一个基础测试用例扩展成多个不同的衍生测试用例,完成了测试用例的自动扩展操作。
本发明的较佳的实施例中,在上述测试用例自动扩展完毕后,按序排列多个测试用例,每个测试用例对应于多个按序执行的测试动作,每个测试动作对应于一个测试控件,每个测试动作对应于一个操作方法,每个测试控件对应一个测试画面,每个测试动作对应多个预想结果;
将本次需要执行的所有测试用例对应的所有测试动作按照测试用例被执行的顺序排列形成一测试动作列表;
则如图4所示,根据测试用例和测试动作对系统进行自动测试的方法具体包括:
步骤S1,于动作列表中选择一个测试动作作为当前动作,并将当前动作对应的测试用例作为当前用例进行测试;
步骤S2,将测试过程中系统浏览器中的显示画面的编号,和当前动作对应的测试画面的编号进行比较,以对显示画面进行定位;
步骤S3,于被定位的显示画面中抓取匹配于当前动作的测试控件作为当前控件;
步骤S4,根据当前动作的动作属性,依据对应的操作方法对被抓取的当前控件进行操作,随后输出对应当前动作的操作结果;
步骤S5,将操作结果与对应当前动作的预想结果进行比较,以判断当前动作是否执行成功,将对应的比较结果保存为当前动作的测试结果。
在一个具体实施例中,首先预设多个测试用例,每个测试用例内包括多个测试动作,每个测试动作对应一个测试控件。每个测试控件对应一个测试画面,因此决定每个测试用例对应于多个测试画面。
具体地,上述测试用例是按序预设的,即按照一定的执行顺序预设多个测试用例,一个测试用例执行完毕后就转向执行下一个测试用例。同样地,在同一个测试用例中,不同的测试动作也按序排列,每个测试动作分别对应于一个测试控件,每个测试控件分别对应于一个测试画面。上述测试画面可以被划分为开启画面以及后续画面。对于一个测试用例来说,开启画面只有一个,后续画面可以存在多个,上述开启画面可以为测试用例执行的第一个画面,后续画面为在上述开启画面之后并且依序排列的显示画面。每个测试画面(包括开启画面和后续画面)均为操作一个测试控件所对应的画面。例如对于用户登录这个测试用例而言,其中可以包括输入用户名和密码的测试动作,以及点击登录控件的测试动作。则对应上述登录控件的测试画面可以为提供给使用者可以输入用户名和密码的登录画面,并且该画面可以作为测试用例的开启画面,上述测试用例的多个后续画面可以为登录成功后显示的系统浏览器的其他画面,或者显示登录失败的画面。上述画面依照测试逻辑排序。
上述实施例中,测试用例的设置界面如图5-6所示。该测试用例中的开启画面的名称为“账户信息”,该测试用例的名称为“进入修改账户密码界面”,该测试用例的前期关联测试用例为“进入账户信息界面”,相应地,该测试用例的前期关联测试用例还包括“登录”、“进入系统管理”和“进入账户信息界面”,上述前期关联测试用例依序排列。图2中所示的测试用例的设置界面为可视化界面,并非现有技术中代码级的设置界面,因此可以简化测试用例的设置过程。图3中示出了上述预设的测试用例列表。
上述实施例中,关联于测试用例的测试画面(包括开启画面和后续画面)的设置界面如图7所示。图7中的画面信息中包括画面序号(ID)、画面名称以及画面访问地址。所谓的访问地址是指URL(Uniform Resoure Locator,统一资源定位)地址。上述画面设置界面同样为可视化界面。
上述实施例中,测试动作的设置界面如图8所示,图8中的测试动作可以配置为“嵌入检索条件”,其中关联有多个显示画面的名称、多个控件名称、多个动作属性(方法)以及多个测试动作的赋值等。上述测试动作的设置界面同样为可视化易操作的。
上述实施例中,每个测试动作对应的操作方法可以由动作属性经过一系列计算得到,而上述动作属性可以由对应的表达式表示。
上述实施例中,将设置完成的关联于不同的测试用例的测试动作形成一个动作列表。具体地,例如按序排列分别设置有测试用例A、B和C,在测试用例A中按序排列分别设置有测试动作A1、A2和A3,在测试用例B中按序排列分别设置有测试动作B1和B2,在测试用例C中按序排列分别设置有测试动作C1、C2、C3和C4,则上述动作列表即可以为按序排列的A1、A2、A3、B1、B2、C1、C2、C3、C4。
上述实施例中,每个测试动作相关联的控件的设置界面如图9所示。在图6中,每个控件的控件信息中包括控件序号(ID)、控件标题、控件类型、控件的前端技术、控件定位用的属性名称、控件定位用的属性值、控件的最大值/最小值/最大长度/最小长度、控件的默认值、控件的正确值列表/错误值列表等。上述控件的设置画面也是可视化画面。
上述实施例中,上述测试用例、测试动作、画面以及控件等的设置均可以依照以下两种方式进行:1)由系统预先设定;2)在系统中预先设定了各测试元素,则使用者可以通过相应的可视化界面选择不同的测试元素并组合形成测试用例、测试动作、画面以及控件等设置信息。
上述实施例中所述的预想结果的设置界面在下文中会详述。
则上述实施例中,针对本次需要执行的所有测试用例,按照不同测试用例的排序,将其中包括的所有测试动作放置在一个动作列表中。
则上述步骤S1中,首先选择一个测试动作开始执行测试。具体地,针对该测试动作,可以确定相应的测试用例,并将被确定的测试用例作为当前用例开始测试。
上述实施例中,在定位好当前动作和当前用例后,监控浏览器的显示画面的切换状态,找到浏览器当前加载完成的显示画面的画面编号,并将当前动作的测试画面的编号与该显示画面的编号进行对比,即根据当前的显示画面的画面编号去与对应当前动作的测试画面进行匹配,从而将当前浏览器的显示画面定位为当前用例中对应于当前动作的一个测试画面。
上述实施例中,在定位好显示画面后,对显示画面中的显示内容进行分分析,并抓取显示画面中的所有控件的实时信息,根据显示画面中抓取的控件的相关信息与测试动作对应的控件信息(例如定位用属性)进行匹配,从而可以定位准确的控件,并记录被定位的控件的位置信息。具体地,抓取到显示画面中的一个控件后,将控件的控件属性与当前动作对应的测试控件的控件属性进行匹配并得到匹配结果,并在匹配结果表示匹配成功时将被抓取的控件定位为当前控件。例如,抓取到一个控件后,将该控件与测试动作所对应的测试控件进行比较:若不同,则表示不是当前动作的控件;若相同,则表示是当前动作的控件。随后将匹配成功的控件确认为当前控件。因此,上述定位控件的方式可以包括:首先采用测试动作所对应的测试控件定位到一个测试画面,该测试画面即为当前显示的显示画面。由于在显示画面中可能不仅仅包括一个控件,因此在该显示画面中还需要通过控件属性对比的方式定位到上述测试动作所对应的测试控件,以完成测试控件的定位。
上述实施例中,当定位到测试控件之后,可以根据当前动作的动作属性对该测试控件执行相应的操作,随后当前动作执行完毕,记录对应当前动作的操作结果。
上述实施例中,得到操作结果后,将该操作结果与当前动作对应的预想结果进行比较,以判断当前动作是否操作成功,并记录比较结果。
在上述过程执行完毕后,判断当前动作执行完毕,随后转向下一个测试动作,并返回上述步骤S1。
综上所述,本发明技术方案中,通过可视化的操作方法,将预先设置测试用例、测试动作、测试控件、测试画面以及预想结果等测试参数的过程变得简单易懂,并且可以便捷地根据这些被设置好的测试参数自动进行可视化的软件测试,能够满足人们的软件测试需求,并且提升了软件测试的效率。
本发明的一个较佳的实施例中,在上述步骤S1中,在执行关联于当前用例的每个测试动作之前,根据测试动作的动作属性判断是否需要打开对应于测试动作的测试控件的测试画面,并在需要时提取关联于测试画面的地址以打开测试画面。具体地,上述实施例中,在执行每个测试动作之前,都需要判断下是否需要加载该测试动作对应的测试控件的测试画面:若需要,则加载相应的测试画面;若不需要,则不对画面做任何变动。上述实施例中,上述测试画面的提取和加载是通过提取对应控件的对应画面的URL地址实现的。具体地,通过提取对应控件的对应画面相关的URL地址,使用当前用例指定的启动参数,并在浏览器中打开对应的URL地址,以对当前用例进行测试。若当前指定的浏览器已被打开,则只需要通过提取画面相关的URL地址来更新浏览器中的显示画面即可。并且,上述实施例中,所谓测试动作的动作属性,其中可以包括测试动作与其前后顺序的动作之间的关联关系。系统可以通过判断测试动作与其前后动作的关系,然后判断是否需要提取相应的URL地址并打开相应的测试画面。
本发明的另一个较佳的实施例中,上述步骤S1中,在执行关联于当前用例的第一个测试动作时,提取对应于当前用例的第一个测试控件的测试画面作为开启画面,并通过关联于开启画面的地址打开开启画面,以开始对当前用例进行测试。具体地,上述实施例中,只有在执行一个测试用例中的第一个测试动作时,才加载该测试动作对应的测试控件的测试画面,以作为开启画面。具体地,在首次开始测试时,可以选择上述动作列表中的第一个测试动作并开始测试。则选择好测试动作后,将该测试动作作为当前动作,并根据当前动作定位到对应的测试用例,将该测试用例作为当前用例,随后提取该当前动作对应的测试控件对应的测试画面并开始进行测试。上述实施例中,由于首次开始测试时的测试动作为第一个测试动作,则上述被提取的画面应当也为相应的当前用例的开启画面。同样地,加载和提取开启画面的方法与上一个实施例相同,即通过提取开启画面的URL地址并使用当前用例指定的启动参数,在指定的系统浏览器中打开来实现。
本发明的较佳的实施例中,在开始执行上述每个测试用例之前,首先设定该测试用例的初始化数据,即对测试用例的数据进行初始化操作。所谓对数据进行初始化操作,其中可以包括:对数据库中相应的数据做初始化处理,以避免之前的测试数据遗留影响本次测试,又或者在数据库中添加相应的初始化数据,以形成一个测试的初始化测试环境,保证测试开始的环境的统一性等。
因此,在本发明的一个较佳的实施例中,在执行到一个新的测试动作时,首先需要判断该测试动作是否为某个测试用例的第一个测试动作:若是,则需要对测试用例先进行初始化数据的操作,随后再执行测试动作;若否,则直接执行该测试动作。
又或者,在本发明的另一个较佳的实施例中,对每个测试用例的开启画面进行标记。在测试过程中,当跳转至一个开启画面时,则对相应的测试用例进行初始化数据的操作,随后再执行开启画面对应的测试动作。
本发明的较佳的实施例中,上述步骤S1中,当将测试用例确认为当前用例后提取当前用例的初始化数据,以开始对当前用例进行测试;
提取对应于当前用例的第一个测试控件的测试画面的地址作为开启画面,随后使用当前用例指定的启动参数打开开启画面,并进行测试。
上述实施例中,所谓启动参数,是指打开上述作为开始画面的测试画面的标准网络参数。
本发明的一个较佳的实施例中,上述步骤S2具体包括:获取对应于当前动作的后续的测试动作的测试画面的编号,同时监控显示画面的编号,在显示画面的编号与测试画面的编号一致时,确认显示画面切换成功,以对显示画面进行定位。具体地,上述步骤S2中,若当前的显示画面的编号与当前动作的后续动作对应的测试画面的编号一致,则认为当前的显示画面切换成功,从而将该显示画面定位为当前动作的后续动作的测试画面。
本发明的另一个较佳的实施例中,上述步骤S2具体包括:获取对应于当前动作的后续的测试画面的编号,同时监控显示画面的编号,在显示画面的编号与测试画面的编号一致时,确认显示画面切换成功,以对显示画面进行定位。具体地,上述步骤S2中,若当前的显示画面的编号与当前动作的后续画面的编号一致,则认为当前的显示画面切换成功,从而将该显示画面定位为当前动作的后续画面。
本发明的较佳的实施例中,上述步骤S4中,在对控件进行操作之前,首先判断当前动作的动作属性,并根据动作属性确定对当前控件进行操作:
若当前动作的动作属性为设定值,则对当前控件进行的操作为给控件赋值,例如对控件赋予一个预先设定的数值等。
若当前动作的动作属性为执行操作命令,则对当前控件进行的操作为执行操作命令以操作控件,例如操作命令为“点击”,则可以对当前控件执行点击控件的操作。
若当前动作的动作属性为采用功能键组合的方式进行操作,则通过向系统的输入装置发送对应的功能键组合命令的方式操作当前控件,例如功能键组合为组合输入键盘上的“Shift”按键、“Alt”按键和“Enter”按键,则系统可以向键盘发送相应的功能键组合命令,以通知键盘输出上述三个按键的组合按键指令。
若当前动作的动作属性为发送文字列消息,则操作当前控件发送对应的文字列消息,具体地可以通过浏览器发送对应的文字列消息。
若当前动作的动作属性为内存复制,则将当前控件的赋值保存于系统内存中;具体地,可以将当前控件的赋值或者其他特定值保存到系统内存中,即实现系统内存的“剪贴板”功能。
若当前动作的动作属性为内存赋值,则可以根据当前动作的动作属性,将系统内存中已经保存的值赋到当前控件中。
若当前动作的动作属性为逻辑判断,则可以对内存中保存的值进行判断,并根据判断结果跳过预设的后续的测试动作。具体地,所谓逻辑判断,其为对系统内存中表示赋值的表达式进行判断,例如判断该表达式是否大于/小于某个预设定值,或者判断系统内存中保存的值是否为true/false。而上述表示跳过动作的跳过方案可以预设在不同的测试动作的测试属性中。具体的判断过程可以为:判断上述系统内存中保存的数值的表达式,并根据判断结果确定是否需要执行上述预设的跳过方案,来跳过一个或多个后续的测试动作。上述实施例中,上述跳过方案中同样可以不包括任何一个后续动作,即无论判断结果如何,都不需要跳过任何一个后续动作。
本发明的较佳的实施例中,如上文中所述,若当前的画面发生跳转,则可以监控浏览器的显示内容,进而定位到新的画面编号,以及定位到新的测试控件。
本发明的较佳的实施例中,上述步骤S5中,根据操作结果的类型进行操作结果与预想结果之间的比较:
若操作结果为操作显示画面的控件的结果,则系统读取浏览器中的显示画面中包括的对应的控件的信息,并将读取到的信息与预想结果进行比较;具体地,在对控件的信息和预想结果进行比较时,是对一批控件进行统一比较,例如抓取当前的显示画面中的所有控件对应的信息,并分别与预想结果进行比较。
若操作结果为对应于浏览器中的一栏数据的结果,则系统读取浏览器中对应的一栏数据,并将读取到的信息与预想结果进行比较;
若操作结果为系统的数据库中的数据,则系统读取数据库中的数据,并读取到的信息与预想结果进行比较。
具体地,本发明的较佳的实施例中,上述预想结果预先设置的设置界面如图10-12所示:
图10中示出画面中控件的预想结果,其中可以包括控件的ID,控件标题,预想结果的类型以及预想结果的值。
图11中示出表格类的预想结果,其中可以包括控件ID、控件的标题,预想件数、比较件数以及表格数据等属性。
图12中示出了数据库类的预想结果,其中可以包括检索条件、排序条件、限制条数以及数据等属性。
则本发明的较佳的实施例中:
若为控件比较,则系统读取浏览器中对应控件的信息,并将读取到的信息与预想结果进行比较;
若为一栏数据的比较,则系统读取浏览器中对应的一栏数据,并将读取到的信息与预想结果进行比较;
若为数据库的比较,则系统读取指定的数据库中的数据,并将读取到的信息与预想结果进行比较。
本发明的较佳的实施例中,上述步骤S5中,判断当前动作是否执行成功:
若是,则保存关联于当前动作的操作结果,随后继续执行步骤S5;
若否,则结束当前用例的测试,并跳转至下一个测试用例,随后返回步骤S1。
具体地,本发明的较佳的实施例中:
若当前动作执行成功,则自然跳转到同一个当前用例的下一个测试动作并执行(继续执行步骤S5),同时保存执行成功的操作结果。
若当前动作执行失败,则结束当前用例的测试,并跳转至下一个测试用例执行(返回步骤S1),在动作列表中即为跳过当前用例对应的后续的测试动作,从下一个测试用例的第一个测试动作重新开始进行测试。
本发明的较佳的实施例中,在一个当前动作的操作结果完成时,可以对浏览器的显示页面(即表示操作结果的页面)进行截图保存,并且在截图中标注出当前动作对应的控件的位置(通过之前的控件定位进行标注)。
本发明的一个较佳的实施例中,上述步骤S5中,将对应的比较结果保存为当前动作的测试结果后,跳转至下一个测试动作:
若跳转至的下一个测试动作表示对全局的控件进行操作,则返回步骤S4。
本发明的一个较佳的实施例中,上述步骤S5中,将对应的比较结果保存为当前动作的测试结果后,跳转至下一个测试动作。
本发明的较佳的实施例中,上述测试用例生成方法可以适用于任何一个主流的软件系统中,这是因为在预设上述测试用例、测试动作、测试控件、测试画面等的数据库中预先保证了主流软件系统中需要用到的驱动方法的实现方式,从而保证了主流软件系统中的动作方法的驱动。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (16)

1.一种测试用例自动生成方法,其特征在于,预设多个基础测试用例,每个所述基础测试用例中包括多个基础测试动作,每个所述基础测试动作对应于一个包括零至多个正确取值的正确值列表,以及一个包括零至多个错误取值的错误值列表;
针对一个所述基础测试用例,根据所述正确值列表中的所述正确取值或者所述错误值列表中的所述错误取值,分别更改每个所述基础测试动作的数值,以分别形成多个不同的衍生测试动作,并且根据多个不同的所述衍生测试动作组成关联于所述基础测试用例的多个不同的衍生测试用例;
将所有所述基础测试用例和所有所述衍生测试用例均作为测试用例,并将所有所述基础测试动作和所有所述衍生测试动作均作为测试动作,随后根据所述测试用例和所述测试动作对系统进行自动测试;
按序排列多个所述测试用例,每个所述测试用例对应于多个按序执行的所述测试动作,每个所述测试动作对应于一个测试控件,每个所述测试动作对应于一个操作方法,每个所述测试控件对应一个测试画面,每个所述测试动作对应多个预想结果;
将本次需要执行的所有所述测试用例对应的所有所述测试动作按照所述测试用例被执行的顺序排列形成一测试动作列表;
根据所述测试用例和所述测试动作对系统进行自动测试的方法具体包括:
步骤S1,于所述动作列表中选择一个所述测试动作作为当前动作,并将所述当前动作对应的所述测试用例作为当前用例进行测试;
步骤S2,将测试过程中系统浏览器中的显示画面的编号,和所述当前动作对应的所述测试画面的编号进行比较,以对所述显示画面进行定位;
步骤S3,于被定位的所述显示画面中抓取匹配于所述当前动作的所述测试控件作为当前控件;
步骤S4,根据所述当前动作的动作属性,依据对应的所述操作方法对被抓取的所述当前控件进行操作,随后输出对应所述当前动作的操作结果;
步骤S5,将所述操作结果与对应所述当前动作的所述预想结果进行比较,以判断所述当前动作是否执行成功,将对应的比较结果保存为所述当前动作的测试结果。
2.如权利要求1所述的测试用例自动生成方法,其特征在于,针对所述基础测试用例,执行下述步骤:
步骤A1,选择所述基础测试用例中的一个所述基础测试动作作为扩展测试动作;
步骤A2,从关联于所述扩展测试动作的所述正确值列表中选择一个所述正确取值;
步骤A3,判断被选择的所述正确取值是否与所述扩展测试动作的取值相同:
若相同,则返回所述步骤A2;
步骤A4,根据被选择的所述正确取值对所述扩展测试动作进行赋值,以形成一个所述衍生测试动作;
步骤A5,根据所述衍生测试动作以及所述基础测试用例中除所述扩展测试动作以外的所有所述基础测试动作,组合形成一个所述衍生测试用例;
步骤A6,判断所述基础测试用例中是否存在尚未被选择的所述基础测试动作:
若存在,则返回所述步骤A1;
若不存在,则退出。
3.如权利要求1所述的测试用例自动生成方法,其特征在于,针对所述基础测试用例,执行下述步骤:
步骤B1,选择所述基础测试用例中的一个所述基础测试动作作为扩展测试动作;
步骤B2,从关联于所述扩展测试动作的所述错误值列表中选择一个所述错误取值;
步骤B3,判断被选择的所述错误取值是否与所述扩展测试动作的取值相同:
若相同,则返回所述步骤B2;
步骤B4,根据被选择的所述错误取值对所述扩展测试动作进行赋值,以形成一个所述衍生测试动作;
步骤B5,根据所述衍生测试动作以及所述基础测试用例中除所述扩展测试动作以外的所有所述基础测试动作,组合形成一个所述衍生测试用例;
步骤B6,判断所述基础测试用例中是否存在尚未被选择的所述基础测试动作:
若存在,则返回所述步骤B1;
若不存在,则退出。
4.如权利要求1所述的测试用例自动生成方法,其特征在于,针对所述基础测试用例中的每个所述基础测试动作,分别采用对应的所述错误值列表中的一个所述错误取值对所述基础测试动作进行赋值,以分别生成对应的一个所述衍生测试动作,并将所有所述衍生测试动作组合形成一个所述衍生测试用例。
5.如权利要求1所述的测试用例自动生成方法,其特征在于,针对所述基础测试用例,执行下述步骤:
步骤C1,选择所述基础测试用例中的一个所述基础测试动作作为扩展测试动作;
步骤C2,对所述扩展测试动作赋值为空,以形成一个所述衍生测试动作;
步骤C3,根据所述衍生测试动作以及所述基础测试用例中除所述扩展测试动作以外的所有所述基础测试动作,组合形成一个所述衍生测试用例;
步骤C4,判断所述基础测试用例中是否存在尚未被选择的所述基础测试动作:
若存在,则返回所述步骤C1;
若不存在,则退出。
6.如权利要求1所述的测试用例自动生成方法,其特征在于,针对所述基础测试用例中的每个所述基础测试动作,分别对所述基础测试动作赋值为空,以分别生成对应的一个所述衍生测试动作,并将所有所述衍生测试动作组合形成一个所述衍生测试用例。
7.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S1中,在执行关联于所述当前用例的第一个所述测试动作时,提取对应于所述当前用例的第一个所述测试控件的所述测试画面作为开启画面,并通过关联于所述开启画面的地址打开所述开启画面,以开始对所述当前用例进行测试。
8.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S1中,在执行关联于所述当前用例的每个所述测试动作之前,根据所述测试动作的动作属性判断是否需要打开对应于所述测试动作的所述测试控件的所述测试画面,并在需要时提取关联于所述测试画面的地址以打开所述测试画面。
9.如权利要求7所述的测试用例自动生成方法,其特征在于,所述步骤S1中,当将所述测试用例确认为所述当前用例后提取所述当前用例的初始化数据,对关联于所述当前用例的数据库中的数据进行初始化操作,以开始对所述当前用例进行测试;
提取对应于所述当前用例的第一个所述测试控件的所述测试画面的地址作为所述开启画面的开启地址,并基于所述开启地址,使用关联于所述当前用例的启动参数开启所述开启画面,以对所述启动画面进行测试。
10.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S2具体包括:
获取对应于所述当前动作的后续的所述测试动作的所述测试画面的编号,同时监控所述显示画面的编号,在所述显示画面的编号与所述测试画面的编号一致时,确认所述显示画面切换成功,以对所述显示画面进行定位。
11.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S2具体包括:
获取对应于所述当前动作的后续的所述测试画面的编号,同时监控所述显示画面的编号,在所述显示画面的编号与所述测试画面的编号一致时,确认所述显示画面切换成功,以对所述显示画面进行定位。
12.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S3中,抓取到所述显示画面中的一个所述测试控件后,将所述测试控件的控件属性与所述当前动作对应的所述测试控件的控件属性进行匹配并得到匹配结果,并在所述匹配结果表示匹配成功时将被抓取的所述测试控件定位为所述当前控件。
13.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S4中,在对所述控件进行操作之前,首先判断所述当前动作的所述动作属性,并根据所述动作属性确定对所述当前控件进行操作:
若所述当前动作的所述动作属性为设定值,则对所述当前控件进行的操作为给所述控件赋值;
若所述当前动作的所述动作属性为执行操作命令,则对所述当前控件进行的操作为执行所述操作命令以操作所述控件;
若所述当前动作的所述动作属性为发送文字列消息,则操作所述当前控件发送对应的所述文字列消息;
若所述当前动作的所述动作属性为内存复制,则将所述当前控件的值保存于系统内存中;
若所述当前动作的所述动作属性为内存赋值,则将所述当前控件的值更改为所述系统内存中保存的值;
若所述当前动作的所述动作属性为逻辑判断,则对保存于所述系统内存中用于表示赋值的表达式进行判断,并根据判断结果跳过关联于所述当前动作的预设的后续的所述测试动作;
若所述当前动作的所述动作属性为采用功能键组合的方式进行操作,则通过向系统的输入装置发送对应的功能键组合命令的方式操作所述当前控件。
14.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S5中,根据所述操作结果的类型进行所述操作结果与所述预想结果之间的比较:
若所述操作结果为操作所述显示画面中包括的所述控件的结果,则系统读取所述浏览器中的所述显示画面对应的所述控件的信息,并将读取到的信息与所述预想结果进行比较;
若所述操作结果为对应于所述浏览器中的一栏数据的结果,则系统读取所述浏览器中对应的所述一栏数据,并将读取到的信息与所述预想结果进行比较;
若所述操作结果为系统的数据库中的数据,则系统读取所述数据库中的数据,并读取到的信息与所述预想结果进行比较。
15.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S5中,判断所述当前动作是否执行成功:
若是,则保存关联于所述当前动作的所述操作结果,随后继续执行所述步骤S5;
若否,则结束所述当前用例的测试,并跳转至下一个所述测试用例,随后返回所述步骤S1。
16.如权利要求1所述的测试用例自动生成方法,其特征在于,所述步骤S5中,将对应的比较结果保存为所述当前动作的测试结果后,跳转至下一个所述测试动作:
若跳转至的下一个所述测试动作表示对全局的控件进行操作,则返回所述步骤S4。
CN201610739639.0A 2016-08-26 2016-08-26 一种测试用例生成方法 Active CN106326125B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610739639.0A CN106326125B (zh) 2016-08-26 2016-08-26 一种测试用例生成方法
PCT/CN2017/098689 WO2018036531A1 (zh) 2016-08-26 2017-08-23 一种测试用例生成方法
JP2019531516A JP2019525373A (ja) 2016-08-26 2017-08-23 テストケースの生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610739639.0A CN106326125B (zh) 2016-08-26 2016-08-26 一种测试用例生成方法

Publications (2)

Publication Number Publication Date
CN106326125A CN106326125A (zh) 2017-01-11
CN106326125B true CN106326125B (zh) 2019-04-05

Family

ID=57791838

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610739639.0A Active CN106326125B (zh) 2016-08-26 2016-08-26 一种测试用例生成方法

Country Status (3)

Country Link
JP (1) JP2019525373A (zh)
CN (1) CN106326125B (zh)
WO (1) WO2018036531A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326125B (zh) * 2016-08-26 2019-04-05 上海合福信息科技有限公司 一种测试用例生成方法
US10452839B1 (en) * 2016-12-09 2019-10-22 Symantec Corporation Cascade classifier ordering
CN110245065A (zh) * 2018-03-09 2019-09-17 北京京东尚科信息技术有限公司 自动化测试的方法和装置
CN109726113A (zh) * 2018-08-17 2019-05-07 平安普惠企业管理有限公司 测试用例生成方法、设备、装置及计算机可读存储介质
CN110633217A (zh) * 2019-09-19 2019-12-31 中国银行股份有限公司 接口校验方法及装置
CN110955593B (zh) * 2019-10-28 2023-07-14 北京三快在线科技有限公司 客户端测试方法、装置、电子设备及可读存储介质
CN110928790B (zh) * 2019-11-27 2024-02-02 中国银行股份有限公司 测试案例构建方法及装置、测试设备
CN111309619A (zh) * 2020-02-24 2020-06-19 苏宁云计算有限公司 自动化生成测试用例的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101025686A (zh) * 2007-03-22 2007-08-29 中兴通讯股份有限公司 一种自动化测试系统及测试脚本的生成和运行方法
CN103164330A (zh) * 2011-12-14 2013-06-19 航天信息股份有限公司 软件测试用例自动生成方法
CN103838675A (zh) * 2014-03-21 2014-06-04 上海富欣智能交通控制有限公司 计算机联锁系统自动生成测试用例的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928393B2 (en) * 2003-06-18 2005-08-09 Microsoft Corporation Method and system for supporting negative testing in combinatorial test case generators
JP4148527B2 (ja) * 2006-06-05 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 機能テスト・スクリプト生成装置
JP4899971B2 (ja) * 2007-03-27 2012-03-21 富士通株式会社 テスト仕様書作成プログラム、テスト仕様書作成装置、およびテスト仕様書作成方法
US8429614B2 (en) * 2008-06-23 2013-04-23 International Business Machines Corporation Method and apparatus of effective functional test data generation for web service testing
JP2012038162A (ja) * 2010-08-09 2012-02-23 Ricoh Co Ltd 自動テストツール・プログラム及び自動テスト方法
US9111040B2 (en) * 2013-01-15 2015-08-18 International Business Machines Corporation Integration of a software content space with test planning and test case generation
JP6032095B2 (ja) * 2013-03-27 2016-11-24 富士通株式会社 テストケース生成方法、テストケース生成装置、およびテストケース生成プログラム
US9311223B2 (en) * 2013-05-21 2016-04-12 International Business Machines Corporation Prioritizing test cases using multiple variables
JP2015022356A (ja) * 2013-07-16 2015-02-02 日本電信電話株式会社 テストシナリオバリエーション生成装置及び方法及びプログラム
JP6417791B2 (ja) * 2014-08-27 2018-11-07 日本電気株式会社 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
CN105159827B (zh) * 2015-08-21 2017-09-19 北京航空航天大学 一种面向gui软件的可靠性加速测试方法
CN105373476B (zh) * 2015-11-17 2018-01-19 北京新能源汽车股份有限公司 汽车控制器中自动测试用例的生成方法和系统
CN106326125B (zh) * 2016-08-26 2019-04-05 上海合福信息科技有限公司 一种测试用例生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101025686A (zh) * 2007-03-22 2007-08-29 中兴通讯股份有限公司 一种自动化测试系统及测试脚本的生成和运行方法
CN103164330A (zh) * 2011-12-14 2013-06-19 航天信息股份有限公司 软件测试用例自动生成方法
CN103838675A (zh) * 2014-03-21 2014-06-04 上海富欣智能交通控制有限公司 计算机联锁系统自动生成测试用例的方法

Also Published As

Publication number Publication date
WO2018036531A1 (zh) 2018-03-01
CN106326125A (zh) 2017-01-11
JP2019525373A (ja) 2019-09-05

Similar Documents

Publication Publication Date Title
CN106326125B (zh) 一种测试用例生成方法
CN105389252B (zh) 反馈测试问题的方法及装置
CN102959511B (zh) Gui程序制作辅助装置、gui程序制作辅助方法、程序及集成电路
KR101400657B1 (ko) 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램을 기록한 컴퓨터 판독 가능 기록매체, 및 제어 프로그램 생성 방법
EP0869433A2 (en) A test development system and method for software with a graphical user interface
CN105608258B (zh) 一种基于模型的系统设计及信息流可视化仿真系统及方法
WO2018036529A1 (zh) 一种可视化测试报告生成方法
CN105573236B (zh) 信息处理装置、信息处理方法及记录介质
KR20160070410A (ko) 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법
CN109508298A (zh) 图形化的脚本测试方法及系统
Garbe et al. Author assistance visualizations for Ice-Bound, a combinatorial narrative.
CN108732362A (zh) 分析设备管理系统
JP2016506559A (ja) Hmiデバイスにおいてオブジェクトを変化させるための方法およびデバイス
CN109800400A (zh) 一种生成电子试卷的方法、装置、显示设备及存储介质
CN107741900B (zh) 一种自动测试方法
JP2018106306A (ja) ゲーム開発システム
JP2003330750A (ja) 外部から制御可能な電子テストシステム
CN112783764B (zh) 应用程序的自动化测试方法及装置、存储介质、终端
CN106407105B (zh) 一种测试设计书生成方法
JP2005235202A (ja) 強調表示パニング・ウィンドウを有するguiを実現するプログラム
CN113553268A (zh) 一种ai智能软件测试方法
JP7012968B2 (ja) プログラムの検査装置、プログラムの検査方法及びプログラムの検査プログラム
JP2011039786A (ja) ソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラム
JPH09251305A (ja) プログラム作成装置
CN109669744A (zh) 一种在软件下载时控制多个软件分布下载的控制方法及控制装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant