CN104850490A - 用于软件测试的方法和系统 - Google Patents
用于软件测试的方法和系统 Download PDFInfo
- Publication number
- CN104850490A CN104850490A CN201410054004.8A CN201410054004A CN104850490A CN 104850490 A CN104850490 A CN 104850490A CN 201410054004 A CN201410054004 A CN 201410054004A CN 104850490 A CN104850490 A CN 104850490A
- Authority
- CN
- China
- Prior art keywords
- test
- reusable
- sequence
- test case
- script
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000013522 software testing Methods 0.000 title abstract 4
- 238000012360 testing method Methods 0.000 claims abstract description 304
- 238000011084 recovery Methods 0.000 claims abstract description 5
- 230000004044 response Effects 0.000 claims description 21
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012956 testing procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
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示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示出了根据本发明一个实施例的利用多个测试用例进行软件测试的方法200的流程图;
图3示出了根据本发明一个实施例的利用多个测试用例进行软件测试的系统300的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
除了图1显示传统的计算机系统/服务器12,适于用来实现本发明实施方式还可以包括移动电子设备,包括但不限于移动电话、PDA、平板电脑等。典型的,移动电子设备具有输入设备包括但不限于接触式输入设备,如触摸屏、触摸板等。
下面参考图2,其中显示了根据本发明一个实施例的利用多个测试用例进行软件测试的方法200的流程图。
根据本发明的一个实施例,利用多个测试用例进行软件测试的方法200从步骤202开始。根据本发明的一个实施例,将多个测试用例的每一个都分解为包括多个测试任务。测试任务是组成测试用例的测试步骤。每个测试任务具有一个唯一标识符、对应的执行脚本以及对应的执行时间。为了便于描述,可以用以下表1给出的测试任务元数据的结构表示每个测试任务。
测试任务ID | 执行脚本 | 执行时间(min) |
A1 | Script(A1) | 2 |
… | … | … |
A6 | Script(A6) | 10 |
… | … | … |
B5 | Script(B5) | 9 |
… | … | … |
C1 | Script(C1) | 12 |
… | … | … |
D1 | Script(D1) | 7 |
… | … | … |
表1测试任务元数据
根据本发明的一个实施例,多个测试用例的每一个都可以分解为包括多个测试任务。为了便于后续的描述,下面示例性地在表2中给出了分解后的用测
测试用例 | 用测试任务表示的测试用例 |
TC1 | A6,B5,C1,D1,C5,D5 |
TC2 | A6,B5,C1,D1,C1,G1 |
TC3 | A6,B5,C3,G2 |
TC4 | A1,B1,C2,C5,G5 |
TC5 | A6,B5,C1,D1,C3,G2 |
表2用测试任务表示的测试用例
试任务表示的多个测试用例的例子。
应该理解,表1只是示例性地给出了测试任务元数据的例子,所属领域的技术人员可以用任意其他合适的结构来表示测试任务元数据。表2也只是示例性地给出了分解后的用测试任务表示的多个测试用例的例子。表1和表2都只是出于便于说明的目的,不应理解为对本发明保护范围的限制。
接下来,根据本发明的一个实施例的利用多个测试用例进行软件测试的方法200进入步骤204,其中分析多个测试用例,以获得至少两个测试用例之间的至少一个可重用测试任务序列。根据本发明的一个实施例,可重用测试任务序列包括至少一个相同的测试任务,其执行得到的结果可以被重用,从而可以避免重复执行相同的测试任务,通常情况下能够显著减少测试用例的执行时间,从而提高软件测试的效率。
以表2给出的多个测试用例为例,通过分析可以获得至少两个测试用例之间的至少一个可重用测试任务序列,以TC1为入口分析得到TC1与各个测试用例之间的可重用测试任务序列如下:
TC2:A6,B5,C1,D1
TC3:A6,B5
TC4:NULL
TC5:A6,B5,C1,D1
进一步地,根据本发明的一个实施例,通过进一步分析可以获得多个测试用例之间的至少一个可重用测试任务序列。例如分析结果可以是:
TC1、TC2和TC5之间的可重用测试任务序列为:
A6,B5,C1,D1
TC1、TC2、TC3和TC5之间的可重用测试任务序列为:
A6,B5
可以用现有技术中的任意方式来对多个测试用例进行分析,以获得至少两个测试用例之间的至少一个可重用测试任务序列。这里就不再对具体方式进行赘述。
接下来,根据本发明的一个实施例的利用多个测试用例进行软件测试的方法200进入步骤206,其中根据可重用测试任务序列将多个测试用例划分成至少一个测试用例组,其中每个所述测试用例组中的多个测试用例具有至少一个可重用测试任务序列。根据本发明的一个实施例,可以根据具有可重用测试任务序列的测试用例的数量从大到小对多个测试用例进行划分。也可以相反的,根据具有可重用测试任务序列的测试用例的数量从小到大对多个测试用例进行划分。还可以首先将具有最大长度可重用测试任务序列的测试用例放入一个测试用例组,之后再将具有第二大长度可重用测试任务序列的测试用例放入一个测试用例组,依次类推。或者,根据本发明的一个实施例,反过来首先将具有最小长度可重用测试任务序列的测试用例放入一个测试用例组,之后再将具有第二小长度可重用测试任务序列的测试用例放入一个测试用例组,依次类推。可以以任意可能的其他方式根据可重用测试任务序列将多个测试用例划分成至少一个测试用例组,这里就不再一一举例说明。下面以根据具有可重用测试任务序列的测试用例的数量从大到小对多个测试用例进行划分为例进行说明,这样,可以形成至少一个测试用例组如下所示:
{TC1,TC2,TC3,TC5}=>{A6,B5}//测试用例的数量为4
{TC1,TC2,TC5}=>{A6,B5,C1,D1}//测试用例的数量为3
进一步地,还可以对形成的至少一个测试用例组进一步进行分析,可以形成至少一个测试用例组如下所示:
{{TC1,TC2,TC5},TC3}=>{{A6,B5},C1,D1}
上面的最终形成的至少一个测试用例组表明:
测试用例TC1、TC2和TC5之间具有可重用测试任务序列A6、B5,测试用例TC1、TC2、TC5和TC3之间具有可重用测试任务序列A6、B5、C1、D1。为了便于描述,我们分别以以下方式表示可重用任务序列:
{A6,B5}=>S1
{A6,B5,C1,D1}=>S2
其中S2={S1,C1,D1}。
这样,多个测试用例最终可以用表3的方式表示。
测试用例 | 用可重用测试任务序列表示的测试用例 |
TC1 | S2(S1,C1,D1),C5,D5 |
TC2 | S2(S1,C1,D1),C1,G1 |
TC3 | S1,C3,G2 |
TC4 | A1,B1,C2,C5,G5 |
TC5 | S2(S1,C1,D1),C3,G2 |
表3用可重用测试任务序列表示的测试用例
接下来,根据本发明的一个实施例的利用多个测试用例进行软件测试的方法200进入步骤208,其中,对所述至少一个测试用例组中的多个测试用例的每一个,利用测试任务的执行脚本产生测试用例的执行脚本,测试用例的执行脚本包括用于可重用测试任务序列的备份或恢复的至少之一。根据本发明的一个实施例,取决于形成的测试用例组,可以利用测试任务的执行脚本产生的对应的测试用例的执行脚本,下面分别进行说明。
情形一:假设形成的测试用例组为:
{TC1,TC2,TC3,TC5}=>{A6,B5}
首先产生可重用测试任务序列的执行脚本:
Script(S1)=Script(A6)+Script(B5)
进而,产生的对应的测试用例的执行脚本:
TC1:Script(S1)+Backup{S1}+Script(C1)+Script(D1)+Script(C5)+Script(D5)
TC2:Restore{S1}+Script(C1)+Script(D1)+Script(C1)+Script(G1)
TC3:Restore{S1}+Script(C3)+Script(G2)
TC5:Restore{S1}+Script(C1)+Script(D1)+Script(C3)+Script(G2)
情形二:假设形成的测试用例组为:
{TC1,TC2,TC5}=>{A6,B5,C1,D1}
首先产生可重用测试任务序列的执行脚本:
Script(S2)=Script(A6)+Script(B5)+Script(C1)+Script(D1)
进而,产生的对应的测试用例的执行脚本:
TC1:Script(S2)+Backup{S2}+Script(C5)+Script(D5)
TC2:Restore{S2}+Script(C1)+Script(G1)
TC5:Restore{S2}+Script(C3)+Script(G2)
情形三:假设形成的测试用例组为:
{{TC1,TC2,TC5},TC3}=>{{A6,B5},C1,D1}
首先产生可重用测试任务序列的执行脚本:
Script(S1)=Script(A6)+Script(B5)
Script(S2)=Script(S1)+Script(C1)+Script(D1)
进而,产生的对应的测试用例的执行脚本:
TC1:Script(S1)+Backup{S1}+Script(C1)+Script(D1)+Backup{S2}+Script(C5)+Script(D5)
TC2:Restore{S2}+Script(C1)+Script(G1)
TC3:Restore{S1}+Script(C3)+Script(G2)
TC5:Restore{S2}+Script(C3)+Script(G2)
可以看出,根据最终形成的测试用例组的不同,产生的测试用例的执行脚本可以存在不同,但测试用例的执行脚本包括用于可重用测试任务序列的备份(上面脚本中的Backup{})或恢复(上面脚本中的Restore{})的至少之一。上面只是示例性地对产生的测试用例的执行脚本进行了描述,所属领域技术人员可以利用现有技术任何其他可能的方式产生测试用例的执行脚本。本发明中所有的示例性描述都不应作为对保护范围的限制。
根据本发明的一个实施例,利用多个测试用例进行软件测试的方法200进一步包括:执行测试用例,响应于用于可重用测试任务序列的备份,即响应于测试用例的脚本中的Backup{}将要执行,对可重用测试任务序列对应的执行环境进行备份。以上面给出的情形一种测试用例TC1的执行脚本为例,在执行测试用例时,响应于用于可重用测试任务序列的备份,即响应于测试用例的脚本中的Backup{}将要执行,对可重用测试任务序列对应的执行环境进行备份,执行环境包括环境变量,执行的中间结果等。可以通过对可重用测试任务序列对应的执行环境进行拍快照的方式进行备份,也可以通过现有技术中的其他方式进行备份。进一步地,根据本发明的一个实施例,响应于用于可重用测试任务序列的备份,即响应于测试用例的脚本中的Backup{}将要执行,判断备份是否能够加速软件测试;如果所述判断结果为是,对可重用测试任务序列对应的执行环境进行备份。根据本发明的一个实施例,可以根据进行备份和恢复的时间和可重用测试任务序列的执行时间进行所述判断。如果备份的时间少于可重用测试任务序列的执行时间,那么对可重用测试任务序列对应的执行环境进行备份。如果备份的时间多于可重用测试任务序列的执行时间,则不对可重用测试任务序列对应的执行环境进行备份。
下面以情形一为例进行说明,情形一中:
TC1:Script(S1)+Backup{S1}+Script(C1)+Script(D1)+Script(C5)+Script(D5)
响应于用于可重用测试任务序列的备份Backup{S1},根据备份和恢复的时间(这里是对可重用测试任务序列S1的执行环境拍快照的时间和根据备份恢复S1的执行环境的时间总和t1)和可重用测试任务序列的执行时间(这里,执行时间为S1的执行时间,即A6和B5的执行时间的总和t2,根据表1可知为19分钟)。如果t1<t2,那么对可重用测试任务序列对应的执行环境进行备份。
下面进一步以情形三为例进行说明,情形三中:
TC1:Script(S1)+Backup{S1}+Script(C1)+Script(D1)+Backup{S2}+Script(C5)+Script(D5)
除了在响应于Backup{S1}进行判断之外,进一步地,响应于用于可重用测试任务序列的备份Backup{S2},根据备份和恢复的时间(这里是对可重用测试任务序列S2的执行环境拍快照的时间以及根据备份恢复S2的执行环境的时间总和t3)和可重用测试任务序列的执行时间(这里,执行时间C1和D1的执行时间的总和t4)。如果t3<t4,那么对可重用测试任务序列对应的执行环境进行备份。
根据本发明的一个实施例,响应于用于可重用测试任务序列的恢复,即响应于测试用例的脚本中的Restore{}将要执行,,根据备份恢复可重用测试任务序列对应的执行环境。由于通常情况下,根据备份恢复可重用测试任务序列对应的执行环境所需的时间往往远少于重复执行可重用测试任务序列的时间,因而能够显著减少测试用例的执行时间,从而提高软件测试的效率。
下面参考图3,其中显示了根据本发明一个实施例的利用多个测试用例进行软件测试的系统300的框图。根据本发明的一个实施例,每个测试用例包括多个测试任务,系统300包括:分析模块302,配置为分析所述多个测试用例以获得至少两个测试用例之间的至少一个可重用测试任务序列,所述可重用测试任务序列包括至少一个相同的测试任务;划分模块304,配置为根据可重用测试任务序列将所述多个测试用例划分成至少一个测试用例组,其中每个所述测试用例组中的多个测试用例具有至少一个可重用测试任务序列;其中,每个所述测试任务具有执行脚本,系统300进一步包括:产生模块306,配置为对所述至少一个测试用例组中的多个测试用例的每一个,利用测试任务的执行脚本产生测试用例的执行脚本,所述测试用例的执行脚本包括用于可重用测试任务序列的备份或恢复的至少之一。
根据本发明的一个实施例,利用多个测试用例进行软件测试的系统300进一步包括:执行模块,配置为执行测试用例;备份模块,配置为响应于用于可重用测试任务序列的备份,对可重用测试任务序列对应的执行环境进行备份。根据本发明的一个实施例,备份模块进一步配置为:响应于用于可重用测试任务序列的备份,判断备份是否能够加速软件测试;如果所述判断结果为是,对可重用测试任务序列对应的执行环境进行备份。根据本发明的一个实施例,根据进行备份和恢复的时间和可重用测试任务序列的执行时间进行所述判断。根据本发明的一个实施例,利用多个测试用例进行软件测试的系统300进一步包括:恢复模块,配置为响应于用于可重用测试任务序列的恢复,根据备份恢复可重用测试任务序列对应的执行环境。由于通常情况下,根据备份恢复可重用测试任务序列对应的执行环境所需的时间往往远少于重复执行可重用测试任务序列的时间,因而能够显著减少测试用例的执行时间,从而提高软件测试的效率。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种利用多个测试用例进行软件测试的方法,其中每个所述测试用例包括多个测试任务,所述方法包括:
分析所述多个测试用例以获得至少两个测试用例之间的至少一个可重用测试任务序列,所述可重用测试任务序列包括至少一个相同的测试任务;
根据可重用测试任务序列将所述多个测试用例划分成至少一个测试用例组,其中每个所述测试用例组中的多个测试用例具有至少一个可重用测试任务序列;
对所述至少一个测试用例组中的多个测试用例的每一个,利用测试任务的执行脚本产生测试用例的执行脚本,所述测试用例的执行脚本包括用于可重用测试任务序列的备份或恢复的至少之一。
2.根据权利要求1的方法,进一步包括:
执行测试用例;
响应于用于可重用测试任务序列的备份,对可重用测试任务序列对应的执行环境进行备份。
3.根据权利要求2的方法,进一步包括:
响应于用于可重用测试任务序列的恢复,根据备份恢复可重用测试任务序列对应的执行环境。
4.根据权利要求2的方法,其中响应于用于可重用测试任务序列的备份,对可重用测试任务序列对应的执行环境进行备份进一步包括:
响应于用于可重用测试任务序列的备份,判断备份是否能够加速软件测试;
如果所述判断结果为是,对可重用测试任务序列对应的执行环境进行备份。
5.根据权利要求4的方法,其中根据进行备份和恢复的时间和可重用测试任务序列的执行时间进行所述判断。
6.一种利用多个测试用例进行软件测试的系统,其中每个所述测试用例包括多个测试任务,所述系统包括:
分析模块,配置为分析所述多个测试用例以获得至少两个测试用例之间的至少一个可重用测试任务序列,所述可重用测试任务序列包括至少一个相同的测试任务;
划分模块,配置为根据可重用测试任务序列将所述多个测试用例划分成至少一个测试用例组,其中每个所述测试用例组中的多个测试用例具有至少一个可重用测试任务序列;
产生模块,配置为对所述至少一个测试用例组中的多个测试用例的每一个,利用测试任务的执行脚本产生测试用例的执行脚本,所述测试用例的执行脚本包括用于可重用测试任务序列的备份或恢复的至少之一。
7.根据权利要求6的系统,进一步包括:
执行模块,配置为执行测试用例;
备份模块,配置为响应于用于可重用测试任务序列的备份,对可重用测试任务序列对应的执行环境进行备份。
8.根据权利要求7的系统,进一步包括:
恢复模块,配置为响应于用于可重用测试任务序列的恢复,根据备份恢复可重用测试任务序列对应的执行环境。
9.根据权利要求7的系统,其中所述备份模块进一步配置为:
响应于用于可重用测试任务序列的备份,判断备份是否能够加速软件测试;
如果所述判断结果为是,对可重用测试任务序列对应的执行环境进行备份。
10.根据权利要求9的系统,其中根据进行备份和恢复的时间和可重用测试任务序列的执行时间进行所述判断。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410054004.8A CN104850490B (zh) | 2014-02-18 | 2014-02-18 | 用于软件测试的方法和系统 |
US14/599,826 US9632917B2 (en) | 2014-02-18 | 2015-01-19 | Software testing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410054004.8A CN104850490B (zh) | 2014-02-18 | 2014-02-18 | 用于软件测试的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850490A true CN104850490A (zh) | 2015-08-19 |
CN104850490B CN104850490B (zh) | 2017-11-24 |
Family
ID=53798227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410054004.8A Expired - Fee Related CN104850490B (zh) | 2014-02-18 | 2014-02-18 | 用于软件测试的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9632917B2 (zh) |
CN (1) | CN104850490B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117333A (zh) * | 2015-08-24 | 2015-12-02 | 深圳市高斯贝尔家居智能电子有限公司 | 一种测试用例的管理方法及系统 |
CN106547679A (zh) * | 2015-09-17 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 脚本管理的方法和脚本管理平台 |
CN109783362A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 测试回滚控制方法及装置、终端和计算机可读存储介质 |
CN110362471A (zh) * | 2019-05-28 | 2019-10-22 | 中国平安人寿保险股份有限公司 | 测试用例处理方法、系统、终端及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391377B (zh) * | 2017-07-26 | 2021-01-05 | 成都科来软件有限公司 | 一种基于组合流程图测试软件集成的方法 |
US11023349B2 (en) * | 2017-12-15 | 2021-06-01 | Aveva Software, Llc | Load test framework |
CN109522214A (zh) * | 2018-10-09 | 2019-03-26 | 广州神马移动信息科技有限公司 | 测试方法、平台、客户端及系统、计算设备及可读介质 |
CN109614324B (zh) * | 2018-12-03 | 2022-02-08 | 北京云测信息技术有限公司 | 一种测试用例生成方法和装置 |
US11036622B2 (en) | 2019-06-03 | 2021-06-15 | Accenture Global Solutions Limited | Automated software testing |
CN112905476B (zh) * | 2021-03-12 | 2023-08-11 | 网易(杭州)网络有限公司 | 测试的执行方法及装置、电子设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160322A1 (en) * | 2004-01-13 | 2005-07-21 | West John R. | Method and system for conversion of automation test scripts into abstract test case representation with persistence |
CN101221503A (zh) * | 2008-02-01 | 2008-07-16 | 中国建设银行股份有限公司 | 软件测试方法及装置 |
CN103246599A (zh) * | 2012-02-10 | 2013-08-14 | 广州博纳信息技术有限公司 | 软件测评快速执行方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805795A (en) * | 1996-01-05 | 1998-09-08 | Sun Microsystems, Inc. | Method and computer program product for generating a computer program product test that includes an optimized set of computer program product test cases, and method for selecting same |
US6609216B1 (en) * | 2000-06-16 | 2003-08-19 | International Business Machines Corporation | Method for measuring performance of code sequences in a production system |
US6507842B1 (en) * | 2000-07-10 | 2003-01-14 | National Instruments Corporation | System and method for importing and exporting test executive values from or to a database |
US8239826B2 (en) * | 2004-07-16 | 2012-08-07 | International Business Machines Corporation | Automating modular manual tests including framework for test automation |
CN1955945A (zh) | 2005-10-25 | 2007-05-02 | 国际商业机器公司 | 为软件测试过程自动生成测试执行序列的方法和装置 |
US7673288B1 (en) * | 2005-11-01 | 2010-03-02 | Xilinx, Inc. | Bypassing execution of a software test using a file cache |
US7873944B2 (en) | 2006-02-22 | 2011-01-18 | International Business Machines Corporation | System and method for maintaining and testing a software application |
US7895565B1 (en) | 2006-03-15 | 2011-02-22 | Jp Morgan Chase Bank, N.A. | Integrated system and method for validating the functionality and performance of software applications |
JP4874277B2 (ja) | 2008-03-12 | 2012-02-15 | 株式会社日立ソリューションズ | 自動テスト実行システム |
US20100114939A1 (en) * | 2008-10-24 | 2010-05-06 | Schulman Elad | Software test management system and method with facilitated reuse of test components |
US8347147B2 (en) | 2009-03-09 | 2013-01-01 | Wipro Limited | Lifecycle management of automated testing |
US20110145643A1 (en) * | 2009-12-10 | 2011-06-16 | Microsoft Corporation | Reproducible test framework for randomized stress test |
US8516370B2 (en) * | 2010-02-26 | 2013-08-20 | Spirent Communications, Inc. | Session classes for process automation |
EP2386953B1 (en) | 2010-05-14 | 2018-02-07 | Sap Se | Systems and methods for generating reusable test components out of remote application programming interface |
US8850396B2 (en) * | 2010-05-27 | 2014-09-30 | Red Hat Israel, Ltd. | Performing software testing based on grouping of tests using test list entity |
GB201018991D0 (en) * | 2010-11-10 | 2010-12-22 | Net Magnus Ltd | Opus |
US8677320B2 (en) * | 2011-04-06 | 2014-03-18 | Mosaic, Inc. | Software testing supporting high reuse of test data |
US20130041900A1 (en) * | 2011-08-10 | 2013-02-14 | Bank Of America Corporation | Script Reuse and Duplicate Detection |
US9098634B2 (en) * | 2013-05-13 | 2015-08-04 | Hewlett-Packard Development Company, L.P. | Creating test templates based on steps in existing tests |
US9983984B2 (en) * | 2015-01-05 | 2018-05-29 | International Business Machines Corporation | Automated modularization of graphical user interface test cases |
-
2014
- 2014-02-18 CN CN201410054004.8A patent/CN104850490B/zh not_active Expired - Fee Related
-
2015
- 2015-01-19 US US14/599,826 patent/US9632917B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160322A1 (en) * | 2004-01-13 | 2005-07-21 | West John R. | Method and system for conversion of automation test scripts into abstract test case representation with persistence |
CN101221503A (zh) * | 2008-02-01 | 2008-07-16 | 中国建设银行股份有限公司 | 软件测试方法及装置 |
CN103246599A (zh) * | 2012-02-10 | 2013-08-14 | 广州博纳信息技术有限公司 | 软件测评快速执行方法 |
Non-Patent Citations (1)
Title |
---|
胡珊: "基于测试项抽取的测试用例复用方法", 《微电子学与计算机》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117333A (zh) * | 2015-08-24 | 2015-12-02 | 深圳市高斯贝尔家居智能电子有限公司 | 一种测试用例的管理方法及系统 |
CN106547679A (zh) * | 2015-09-17 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 脚本管理的方法和脚本管理平台 |
CN109783362A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 测试回滚控制方法及装置、终端和计算机可读存储介质 |
CN110362471A (zh) * | 2019-05-28 | 2019-10-22 | 中国平安人寿保险股份有限公司 | 测试用例处理方法、系统、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20150234733A1 (en) | 2015-08-20 |
US9632917B2 (en) | 2017-04-25 |
CN104850490B (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104850490A (zh) | 用于软件测试的方法和系统 | |
US10803209B2 (en) | Tracking the evolution of a design space | |
US20170364434A1 (en) | Splitting and merging microservices | |
US10175977B2 (en) | User profile based code review | |
CN104216793B (zh) | 应用程序备份、恢复的方法及设备 | |
CN105511957A (zh) | 用于生成作业告警的方法和系统 | |
CN105335133A (zh) | 用于生成业务规则模型的方法和装置 | |
US9471468B2 (en) | System, method, and computer program to improve the productivity of unit testing | |
CN104423983A (zh) | 用于开发、测试和部署应用的方法和装置 | |
US9898258B2 (en) | Versioning of build environment information | |
CN105700956A (zh) | 用于处理分布式作业的方法和系统 | |
CN104881355A (zh) | 一种用于检测测试覆盖的方法和系统 | |
US20180314516A1 (en) | Efficient software testing | |
US9134975B1 (en) | Determining which computer programs are candidates to be recompiled after application of updates to a compiler | |
US20180225357A1 (en) | Self-improving classification | |
US20190129785A1 (en) | Method and device for identifying problematic component in storage system | |
US9692649B2 (en) | Role assignment for servers in a high performance computing system based on measured performance characteristics | |
CN105446982A (zh) | 用于管理数据存储系统的方法和装置 | |
CN105574031A (zh) | 用于数据库索引的方法和系统 | |
CN105528365A (zh) | 用于管理可执行文件的方法和装置 | |
CN105335592A (zh) | 生成时间数据序列的缺失区段中的数据的方法和设备 | |
US8966455B2 (en) | Flow analysis in program execution | |
CN104424525B (zh) | 辅助确定项目范围的方法和装置 | |
US10963366B2 (en) | Regression test fingerprints based on breakpoint values | |
CN105677458A (zh) | 用于获取针对事件的约束的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171124 |
|
CF01 | Termination of patent right due to non-payment of annual fee |