将测试验证从测试执行分离转让专利

申请号 : CN201480083887.3

文献号 : CN107003931B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : I·莎妮I·舒弗A·尼桑

申请人 : 微福斯有限责任公司

摘要 :

示例性实施方式涉及将验证从测试执行分离。一些实施方式可以包括数据捕捉引擎,在被测应用的测试执行期间捕捉数据点。数据点例如可以包括应用数据、测试数据、和环境数据。另外,一些实施方式可以包括数据关联引擎,基于在特定测试执行状态期间发生的事件序列将数据点中的每一个数据点与被测应用的特定测试执行状态关联。此外,一些实施方式还可以包括测试验证引擎,基于数据点的关联从特定测试执行状态分离地验证被测应用的实际行为。

权利要求 :

1.一种用于将测试验证从测试执行分离的系统,包括:数据捕捉引擎,在被测应用的测试执行期间捕捉数据点,所述数据点包括应用数据、测试数据和环境数据;

数据关联引擎,将所述数据点中的每一个数据点与所述被测应用的特定测试执行状态相关联,所述数据点中的每一个数据点基于在所述特定测试执行状态期间发生的事件序列被关联,其中所述数据关联引擎通过以下步骤关联所述数据点中的每一个数据点:将测试执行的测试步骤指配为数据结构的主干;从指配的测试步骤中的第一测试步骤经由有向边连接所述数据点;将所述应用数据、所述测试数据、和所述环境数据指配为连接到所述主干的顶点;向所述有向边指配标签以标识所述顶点之间的关系的类型;以及测试验证引擎,基于所述数据点的所述关联从所述特定测试执行状态分离地验证所述被测应用的实际行为。

2.根据权利要求1所述的系统,其中:所述应用数据包括与所述被测应用的各种层级有关的数据,所述层级包括用户接口层级、代码层级、网络通信层级以及数据库层级中的至少一个;

所述测试数据包括与所述特定测试执行状态有关的数据,所述测试数据包括与所述被测应用有关的元数据、与所述特定测试执行状态有关的元数据以及与在所述特定测试执行状态期间执行的测试动作有关的元数据;并且所述环境数据包括与所述被测应用的环境有关的数据,所述环境数据包括与执行所述被测应用的硬件和编程有关的元数据。

3.根据权利要求2所述的系统,其中,所述数据关联引擎基于与特定数据点相关联的时间戳和与所述第一测试步骤相关联的时间戳之间的时间长度来连接所述数据点。

4.根据权利要求1所述的系统,其中:所述测试验证引擎基于在所述特定测试执行状态之后接收到的验证输入来验证所述实际行为。

5.根据权利要求4所述的系统,其中:所述数据关联引擎通过生成有向非循环图来关联所述数据点中的每一个数据点,所述有向非循环图是基于与所述数据点相关联的时间戳生成的;

所述测试验证引擎将所述验证输入转换为有向非循环图验证查询,所述有向非循环图验证查询是使用域专用语言被转换的;并且所述测试验证引擎使用所述有向非循环图验证查询来查询所述有向非循环图。

6.根据权利要求5所述的系统,其中:所述特定测试执行状态是第一特定测试执行状态;

在第二特定测试执行状态之前,将所述有向非循环图验证查询存储在存储设备中;并且

如果所述第二特定测试执行状态改变所述查询的结果,则生成警报。

7.根据权利要求1所述的系统,进一步包括:对验证进行存储的验证资源库,其中,所述测试验证引擎通过在特定时间点自动地执行所述验证来验证所述被测应用的所述实际行为。

8.根据权利要求7所述的系统,其中:所述测试验证引擎自动地报告所述验证的执行情况;并且所述特定时间点基于时间表。

9.根据权利要求7所述的系统,其中:每个存储的验证或在与所述特定测试执行状态对应的测试执行之前、或在所述测试执行期间、或在所述测试执行之后被定义。

10.一种计算机实施的方法,包括:在被测应用的测试执行期间经由处理器捕捉数据点,所述数据点包括与所述测试执行、所述被测应用以及所述被测应用的环境相关联的元数据;

经由所述处理器从代码的第一部分接收第一请求以将所述数据点中的每一个数据点分类到多种类型中的至少一种类型中;

响应于接收到所述第一请求,经由所述处理器将所述数据点中的每一个数据点分类到所述多种类型中的至少一种类型中;

经由所述处理器从代码的第二部分接收第二请求以将所捕捉的数据点中的每一个数据点与所述被测应用的所述测试执行相关联;以及响应于接收到所述第二请求,经由所述处理器将所捕捉的数据点中的每一个数据点与所述被测应用的所述测试执行相关联,其中,关联所捕捉的数据点中的每一个数据点包括:经由所述处理器生成包括主干的数据结构,所述主干包括被分类为所述多种类型中的第一类型的数据点;

经由所述处理器基于与剩余数据点相关联的时间戳经由有向边连接所述剩余数据点,所述剩余数据点是没有被分类为所述第一类型的数据点;并且向所述有向边指配标签以标识顶点之间的关系的类型。

11.根据权利要求10所述的计算机实施的方法,包括:经由所述处理器从代码的第三部分接收第三请求以验证所述被测应用的实际行为,所述第三请求是从与执行所述测试执行的测试组件不同的验证组件接收的;

响应于接收到所述第三请求,查询验证资源库以获得所关联的所捕捉的数据点中对所述查询进行响应的至少一部分数据点。

12.根据权利要求11所述的计算机实施的方法,包括:接收所关联的所捕捉的数据点中对所述查询进行响应的至少一部分数据点;并且使所关联的所捕捉的数据点中对所述查询进行响应的至少一部分数据点显示在显示设备上。

13.根据权利要求11所述的计算机实施的方法,其中,关联所捕捉的数据点中的每一个数据点包括生成有向非循环图。

14.一种非暂时性计算机可读存储介质,包括:当由处理器执行时使所述处理器进行以下操作的指令:

管理存储在存储设备上的数据结构,所述数据结构包括:包括被测应用的第一测试执行的测试步骤的主干,所述主干的每个测试步骤经由有向边与在所述测试执行期间捕捉的数据点连接,所述主干的每个测试步骤基于与所述数据点相关联的事件序列被连接;

连接到所述主干的顶点,所述顶点根据与所述测试执行相关联的元数据建模;以及与所述有向边相关联的标签,所述标签标识所述顶点之间的关系的类型;以及基于第二测试执行来更新所述数据结构。

15.根据权利要求14所述的非暂时性计算机可读存储介质,其中,管理所述数据结构包括:

接收访问所述数据结构的查询,所述查询包括用于验证所述被测应用的实际行为的验证信息;并且

传送来自所述数据结构的对查询进行响应的信息。

说明书 :

将测试验证从测试执行分离

背景技术

[0001] 可以执行应用测试以提供关于被测应用(“AUT”)的信息。例如,可以执行应用测试以确定AUT是否包括任意错误或其他缺陷。尽管各种技术可用于应用测试,基础应用测试步
骤可以涉及两个主要类型的测试步骤:(1)操纵、驱动、或查询被测应用(“AUT”)的动作步
骤;以及(2)验证与动作步骤相关联的预期结果的验证步骤。

附图说明

[0002] 以下详细描述参考附图,其中:
[0003] 图1是符合所公开的实施方式的将测试验证从测试执行分离的示例性系统的框图;
[0004] 图2是符合所公开的实施方式的示例性验证设备的框图;
[0005] 图3是符合所公开的实施方式的示例性验证设备的框图;
[0006] 图4是符合所公开的实施方式的对数据点进行关联的示例性过程的流程图;
[0007] 图5是符合所公开的实施方式的有向非循环图的框图的示例;
[0008] 图6是符合所公开的实施方式的验证输入到有向非循环图验证查询的转换的示例;
[0009] 图7是符合所公开的实施方式的将测试验证从测试执行分离的示例性过程的流程图;并且
[0010] 图8是符合所公开的实施方式的示例性机器可读存储介质的框图。

具体实施方式

[0011] 以下详细描述参考附图。在附图和以下描述中使用相同的附图标记尽可能地指代相同的或类似的部分。尽管本文所档中描述了若干示例,但修改、改编、和其他实施方式是
可能的。相应地,以下详细描述并未限制所公开的示例。相反,可以通过所附权利要求来限
定所公开的示例的适当范围。
[0012] 如以上讨论的,基础应用测试步骤可以设计两个主要类型的测试步骤:(1)操纵、驱动、或查询被测应用(“AUT”)的动作或测试步骤;以及(2)验证与动作步骤相关联的预期
结果的验证步骤。传统地,基础应用测试步骤可以创建动作和验证之间的相关性。例如,可
能需要在测试AUT的执行期间执行验证。这种相关性可能具有若干缺陷,包括:当验证改变
(即使动作没有改变)时需要重新运行AUT的测试执行、仅仅验证对什么起作用的趋向(例
如,如果动作是点击按钮,则用户将验证按钮已经被点击)、将动作步骤结果与处于AUT的其
他层级的事件(例如,服务器日志、数据库日志、应用日志等等)关联的困难、以及基于变化
的动作和/或变化的验证的各种维持挑战。例如,考虑AUT是银行应用并且测试情况为确定
资金是否从第一帐户(“帐户A”)转移到第二帐户(“帐户B”)。测试者可以执行测试情况以执
行资金转移并且验证所转移的金额是否确实添加到帐户B。在完成测试之后,测试者已经决
定了另一个验证是必需的——验证所转移的金额从帐户A移除。然而,为了执行新的验证,
测试者必须重新运行动作步骤中的每一个——即使它们是与之前的步骤相同的步骤。相应
地,一些传统的测试方法将动作步骤与验证步骤紧密地联结,并且因此不允许将验证从测
试执行分离。
[0013] 本文所公开的示例可以通过将测试验证从测试执行分离来扩充或取代传统的应用测试。为此,一些示例可以从AUT的测试执行监视和捕捉数据点,并且定义、保存、以及执
行这些数据点的查询。查询可以被考虑为定义预期的应用行为的新方法,并且可以充当传
统脚本中的验证步骤。例如,符合所公开的实施方式的示例可以在AUT的测试执行期间捕捉
数据点、将数据点中的每一个数据点与AUT的特定测试执行状态(例如,在特定时间点的系
统的状态)关联、并且基于数据点的关联从特定测试执行状态分离地验证AUT的实际行为。
如本文所所使用的,特定测试执行状态可以是的状态。
[0014] 现在参考附图,图1是将测试验证从测试执行分离的示例性系统100的框图。可以在不背离公开的示例的范围的情况下以多个不同的配置实施系统100。在图1所示的示例
中,系统100可以包括验证110、客户端设备120、验证资源库130、以及用于将验证设备110与
客户端设备120和/或验证资源库130连接的网络140。
[0015] 验证设备110可以是执行符合所公开的示例的各种功能的计算系统。例如,验证设备110可以是服务器、台式计算机、膝上型计算机、和/或任意其它适当类型的计算设备。在
一些示例中,验证设备110可以处理从客户端设备120和/或验证资源库130接收到的信息。
例如,验证设备110可以基于从客户端设备120捕捉到数据的和/或从验证资源库130接收到
的数据从特定测试执行状态分离地验证AUT的实际行为。以下例如关于图2和图3更详细地
描述了验证设备110的示例以及可以由设备110执行的特定功能。
[0016] 客户端设备120可以是由用户操作的计算系统。例如,客户端设备120可以是台式计算机、膝上型计算机、平板机计算设备、移动式电话、服务器、和/或任意其他类型的计算
设备。在一些示例中,客户端设备120可以是执行符合所公开的特定实施方式的操作的计算
设备。例如,客户端设备120可以适于向验证设备110传送与AUT的测试执行有关的数据,诸
如像与在应用测试期间执行的动作步骤有关的数据。
[0017] 客户端设备120可以包括处理器以执行存储在机器可读存储介质中的指令。在图1所示的示例中,客户端设备120可以包括处理器122、机器可读存储介质124、显示设备126,
以及接口128。客户端设备120的处理器122可以是至少一个处理单元(CPU)、微处理器、和/
或另一个硬件设备以执行用于执行操作的指令。例如,处理器122可以提取、解码、并且及执
行存储在机器可读存储介质124中的指令(诸如测试执行应用指令127和/或AUT指令129)以
测试AUT。尽管在图1所示的示例中AUT位于客户端设备120上,但测试执行指令127和/或AUT 
129可以位于不同的机器上和/或可以跨多个计算设备或系统而存在。机器可读存储介质
124可以是任意电子、磁性、光学、或存储由处理器122执行的指令的其他非暂时性存储设
备。显示设备128可以是向操作客户端设备120的用户(例如,测试者)呈现诸如AUT的用户接
口之类的信息的任意类型的显示设备。接口设备128可以是促进客户端设备120的内部组件
与诸如用户动作验证设备110之类的外部组件之间的数据的交换的硬件和/或程序的任意
组合。在一些示例中,接口设备128可以包括网络接口设备,该网络接口设备允许客户端设
备120经由网络140从各个组件接收数据并且向各种组件发送数据,诸如向验证设备110发
送数据并且从验证设备110接收数据。
[0018] 验证资源库130可以是促进数据的存储的任意类型的存储系统配置。例如,验证资源库130可以促进在AUT的测试执行期间捕捉的数据点(例如,SaaS、SQL、访问,等等数据库)
的定位、访问、和调取。能够通过多种方法来填充验证资源库130。例如,验证设备110可以通
过接收、生成、和/或以另外方式访问验证的集合并且将验证的集合存储在验证资源库130
中以填充验证资源库130。作为另一个示例,验证设备110可以利用由验证设备110捕捉和关
联的数据点来填充验证资源库130,并且将所关联的数据点存储在验证资源库130中。在一
些实施方式中,数据点可以被存储为有向非循环图(“DAG”)。传统地,DAG是由顶点(例如,形
成图的基本单元)的集合和有向边(例如,从顶点集合中的第一顶点指向顶点集合中的第二
顶点的边)形成的定向图。如本文所所使用的,DAG并不一定意指传统DAG中所包括的数据的
图形表示。相反,如本文所所使用的DAG可以包括以允许系统100确定由传统DAG表示的数据
(例如,数据点的分类、与特定数据点相关联的有向边、和/或与数据点相关联的顶点)的方
式存储数据点的图形表示和/或数据结构。在一些示例中,数据结构可以是阵列、记录、数据
库条目、查找表格、散列表、映射表、树、链接表、和/或任意其他类型的数据结构。以下例如
关于图5更详细地讨论符合所公开的实施方式的DAG的示例。
[0019] 尽管在图1所示的示例中验证资源库130是在组件110和120外部的单个组件,但验证资源库130可以包括分立的组件和/或可以是设备110、120、和/或另一个设备的一部分。
在一些实施方式中,验证资源库130可以由能够通过网络140远程地访问、创建、控制和/或
以另外方式管理数据的设备110和/或其他设备的组件来管理。
[0020] 网络140可以是促进诸如验证设备110和客户端设备120之类的远程组件之间的通信的任意类型的网络。例如,网络140可以是局域网(LAN)、广域网(WAN)、虚拟专用网络、专
用内联网、因特网、和/或无线网络。
[0021] 图1中图示出的布置仅仅是示例,并且可以以多个不同的配置实施系统100。例如,尽管图1示出了一个验证设备110、一个客户端设备120、一个验证资源库130、和一个网络
140,但系统100可以包括任意数量的组件110、120、130、和140、以及未在图1中描绘的其他
组件。例如,系统100可以省略组件110、120、130、和140中的任意一个,和/或组件110、120、
130、和140中的至少一个的功能可以被合并到另一个组件(例如,组件110、120、130、140、
和/或未在图1中示出的组件)中。
[0022] 图2是符合所公开的实施方式的示例性验证设备210的框图,在特定方面,验证设备210可以与图1的验证设备110相对应。可以以各种方式实施验证设备210。例如,设备210
可以是专用计算机、服务器、大型计算机、和/或任意类型的其他计算设备。在图2所示的示
例中,关系设备210可以包括处理器220和机器可读存储介质230。
[0023] 处理器220可以是至少一个处理单元(CPU)、微处理器、和/或执行用于执行操作的指令的另一硬件设备。例如,处理器220可以提取、解码、和执行存储在机器可读存储介质
230中的验证指令240(例如,指令242、244、和/或246)以执行符合所公开的示例的操作。
[0024] 机器可读存储介质230可以是存储可执行指令的任意电子的、磁的、光学的、或者其他物理存储设备。因此,机器可读存储介质230例如可以是存储器、存储器驱动器、光盘,
等等。在一些实施方式中,机器可读存储介质230可以是非暂时性计算机可读存储介质,其
中术语“非暂时性”不包含暂时的传播信号。可以利用当由处理器230执行时执行符合所公
开的实施方式的操作的指令来对机器可读存储介质230进行编码。例如,机器可读存储介质
240可以包括这样的指令:通过在AUT的测试执行期间捕捉数据点将数据点中的每一个数据
点与AUT的特定测试执行状态关联,以及基于数据点的关联来验证AUT的实际行为从而执行
操作以将测试验证从测试执行分离。在图2所示的示例中,机器可读存储介质230可以包括
数据捕捉指令242、数据关联指令244、以及测试验证指令246。
[0025] 数据捕捉指令242可以用于在AUT的测试执行期间捕捉数据点。在一些实施方式中,当由处理器220执行数据捕捉指令242时,数据捕捉指令242可以使处理器220和/或另一
个处理器在AUT的测试执行期间捕捉数据点。数据点可以与测试执行、在测试执行期间的
AUT、以及在测试执行期间的AUT的环境有关。例如,数据捕捉指令242可以使处理器220和/
或另一个处理器从在测试执行期间执行测试和/或实施AUT的一个或多个计算系统访问、接
收、或以另外方式获得数据点。在一些示例中,可以通过将代理安装在各种物理或虚拟系统
组件上以监视特定组件如何起作用并且向诸如与验证设备110相关联的存储设备之类的存
储设备传送数据点来捕捉数据点。然后可以由验证设备110接收和/或捕捉所传送的数据
点。代理可以是简单的(例如,监视中央处理单元(“CPU”)的代理,其可以简单地询问操作系
统CPU使用层级)或者是复杂的(例如,与测试工具集成的代理,其跟随在AUT的测试执行期
间的所有测试步骤)。替换地(或者与代理的使用结合),可以无代理而监视信息。例如,监视
服务器可以向各种组件查询关于组件存储器使用的信息。
[0026] 在一些实施方式中,所捕捉的数据点可以包括与AUT的各种层级——诸如用户接口层级(例如,UI快照、UI目标提取,等等)、代码层级(例如,在UI背后执行的代码)、网络通
信层级(例如,客户端设备120和验证设备110之间的网络通信)、以及数据库层级(例如,在
测试执行期间由AUT访问的数据库)有关的数据。额外地,在一些示例中,测试数据可以包
括:与诸如与AUT有关的元数据AUT(例如,AUT版本)之类的特定测试执行状态有关的数据、
特定测试执行状态(例如,测试数据/时间、测试者名称,等等)、以及在特定测试执行状态期
间执行的测试动作和/或步骤。此外,在一些示例中,环境数据可以包括与AUT的环境有关的
数据,并且可以包括元数据,该元数据与硬件(例如,设备创建、CPU使用、存储器使用、资源
使用,等等)和编程(例如,操作系统、浏览器,等等)有关,其中,硬件和编程与AUT的测试的
执行(例如,服务器日志)有关,和/或与AUT本身的执行(例如,应用服务器错误)有关。以下
例如关于图2‑8更详细地描述在AUT的测试执行期间捕捉数据点的示例。
[0027] 数据关联指令244可以用于对数据点进行关联。例如,当数据关联指令244由处理器220执行时,数据关联指令244可以使处理器220将数据点中的每一个数据点与AUT的特定
测试执行状态相关联。在一些实施方式中,可以基于在特定测试执行状态期间出现的事件
序列来关联数据点。例如,数据关联指令244可以使处理器220以允许数据的语境查询的方
式生成DAG和/或存储数据。在一些示例中,DAG和/或关联的数据可以被存储在诸如验证资
源库130之类的资源库中。以下例如关于图4、图5、和图7来更详细地描述对数据点进行关联
的示例。
[0028] 测试验证指令246可以用于基于数据点的关联从特定测试执行状态分离地验证AUT的实际行为。例如,当由处理器220执行测试验证指令246时,测试验证指令246可以使处
理器220基于或在特定测试执行之前、或在特定测试执行期间、或在特定测试执行之后接收
到的验证输入(例如,自然语言查询)来验证AUT的实际行为。例如,验证数据库130可以包括
或在与特定测试执行状态对应的测试执行之前、或在测试执行期间、或在测试执行之后被
定义的存储的验证。在一些实施方式中,使用域专用语言将验证输入转换为验证(例如,有
向非循环图验证查询),和/或将验证输入存储在诸如验证资源库130之类的存储系统中。以
下例如关于图5和图6更详细地描述从特定测试执行状态分离地验证AUT的实际行为的示
例。
[0029] 图3是符合所公开的实施方式的示例性验证设备310的框图。在特定方面,验证设备310可以与图1的验证设备110和/或图2的验证设备210相对应。可以以各种方式实施设备
310。例如,设备310可以是专用计算机、服务器、大型计算机、和/或任意其它适当类型的计
算设备。在图3所示的示例中,设备310可以包括数据捕捉引擎320、数据关联引擎330、以及
测试验证引擎340。
[0030] 引擎320、330、和340可以是用于实施符合所公开的示例的功能的电子电路。例如,引擎320、330、和340可以表示用于实施符合所公开的实施方式的功能的硬件设备和编程的
组合。在一些示例中,引擎320、330、和/或340的功能可以与通过图2的验证设备210所执行
的操作相对应,诸如(在以上关于图2描述的)当由处理器220执行分离指令240时所执行的
操作。在图3中,数据捕捉引擎320可以表示执行与当处理器220执行数据捕捉指令242时所
执行的那些操作类似的操作的硬件和编程的组合。类似地,数据关联引擎330可以表示执行
与当处理器220执行数据关联指令244时所执行的那些操作类似的操作的硬件和编程的组
合,并且测试验证引擎340可以表示执行与当处理器220执行测试验证指令246时所执行的
那些操作类似的操作的硬件和编程的组合。
[0031] 图4是符合所公开的实施方式的用于对数据点进行关联的示例性过程400的流程图。尽管以下参考图1的系统100和/或系统100的特定组件来描述过程400的执行,但可以使
用用于执行过程400的至少一个步骤的其它适当的系统和设备。例如,可以由验证设备210、
验证设备310、和/或任意其它适当的设备来执行由验证设备110执行的如下所述的处理。可
以以存储在机器可读存储介质上的可执行指令的形式和/或以电子电路的形式实施过程
400。
[0032] 在已经在AUT的测试执行期间捕捉了数据点之后,可以开始过程400(步骤S405)。一旦已经捕捉了数据点,则过程400可以用于生成DAG。例如,过程400可以包括将数据点分
类到多种类型中的至少一种类型中(步骤S410)。例如,可以基于测试执行的步骤、数据类型
(例如,CPU、存储器、UI对象用户动作、网络分组,等等)、特定用户(例如,运行测试的用户的
身份)、AUT创建(在数据点被捕捉时的AUT的特定创建版本)、和/或任意其它适当的分类来
对数据点进行分类。过程400还可以包括生成包括主干的数据结构,其中主干可以包括被分
类为多种类型中的第一类型的数据点。例如,系统100可以指配第一类型的数据点(例如,测
试执行的测试步骤)以作为数据结构的主干(步骤S420)。
[0033] 过程400还可以包括基于与剩余数据点(例如,没有被分类为第一类型的数据点)相关联的时间戳经由有向边来连接剩余数据点(步骤S430)。例如,可以从第一类型的第一
数据点(例如,测试步骤中的第一测试步骤)经由有向边来连接数据点。在一些示例中,可以
基于与所捕捉的数据点中的特定数据点相关联的时间戳与与第一测试步骤相关联的时间
戳之间的时间长度来连接数据点。例如,系统100可以基于测试步骤何时被执行来顺序地在
主干中将测试步骤进行排序。可以利用特定测试步骤来跟踪并且关联与特定测试步骤相关
联的事件。例如,系统100可以跟踪UI对象。UI扫描仪可以周期性地运行并且自动地标识UI
中的结构化对象、它们的属性、和它们的值。作为另一个示例,系统100可以通过实施关于对
象的创建、对象的运行、对象的终止等等而监视线程的线程事件监视器来跟踪与特定测试
步骤相关联的系统事件,并且基于线程和对象标识符使对象的创建、运行、和/或终止与特
定测试事件相关联。
[0034] 过程400还可以包括指配元数据作为连接到主干的顶点(步骤S440)。例如,系统100可以确定主干的元素并且可以向每个特定元素(例如,每个测试步骤)指配被跟踪的元
数据。例如,系统100可以基于时间关系(例如,在特定测试步骤之后发生的事件)或者基于
另一个适当的方法伦(例如,着色网络分组以跟踪它们至服务器代码)来跟踪元数据。另外,
过程400还可以包括向有向边指配标签以标识顶点之间的关系的类型(步骤S450)。在一些
实施方式中,系统100可以基于从安装在各种物理或虚拟系统组件上的代理接收到的数据
向有向边指配标签。例如,代理可以包括当由处理器执行时将系统发生的事件与规则列表
进行比较的指令,如果事件与特定规则匹配,代理注释事件之间的标签关联。例如,假定规
则列表包括当测试步骤涉及浏览器的使用时要求对有向边加标签“使用”的使用加标签规
则。当执行调用命名为“浏览器”的对象的测试步骤时,代理可以将对象的调用与规则列表
进行比较,并且基于列表中的使用加标签规则对有向边加标签“使用”。
[0035] 过程400还可以包括将数据结构存储(步骤S460)在存储设备中。在一些实施方式中,数据结构可以被存储在存储设备中,诸如非暂时性计算机可读存储介质、诸如验证设备
110、验证资源库130、和/或另一个设备中的机器可读存储介质。在数据点已经被分类(步骤
S410)、数据结构的主干已经被指配(步骤S420)、剩余数据点被连接(步骤S430)、元数据已
经被指配为顶点(步骤S440)、标签已经被指配给有向边(步骤S450)、以及数据结构已经被
存储(步骤S460)之后,则可以结束过程400(步骤S475)。
[0036] 图5是符合所公开的实施方式的DAG 500的框图的示例。例如,DAG 500可以表示已经基于在特定测试执行状态期间发生的事件序列被关联的在AUT的测试执行期间捕捉的数
据点。尽管以下将示例DAG 500描述为由图1的系统100和/或系统100的特定组件管理、更
新、和/或以另外方式利用,但可以使用管理、更新、和/或以另外方式利用DAG 500的其它适
当的系统和设备。例如,可以通过验证设备210、验证设备310、和/或任意其它适当的设备来
执行如由验证设备110执行的如下所述的处理。可以以存储在机器可读的存储介质上的可
执行指令的形式和/或通过电子电路来实施关于DAG 500执行的处理。
[0037] 如图5中所示,DAG 500可以包括与AUT的一个或多个特定测试执行有关的数据。在图5所示的示例中,数据包括与应用数据502a有关的数据点(例如,创建号)、测试数据(例
如,测试的日期)502b、以及环境数据502c(例如,操作系统和浏览器类型)。DAG 500还包括
充当用于DAG中的顶点的每一个的锚节点的主干(测试步骤510a、520a、530a、540a、和550a
的集合)。在此示例中,主干由在AUT的测试执行期间执行的测试步骤组成,但是符合所公开
的实施方式的DAG可以使用数据点的任意适当的分类作为主干。例如,主干可以根据用户动
作、记录的AUT web页面、UI对象、和/或任意其它适当的分类被包括。
[0038] DAG 500的主干基于在特定测试执行状态期间发生的事件序列被关联,并且因此主干把测试步骤510a、520a、530a、540a、以及550a中的各种步骤链接在一起。在图5所示的
示例中,测试步骤510a发生在测试步骤520a之前、测试步骤520a发生在测试步骤530a之前、
测试步骤530a发生在测试步骤540a之前、并且测试步骤540a发生在测试步骤S550a之前。在
此示例中,主干的每个部分(例如,每个测试步骤)经由从测试步骤的第一测试步骤510a到
测试步骤的最后测试步骤550a的有向边(为了清晰仅仅标记了有向边560)被连接,并且有
向边(为了清晰仅仅标记了有向边560a)已经被加标签(为了清晰仅仅标记了标签570a)以
标识顶点之间的关系的类型。例如,测试步骤510a经由有向边与测试步骤520a、530a、和
540a直接链接,并且在加标签中示出了链接的原因和/或结果。例如,测试步骤510a由测试
步骤520a、530a、和540a组成,测试步骤520a在测试步骤530a之前,测试步骤530a在测试步
骤540a之前、并且测试步骤550a在测试步骤540a之前。
[0039] 此外,DAG 500中的每个测试步骤具有从测试和/或应用环境捕捉的并且与特定测试步骤关联的额外信息。此额外信息被指配为连接至主干的顶点(为了清晰仅仅标记了顶
点520b、520c、520d、520e、和520f)。例如,测试步骤520a涉及打开浏览器。在这种情况下,打
开浏览器的步骤包括使用浏览器(对象),并且其被用于特定动作(在这种情况下,特定动作
为打开)。因此,在该特定测试执行状态期间,通过调用浏览器的打开函数自动地打开浏览
器。不仅仅通过就AUT和环境而言将测试步骤与接下来方面链接,而且还由基本上指示那些
步骤的概念意义的标签来在DAG 500中对此信息进行建模。
[0040] 图6是符合所公开的实施方式的将验证输入610转换成有向非循环图验证查询620的示例。尽管示例性转换在以下被描述为由图1的系统100和/或系统100的特定组件执行,
但可以使用转换验证输入的其它适当的系统和设备。例如,可以通过验证设备210、验证设
备310、和/或任意其它适当的设备来执行如由验证设备110执行的如下所述的处理。可以以
存储在机器可读存储介质上的可执行指令的形式和/或由电子电路来实施关于对验证输入
610进行转换而执行的处理。
[0041] 验证设备110可以生成在显示设备上向用户显示的用户接口。用户可以键入定义将如何对验证设备110进行查询的验证输入。例如,验证输入可以是一系列条件语句、问题、
或任意其它适当的输入。在图6所示的示例中,验证输入610涉及根据与打开浏览器、导航到
“search.com”、键入HP、点击搜索、以及随后具有搜索结果列表中的“HP.com”的测试步骤对
应的单个或多个AUT的多个测试执行来确定数据点。另外,可以使用域专用语言(例如,为验
证设备110专门指定的计算机语言)将验证输入(例如,验证输入610)键入用户接口,和/或
可以使用由验证设备110使用域专用语言转换为DAG验证查询620(例如,能够从诸如图5的
DAG 500的DAG获得相关的信息的查询)的任意其他输入(例如,自然语言)将验证输入键入
用户接口。在一些实施方式中,域专用语言可以类似于行为驱动开发语法。
[0042] DAG验证查询(例如,DAG验证查询620)可以存储为诸如验证资源库130之类的验证资源库中的验证。验证资源库可以包括多个存储的验证,其中存储的验证中的每一个或在
与特定测试执行状态对应的测试执行之前、或在测试执行期间、或在测试执行之后被定义。
例如,验证(例如,有向非循环图验证查询)可以在AUT的第一特定测试执行状态之后、但是
在AUT的第二特定测试执行状态之前被存储在存储设备(例如,验证资源库130)中。如果第
二特定测试执行状态改变来自在第一特定测试执行状态之后获得的那些结果,则验证设备
110可以使得警报被生成,该警报将由显示设备进行显示。警报可以包含关于在第一特定测
试执行状态之后的验证与在第二特定测试执行状态之后的验证之间的差别的信息。作为另
一个示例,验证设备110可以通过在特定时间点自动地执行验证来自动执行存储设备(例
如,验证资源库中的)中的一个或多个验证。在一些实施方式中,特定时间点可以基于时间
表,并且验证设备110(例如,验证设备110的测试验证引擎)可以自动地报告验证的执行。
[0043] 图7是符合所公开的实施方式的将测试验证从测试执行分离的示例性过程700的流程图。尽管以下参考图1的系统100和/或系统100的特定组件来描述过程700的执行,但可
以使用执行过程700的至少一个步骤的其它适当的系统和设备。例如,可以通过验证设备
210、验证设备310、和/或任意其它适当的设备来执行由验证设备110执行的如下所述的处
理。可以以存储在机器可读存储介质上的可执行指令的形式和/或以电子电路的形式来实
施过程700。
[0044] 可以在AUT的测试执行开始时或接近AUT的测试执行开始时开始过程700(步骤S705)。过程700可以包括在AUT的测试执行期间经由处理器捕捉数据点(步骤S710)。如以上
所讨论的,数据点可以包括与测试执行、AUT、以及AUT的环境相关联的元数据。过程700还可
以包括经由处理器从代码的第一部分接收第一请求以将数据点中的每一个数据点分类到
多种类型中的至少一种类型中(步骤S720)。在一些实施方式中,系统100的组件可以向验证
设备110传送第一请求。例如,当由处理器执行代码的第一部分时,代码的第一部分可以使
处理器向验证设备110传送第一请求。响应于接收到第一请求,验证设备110可以经由处理
器将数据点中的每一个数据点分类到多种类型中的至少一种类型中(步骤S730)。例如,验
证设备110可以使用在以上描述方法中的一个或多个方法对数据点中的每一个数据点进行
分类。
[0045] 过程700还可以包括经由处理器从代码的第二部分接收第二请求以将每一个所捕捉的数据点与AUT的测试执行关联(步骤S740)。在一些实施方式中,系统100的组件可以向
验证设备110传送第二请求。例如,当由处理器执行代码的第二部分时,代码的第二部分可
以使处理器向验证设备110传送第二请求。响应于接收到第二请求,验证设备110可以经由
处理器将所捕捉的数据点中的每一个数据点与AUT的测试执行相关联。例如,数据点可以像
以上所描述的那样进行关联(例如,通过生成DAG)。在一些示例中,可以通过进行以下步骤
对数据点进行关联:经由处理器生成包括主干的数据结构,主干包括被分类为多种类型中
的第一类型的数据点;经由处理器基于与剩余数据点相关联的时间戳经由有向边连接剩余
数据点,该剩余数据点是没有被分类为第一类型的数据点;以及向有向边指配标签以标识
顶点之间的关系的类型。一旦数据点已经被关联,则可以结束过程700(步骤S785)。
[0046] 可以基于所关联的数据点来验证AUT的实际行为。例如,在一些实施方式中,系统100可以经由处理器从代码的第三部分接收第三请求以验证AUT的实际行为,其中该第三请
求是从与执行测试执行的测试组件不同的验证组件接收的。例如,如果在客户端设备120上
执行测试执行,则可以从验证设备110的一个或多个组件接收第三请求。换句话说,可以从
验证分离地执行测试执行。
[0047] 响应于接收到第三请求,系统100可以查询诸如验证资源库130之类的验证资源库以获得所关联的所捕捉的数据点中对查询进行响应的至少一部分数据点。例如,系统100可
以使用以上所讨论的处理和/或组件中的一个或多个来查询验证资源库,并且接收所关联
的所捕捉的数据点中对查询进行响应的至少一部分数据点。在一些示例中,系统100还可以
使得在显示设备上显示所关联的所捕捉的数据点中对查询进行响应的至少一部分数据点。
例如,如以上讨论的,系统100可以生成警报。可以在与客户端设备120相关联的显示设备上
和/或在任意其它适当的设备上显示警报。警报可以显示与查询有关的数据点。
[0048] 图8是符合所公开的实施方式的示例性机器可读存储介质800的框图。在特定方面,机器可读存储介质800可以与系统100相关联的存储设备、验证设备210、验证设备310、
和/或任意其它适当的存储设备对应。机器可读存储介质800可以是存储可执行指令的任意
电子的、磁的、光学的、或者其他物理存储设备。因此,机器可读存储介质800例如可以是存
储器、存储器驱动器、光盘,等等。在一些实施方式中,机器可读存储介质800可以是非暂时
性计算机可读存储介质,其中术语“非暂时性”不包含暂时的传播信号。可以利用当由处理
器810执行时执行符合所公开的实施方式的操作的指令来对机器可读存储介质800进行编
码。例如,机器可读存储介质800可以包括执行操作以管理数据结构的存储(诸如在图4的步
骤S460中的数据结构的存储)的指令。在图8所示的示例中,机器可读存储介质800可以包括
管理指令802和更新指令804。
[0049] 管理指令802可以用于管理存储在存储设备上的DAG(例如,数据结构)。例如,当由处理器810执行管理指令802时,管理指令802可以使处理器810管理包括包含AUT的第一测
试执行的测试步骤的主干的数据结构。在一些示例中,可以经由有向边将在测试执行期间
捕捉的数据点与主干的每个测试步骤连接。此外,可以基于与数据点相关联的时间戳来连
接主干的每个测试步骤。在一些示例中,数据结构还可以包括连接至主干的顶点,其中通过
与测试执行相关联的元数据来对顶点进行建模。此外,在一些示例中,数据结构可以包括与
有向边相关联的标签,该标签标识顶点之间的关系的类型。此外,在一些示例中,数据结构
的管理可以包括接收查询以对数据结构进行访问(例如,包括验证AUT的实际行为的验证信
息的查询)并且传送响应于查询的信息。
[0050] 可以以各种方式实施数据结构的管理。在一些示例中,系统100可以在每次执行测试时创建数据结构。在一些示例中,系统100可以通过创建临时数据结构以存储数据点之间
的关联来以批量操作的方式创建和/或更新数据结构。临时数据结构可以与数据结构相同、
类似于数据结构、或与数据结构不同。
[0051] 更新指令804可以用于基于AUT的额外的测试执行来更新数据结构。例如,当由处理器810执行更新指令804时,更新指令804可以使处理器更新数据结构以包括基于AUT(和/
或不同的AUT)的额外的测试执行(例如,基于第二测试执行)而生成的额外的DAG。可以已经
在原始的数据结构的创建之后执行了这些额外的测试执行。
[0052] 所公开的示例可以包括将测试验证从测试执行分离的系统、设备、机器可读的存储介质、和方法。为了解释的目的,参考图1至图8中图示出的组件来描述特定示例。然而,所
图示的组件的功能可以重叠,并且可以存在于更少或更多数量的元件和组件中。此外,所说
明的元素的功能的所有或一部分可以共同存在或者散步在若干地理上散布的位置之间。此
外,可以在各种环境中实施所公开的示例,并且所公开的示例不局限于所图示的示例。
[0053] 此外,如在说明书和所附权利要求中使用的,单数形式“一”和“该”还旨在包括复数形式,除非上下文另外指出其他。另外,尽管本文所可以使用术语第一、第二,等等以描述
各种元素,但这些元素不应当受限于该术语。相反,这些术语仅用于将一个元素与另一个元
素区分。
[0054] 另外,结合图1至图8描述的操作的顺序为示例,并且并不意图进行限制。在不背离所公开的示例的范围的情况下,可以使用或可以改变额外的或较少的操作或操作的组合。
此外,符合所公开的示例的实施方式不必以参考图1至图8所描述的那些次序的任意特定次
序来执行操作的序列。因此,本公开仅仅阐述实施方式的可能的示例,并且可以对所描述的
示例作出多种变化和修改。所有此类修改和变化旨在被包括在本公开的范围内并且由所附
权利要求来保护。