用于提供自动化产品测试的电子产品测试系统的制作方法

文档序号:30060121发布日期:2022-05-17 22:27阅读:259来源:国知局
用于提供自动化产品测试的电子产品测试系统的制作方法

1.本技术总体上涉及产品测试,更具体地,涉及用于提供产品测试的系统和方法。


背景技术:

2.许多产品需要产品测试。产品供应商通常要求产品在供客户可用之前进行测试。有时,在产品可用之后,仍然期望对产品进行测试。产品的测试可以是一个漫长且复杂的过程。产品中可能有许多不同的技术特征需要在不同的测试参数下进行测试。许多产品供应商可能没有内部产品测试者。这些产品供应商将会需要将产品测试外包给外部产品测试者。然而,找到能够充分执行产品测试项目的合适的产品测试者本身可能是一个耗时的过程,并且可能具有挑战性。如果产品供应商需要快速周转时间以对其产品进行产品测试,则这种外包技术可能不适合。


技术实现要素:

3.一种电子产品测试系统,包括:测试指令生成器,被配置为提供用户界面,该用户界面用于生成电子文件,该电子文件包含产品测试指令;以及产品测试设备,具有处理单元,该处理单元被配置为执行电子文件,以基于电子文件中的产品测试指令来执行产品的测试;其中该处理单元被配置为通过基于电子文件中的产品测试指令模拟人的动作,来执行产品的测试。
4.可选地,处理单元被配置为在没有来自光标控件的输入的情况下移动光标。
5.可选地,处理单元被配置为在没有来自光标控件的输入的情况下选择对象。
6.可选地,处理单元被配置为在没有来自键盘的输入的情况下在字段中键入文本。
7.可选地,处理单元包括解释器,解释器被配置为解释电子文件中的产品测试指令。
8.可选地,该系统还包括脚本生成器,脚本生成器被配置为基于电子文件中的产品测试指令来生成脚本。
9.可选地,处理单元被配置为运行脚本以用于测试产品。
10.可选地,用户界面包括图形用户界面,该图形用户界面提供用于用户选择的第一项集合和第二项集合,其中第一项集合包括多个动作标识符,并且第二项集合包括多个对象。
11.可选地,动作标识符中的一个标识要由产品测试设备执行的动作,并且对象标识符中的一个标识要由产品测试设备对其执行动作的对象。
12.可选地,动作标识符中的一个动作标识符标识点击动作、填写动作、键入动作、按压按键动作、悬停动作、下拉列表选择动作、复选框选中动作、复选框取消选中动作、刷新动作、导航动作、新建标签页动作、关闭标签页动作、滚动动作、拖放动作或点击并保持动作。
13.可选地,对象标识符中的一个对象标识符标识按钮、字段、下拉列表菜单、下拉列表选项、链接、图标、复选框、标题、窗口、文本、模态或用户界面元素。
14.可选地,电子文件中的产品测试指令具有将动作标识符与对应的对象标识符关联
起来的数据结构。
15.可选地,动作标识符标识要由产品测试设备执行的动作,并且对象标识符标识要由产品测试设备对其执行动作的对象。
16.可选地,动作标识符标识点击动作、填写动作、键入动作、按压按键动作、悬停动作、下拉列表选择动作、复选框选中动作、复选框取消选中动作、刷新动作、导航动作、新建标签页动作、关闭标签页动作、滚动动作、拖放动作或点击并保持动作。
17.可选地,对象标识符标识按钮、字段、下拉列表菜单、下拉列表选项、链接、图标、复选框、标题、窗口、文本、模态或用户界面元素。
18.可选地,该系统还包括非暂时性介质,该非暂时性介质将电子文件与产品的身份相关联地存储。
19.可选地,产品测试设备被配置为在处理单元执行测试动作之后,检查元素是否可见。
20.可选地,产品测试设备被配置为在处理单元执行测试动作之后,检查元件是否不可见。
21.可选地,产品测试设备被配置为在处理单元执行测试动作之后,检查指定页面是否已加载。
22.可选地,处理单元被配置为基于电子文件中的产品测试指令测试产品的多个特征。
23.可选地,处理单元被配置为基于电子文件中的产品测试指令测试产品的第一特征。
24.可选地,处理单元还被配置为基于另一个电子文件中的产品测试指令测试产品的第二特征。
25.可选地,测试指令生成器包括控件,用于允许用户在以简明语言查看产品测试指令或以编程格式查看产品测试指令之间进行选择。
26.可选地,处理单元被配置为:获得第一图像,该第一图像与产品的测试相关联;以及获得第二图像。
27.可选地,第一图像基于在产品的测试期间执行的第一任务的完成。
28.可选地,第一图像包括产品的第一内容,第一内容指示用于测试产品的第一任务的第一结果。
29.可选地,处理单元还被配置为:将掩模施加到第一图像以创建第一掩模图像;将掩模施加到第二图像以创建第二掩模图像;以及将第一掩模图像与第二掩模图像进行比较。
30.可选地,掩模被配置为遮挡第一图像的一个或多个部分。
31.可选地,处理单元被配置为基于第一掩模图像与第二掩模图像的比较,确定测试是否失败。
32.可选地,处理单元包括图像捕获器,图像捕获器被配置为通过将图像帧序列与第一图像进行比较、并且选择图像帧中的、与第一图像匹配的一个图像帧作为第二图像,来确定第二图像。
33.可选地,该系统还包括跟踪器,跟踪器被配置为跟踪产品测试设备与产品的交互。
34.可选地,跟踪器被配置为跟踪由产品测试设备操作的光标的移动。
35.可选地,跟踪器被配置为跟踪产品测试设备对标签页的选择、对按钮的选择、对图标的选择、对文本的选择或前述的任意组合。
36.可选地,跟踪器被配置为跟踪由产品测试设备输入的文本。
37.可选地,产品包括web页面、web站点、计算机应用、移动设备应用或处理器应用。
38.可选地,处理单元被配置为执行产品的基于机器的测试。
39.一种由电子产品测试系统执行的方法,包括:由测试指令生成器提供用户界面,用于生成电子文件,该电子文件包含产品测试指令;以及由产品测试设备的处理单元执行电子文件,以基于电子文件中的产品测试指令执行产品的测试;其中通过基于电子文件中的产品测试指令模拟人的动作,来执行产品的测试。
40.可选地,产品的测试包括在没有来自光标控件的输入的情况下,由处理单元移动光标。
41.可选地,产品的测试包括在没有来自光标控件的输入的情况下,由处理单元选择对象。
42.可选地,产品的测试包括在没有来自键盘的输入的情况下,由处理单元在字段中键入文本。
43.可选地,该方法还包括解释电子文件中的产品测试指令。
44.可选地,该方法还包括由脚本生成器基于电子文件中的产品测试指令生成脚本。
45.可选地,产品的测试包括由处理单元运行脚本以测试产品。
46.可选地,用户界面包括图形用户界面,并且该方法还包括提供用于用户选择的第一项集合和第二项集合,其中第一项集合包括多个动作标识符,并且第二项集合包括多个对象。
47.可选地,动作标识符中的一个动作标识符标识要由产品测试设备执行的动作,并且对象标识符中的一个对象标识符标识要由产品测试设备对其执行动作的对象。
48.可选地,动作标识符中的一个动作标识符标识点击动作、填写动作、键入动作、按压按键动作、悬停动作、下拉列表选择动作、复选框选中动作、复选框取消选中动作、刷新动作、导航动作、新建标签页动作、关闭标签页动作、滚动动作、拖放动作或点击并保持动作。
49.可选地,对象标识符中的一个对象标识符标识按钮、字段、下拉列表菜单、下拉列表选项、链接、图标、复选框、标题、窗口、文本、模态或用户界面元素。
50.可选地,电子文件中的产品测试指令具有将动作标识符与对应的对象标识符关联起来的数据结构。
51.可选地,动作标识符标识要由产品测试设备执行的动作,并且对象标识符标识要由产品测试设备对其执行动作的对象。
52.可选地,动作标识符标识点击动作、填写动作、键入动作、按压按键动作、悬停动作、下拉列表选择动作、复选框选中动作、复选框取消选中动作、刷新动作、导航动作、新建标签页动作、关闭标签页动作、滚动动作、拖放动作或点击并保持动作。
53.可选地,对象标识符标识按钮、字段、下拉列表菜单、下拉列表选项、链接、图标、复选框、标题、窗口、文本、模态或用户界面元素。
54.可选地,该方法还包括将电子文件与产品的身份相关联地存储在非暂时性介质中。
55.可选地,该方法还包括由产品测试设备在处理单元执行测试动作之后检查元素是否可见。
56.可选地,该方法还包括由产品测试设备在处理单元执行测试动作之后检查元素是否不可见。
57.可选地,该方法还包括由产品测试设备在处理单元执行测试动作之后检查是否指定页面已加载。
58.可选地,产品的测试包括基于电子文件中的产品测试指令测试产品的多个特征。
59.可选地,产品的测试包括基于电子文件中的产品测试指令测试产品的第一特征。
60.可选地,该方法还包括基于另一个电子文件中的产品测试指令来测试产品的第二特征。
61.可选地,测试指令生成器包括控件,用于允许用户在以简明语言查看产品测试指令或以编程格式查看产品测试指令之间进行选择。
62.可选地,该方法还包括:获得第一图像,该第一图像与产品的测试相关联;以及获得第二图像。
63.可选地,第一图像基于在产品的测试期间执行的第一任务的完成。
64.可选地,第一图像包括产品的第一内容,第一内容指示用于测试产品的第一任务的第一结果。
65.可选地,该方法还包括:将掩模施加到第一图像以创建第一掩模图像;将掩模施加到第二图像以创建第二掩模图像;以及将第一掩模图像与第二掩模图像进行比较。
66.可选地,掩模被配置为遮挡第一图像的一个或多个部分。
67.可选地,该方法还包括由评估器基于第一掩模图像与第二掩模图像的比较来确定测试是否失败。
68.可选地,该方法还包括由图像捕获器通过将图像帧序列与第一图像进行比较、并且选择与图像帧中的与第一图像匹配的一个图像帧作为第二图像,来确定第二图像。
69.可选地,该方法还包括由跟踪器跟踪产品测试设备与产品的交互。
70.可选地,该方法还包括由跟踪器跟踪由产品测试设备操作的光标的移动。
71.可选地,该方法还包括由跟踪器跟踪产品测试设备对标签页的选择、对按钮的选择、对图标的选择、对文本的选择或前述的任意组合。
72.可选地,该方法还包括由跟踪器跟踪由产品测试设备输入的文本。
73.可选地,产品包括web页面、web站点、计算机应用、移动设备应用或处理器应用。
74.可选地,产品的测试包括产品的基于机器的测试。
75.一种处理器可读介质包括指令集,其中处理单元对指令的执行将使一种用于产品测试的方法被执行,该方法包括:由测试指令生成器提供用户界面,用于生成电子文件,该电子文件包含产品测试指令;以及由产品测试设备的处理单元执行电子文件,以基于电子文件中的产品测试指令执行产品的测试;其中通过基于电子文件中的产品测试指令模拟人的动作,来执行产品的测试。
76.通过阅读下面对实施例的详细描述,其他方面和进一步的方面和特征将变得显而易见。
附图说明
77.附图图示了实施例的设计和用途,其中相似的元件用共同的附图标记表示。这些附图不一定是按比例绘制的。为了更好地理解如何获得上述的和其他的优点和目的,将呈现实施例的更具体的描述,其在附图中图示出。这些附图仅描绘了典型的实施例,因此不应被认为是对其范围的限制。
78.图1a图示了一种用于提供产品测试的系统。
79.图1b图示了图1a的系统的示例。
80.图2a图示了一种用于提供产品测试的方法。
81.图2b图示了一种跟踪产品测试会话的过程的方法。
82.图3图示了一种用于向产品测试者提供通知的用户界面的示例。
83.图4图示了一种具有用于允许产品测试者执行产品测试的用户界面的测试环境的示例。
84.图5图示了一种用于将分配的产品测试任务与产品测试问题、回答与跟踪器标识符链接起来的数据结构的示例。
85.图6图示了捕获产品测试者与被测试的产品的交互的图像的示例。
86.图7图示了一种用于创建与被测试的网页的图像相关联的图形的数据结构的示例。
87.图8a-图8c图示了一种总结产品测试的结果的报告的示例。
88.图9图示了一种用于允许用户创建产品测试任务并且定义产品测试参数的用户界面的示例。
89.图10a-图10e图示了一种向图1a的系统的管理员提供的报告的示例。
90.图11图示了一种用于提供产品测试的系统。
91.图12图示了图11的系统的示例。
92.图13a-图13f图示了使用测试界面执行产品测试的测试者的跟踪动作的示例。
93.图14图示了一种由产品测试机用来执行产品测试的界面的示例。
94.图15图示了一种图像处理技术。
95.图16图示了一种用于图像匹配的图像捕获的概念。
96.图17图示了一种用于提供产品测试的方法。
97.图18图示了一种产品测试系统的组件。
98.图19图示了一种用于产品测试的方法。
99.图20图示了一种产品测试系统的组件。
100.图21图示了一种用于产品测试的方法。
101.图22图示了一种产品测试系统的组件。
102.图23图示了一种用于产品测试的方法。
103.图24图示一种了用于提供产品测试的系统。
104.图25a-图25m图示了产品测试指令生成的示例。
105.图26a-图26b图示了可以由用户经由用户界面输入或选择的动作标识符的示例。
106.图26c图示了可以由用户经由用户界面输入或选择的对象标识符的示例。
107.图27a-图27b图示了一种允许用户在以简明语言查看产品测试指令与以编程格式
查看产品测试指令之间进行切换的用户界面的示例。
108.图28a-图28b图示了一种用于提供产品测试的系统。
109.图29图示了由电子产品测试系统提供的输出的示例。
110.图30图示了一种用于产品测试的方法。
111.图31是一种专用处理系统的框图。
具体实施方式
112.下文参照附图描述各种实施例。应当注意,附图不是按比例绘制的,并且在所有附图中,相似结构或功能的元素由相似的附图标记表示。还应当注意,附图仅意图便于对实施例的描述。它们并非意图作为对本发明的详尽描述,也不作为对本发明范围的限制。此外,所示的实施例不需要具有所示的所有方面或优点。结合特定实施例描述的方面或优点并不一定限于该实施例,并且可以在任何其他实施例中实践,即使没有如此示出。
113.图1a图示了用于提供产品测试的系统10。系统10被配置为将已经开发了产品的一方12与一个或多个产品测试者14相连接。借助于非限制性示例,产品可以是web页面、web站点、计算机应用(例如,企业应用)、移动(例如,手持)设备应用、用于专用处理器(例如,图像处理器、信号处理器、声音处理器、语音处理器、交通工具(诸如汽车、飞机等)中的处理器、或任何其他类型的处理器)的应用。产品测试者14可以是居住在世界不同地区中的个体。例如,测试者14可以是居住在城市的不同地区、不同的城市、不同的州和/或不同的国家。在所示的实施例中,系统10与不同于所述一方12的一16相关联。例如,提供产品的一方12(第一方)可以是第一公司,并且与所述一方12和产品测试者14对接的一方16(第二方)可以是第二公司,该第二公司不同于第一公司。此外,在一些实施例中,产品测试者14不是第一方12的雇员,也不是第二方16的雇员。例如,产品测试者14可以是个体承包商。在其他实施例中,产品测试者14中的一个或多个可以是所述一方16的雇员。
114.图1b图示了图1a的系统10的示例。系统10包括一个或多个输入1002、通知生成器1004、通信接口1008、回复计数器1040、比较器1042、筛选器1050、产品测试者管理模块1080、测试界面生成器1100、计时器1200、时间比较器1202、跟踪器1300、图形生成器1302、图像数据库1304、视频生成器1310、视频数据库1314、用户界面生成器1350、测试监测模块1400、测试结果取回模块1500和分析器1502。这些组件的细节将在下面进一步详细描述。应当注意,系统10不限于所示的示例,并且在其他实施例中,系统10可以具有其他配置。例如,在其他实施例中,系统10可以不包括图1b所示的组件中的一个或多个组件。在进一步的实施例中,可以使用多个设备来实现系统10,该多个设备具有图1b所示的组件中的一个或多个组件的不同方面集合。
115.在所示的实施例中,产品测试者14对一方16具有相应的成员资格和账户。例如,为了使人员有资格作为一方16的产品测试者,该人员可能需要经过对系统10的注册过程来成为产品测试者14。系统10中的产品测试者管理模块1080被配置为管理各种产品测试者14。产品测试者管理模块1080可以被配置为提供注册界面,以接收关于希望成为产品测试者14的人员的信息,从而使得该人员被注册为系统10中的产品测试者14。每个注册的产品测试者14将具有他/她的登录id和密码,这允许产品测试者14登录到系统10中。产品测试者管理模块1080还可以被配置为提供关于产品测试的培训,以培训该人员,从而使得该人员能够
有资格作为产品测试者14。在一些实施例中,产品测试者管理模块1080还管理各种产品测试者14的账户。例如,在产品测试者14完成产品测试项目之后,产品测试者管理模块1080可以基于产品测试项目的一个或多个特征来计算应付产品测试者14的费用。
116.在一些实施例中,产品测试者管理模块1080还管理各种产品测试者14的账户。例如,在产品测试者14完成产品测试项目之后,产品测试者管理模块1080可以基于产品测试项目的一个或多个特征来计算应付产品测试者14的费用。在一个实施方式中,测试者可以基于产品测试中涉及的任务(步骤)的数目来计算应付产品测试者14的费用。例如,如果产品测试项目涉及39个任务,并且产品测试者14与第二方16之间的约定费率是每个任务$2,那么产品测试者14针对这个项目的费用将会是39
×
2=$78。在一些实施例中,向系统10注册的所有产品测试者14具有相同的支付费率。在其他实施例中,不同的产品测试者14可以具有指示他们的经验、可靠性等的水平的不同得分。在这种情况下,基于这些度量,产品测试者14可以具有不同的相应的支付费率。
117.在系统10的使用期间,当第一方12已经开发了产品时,第一方12告知第二方16其产品需要被测试。例如,第一方12可以向系统10发送请求,并且可以向系统10发送关于要被测试的产品的信息。关于产品的请求和/或信息可以由系统10的(多个)输入1002接收。例如,如果产品是web页,则第一方12可以提供web页的链接、产品测试参数和产品测试任务。在一些实施例中,系统10中的用户界面生成器1350可以提供用于允许第一方12定义产品测试参数和产品测试任务的用户界面。这些信息也可以经由系统10的(多个)输入1002接收。例如,第一方12可以访问由系统10的用户界面生成器1350提供的用户界面,以生成任务列表供产品测试者14执行,并且创建与相应任务相对应的问题列表用于产品测试者来回答。在一个实现方式中,用户界面生成器1350被配置为当第一方12在线并且已经登录到第二方16的账户时,生成用户界面图像以显示在第一方12正在使用的设备上。
118.图2a图示了由图1的系统10执行的用于提供产品测试的处理器实现的方法200。可以参照图1a和图1b的系统10来描述方法200。响应于来自第一方12的请求,系统10提供通知1005以告知多个产品测试者14产品可用于产品测试(项202)。在所示的实施例中,产品与第一方12相关联,并且通知生成器1004与第二方16相关联,第二方16不同于第一方14。
119.在一些实施例中,由系统10提供的通知1005用于在web浏览器中显示。例如,产品测试者14可以在他/她的设备上打开web浏览器。web浏览器可以包括附加特征,该附加特征允许产品测试者14接收来自系统10的通知1005。在这种情况下,如果产品测试者14在线,则产品测试者14将接收到通知1005。另一方面,如果产品测试者14离线,则产品测试者14将不会接收到通知1005。在所示的实施例中,通知1005由系统10“广播”,意思是多个产品测试者14将接收到通知1005或者将访问这种通知1005。
120.在其他实施例中,通知1005可以用于在由产品测试通知应用创建的字段中显示。例如,产品测试者14可以在他/她的设备上安装产品测试通知应用,这允许产品测试者14接收来自系统1的通知1005。产品测试通知应用可以由第二方16提供,用于安装或下载到产品测试者14的设备上。产品测试者14所使用的设备可以是膝上型电脑、台式计算机或手持设备(例如,iphone、ipad、ipad mini、平板电脑等)。
121.在进一步的实施例中,通知1005可以被发送到作业列表代理,或者人群测试者供应商,诸如crowdflower或者土耳其机器人(mechanical turk)等。
122.因此,如在本说明书中所使用的,术语“通知”可以指用于告知产品测试者14的任何信息,其中这种信息可以被直接发送到产品测试者14所使用的设备上的用户界面,或者被发送到用于允许产品测试者14查看的作业列表代理。通知可以主动告知产品测试者14,或者可以被动告知产品测试者14(因为通知可以被张贴在产品测试者14可以搜索或发现这种通知的位置处)。
123.图3图示了用于向产品测试者14提供通知的用户界面300的示例。用户界面300包括用于显示由系统10提供的通知304的字段302,以指示产品测试项目可用。用户界面300还包括用于允许产品测试者14接受产品测试项目的特征306。
124.应当注意,用于向产品测试者14提供通知的用户界面300不限于先前描述的示例,并且在其他实施例中,用户界面300可以具有其他配置。
125.返回到图2的方法200以及图1a和图1b的系统10,接下来,通过网络从多个产品测试者中的产品测试者14正在使用的设备接收电子回复1010(项204)。在所示的实施例中,项204可以由系统10处的通信接口1008来执行。回复1010指示产品测试者14将执行产品测试。发送电子回复的网络可以是任何网络,诸如互联网、电信网络等。在一些情况下,可以使用由产品测试者14所利用的web浏览器来生成电子回复1010。例如,由产品测试者14利用的设备上的web浏览器可以包括附加特征,该附加特征允许产品测试者14接收来自系统10的通知1005(例如,ping、消息、帖子等),如图3所示的示例那样。相同的附加特征还可以允许产品测试者14提供他/她的回复(供系统10接收)以接受或注册产品测试项目。
126.在其他情况下,可以使用由产品测试者14所利用的产品测试通知应用来生成电子回复1010。例如,产品测试者14可以将产品测试通知应用安装到他/她的设备上,这允许产品测试者14接收来自系统10的通知1005。如所讨论的,产品测试通知应用可以由第二方16提供。相同的产品测试通知应用还可以允许产品测试者14提供他/她的回复(供系统10接收)以接受或注册产品测试项目。
127.在进一步的实施例中,如所讨论的,产品测试者14可以使用crowdflower或mechanical turk来获得关于产品测试项目的通知1005。在这种情况下,接受产品测试项目的回复1010将由使用crowdflower或mechanical turk的设备生成。
128.如图所示,方法200还包括响应于接收到的电子回复来更新回复计数(项205)。在所示的实施例中,项205由系统10的回复计数器1040执行。
129.在一些实施例中,方法200还可以包括:接收附加的电子回复/多个电子回复1010,跟踪回复1010的数目,并且将回复1010的数目与规定的数目相比较。在一些实施例中,系统10的通信接口1008被配置为从来自多个产品测试者14的一个或多个附加的产品测试者14接收一个或多个附加的电子回复1010,直到已经达到规定数目的电子回复1010。响应于由通信接口1008接收的每个回复,系统10中的回复计数器1040将会使回复计数递增1。在这种情况下,在通信接口1008从产品测试者14接收到第一电子回复1010之后,产品测试项目然后仅被分配给该产品测试者14,而不被分配给任何其他产品测试者14。通信接口1008继续接收附加的回复,直到回复1010的总数等于由系统10中的比较器1042确定的电子回复1010的规定数目。在所示的实施例中,规定数目的回复1010是一个回复。在其他实施例中,规定数目的回复1010可以多于一个。例如,在一些实施例中,规定数目的电子回复1010可以是三个、四个、五个、六个或七个。在其他实施例中,规定数目的电子回复1010可以是两个。在进
一步的实施例中,规定数目的电子回复1010可以多于七个。
130.参照图2,接下来,响应于电子回复,系统10然后提供包括由产品测试者14使用的测试界面的测试环境(项206)。在一些实施例中,测试界面可以由系统10中的测试界面生成器1100生成。此外,在一个实施方式中,项206可以由系统10执行,系统10在产品测试者14已经接受产品测试项目之后,提供用于在产品测试者14正在使用的设备上显示的测试界面。例如,生成的测试界面可以被输出到网络(例如,互联网)以传输到产品测试者14的设备。此外,在一个实施方式中,项206可以由测试界面生成器1100执行,测试界面生成器1100响应于产品测试者14接受进行产品测试项目,打开用于为产品测试者14呈现测试界面的虚拟机环境。
131.测试界面被配置为呈现产品的特征和产品测试指令,以允许第一产品测试者14基于产品测试指令对产品执行产品测试。在一些实施例中,产品测试指令为产品测试者14提供测试产品要执行的多个任务。例如,在一些情况下,被测试的产品包括web页面,并且产品测试指令被配置为规定在被测试的web页面上执行的一个或多个动作。
132.图4图示了测试环境400的示例,测试环境400具有用于允许产品测试者14执行产品测试的测试界面402。测试界面402包括用于呈现被测试的产品的特征的窗口404。在所示的示例中,产品包括web页面。窗口404可以允许产品测试者14经由链接访问web页面。响应于产品测试者14输入或点击链接,窗口404然后呈现web页面410的图像,以允许产品测试者14在其上执行产品测试。此外,在所示的示例中,窗口404中显示的web页面410包括一个或多个可选择特征411。测试界面402包括字段420,字段420为产品测试者14提供一个或多个任务422以在web页面410上执行。
133.在一些实施例中,任务422是产品测试指令的部分。任务422可以要求产品测试者14对web页面410的图像执行动作。例如,任务422可以是点击web页面410上的标签页、点击web页面410上的链接、在web页面410的字段中输入值、点击web页面410中的框等等。
134.如图4所示,测试界面402可以被配置为在基于产品测试指令已经执行动作之后,向产品测试者14呈现要回答的问题412。例如,问题412可以询问产品测试者14:在选择被测试的web页面410中的对象之后,产品测试者14是否看到弹出窗口,在选择web页面410中的某个选项之后,产品测试者14是否看到新图像等等。在所示的示例中,测试界面402还仅提供两个可能的回答414a、414b(“是”和“否”)来允许产品测试者14进行选择。这种技术减少了由产品测试者14提供的回答的模糊性。在其他实施例中,测试界面402可以提供两个以上的可能回答414,以允许产品测试者14进行选择,以基于产品测试者14执行产品测试指令中指定的任务来回答问题。
135.在一些实施例中,如果产品测试者14对任何产品测试问题选择“否”回答,则系统10终止产品测试会话,并且产品测试被认为由产品测试者14完成。在这种情况下,没有进一步的产品测试任务并且没有进一步的产品测试问题将被呈现给产品测试者14。这是因为如果被测试的产品有某个失败的特征,那么产品供应商可能想要马上知道这一点。此外,失败的特征可能影响产品的其他特征。因此如果产品中的特征没有通过产品测试,那么一个或多个其他特征也可能失败。在其他实施例中,代替终止产品测试会话,系统10可以允许产品测试者14继续测试产品。例如,系统10可以允许产品测试者14继续进行由产品测试指令所规定的产品测试中的剩余任务。此外,系统10可以允许产品测试者14测试与失败特征不相
关联的产品的其他特征。
136.在一些实施例中,方法200还包括将问题的回答存储在被测试的产品的测试结果文件中。如上所述,在产品测试者14已经执行测试产品的任务之后,响应于提供给产品测试者14的问题,回答可以是“是”回答或“否”回答。因此,在一些实施例中,用于测试产品的回答、问题和相关联的任务可以被存储在将这些项关联在一起的唯一数据结构中。图5图示了用于将产品测试任务502、相应的产品测试问题504、以及对于产品测试问题504的对应的回答506链接的数据结构500的示例。数据结构500还包括跟踪器标识符508,该跟踪器标识符508标识在测试产品的同时跟踪产品测试者14的交互的文件。每个跟踪器标识符508可以标识图像、视频文件或捕获产品测试者14在被测试的产品上的交互的任何其他交互信息。这些信息是有利的,因为它们允许(来自一方12或一方16)用户追溯地确定产品测试者14如何基于产品测试者14与被测试的产品的交互得出结论。跟踪器标识符508将在下面进一步详细描述。
137.在一些实施例中,测试界面402被配置用于在计算机屏幕或膝上型电脑屏幕上显示。在其他实施例中,测试界面402被配置用于在手持设备(例如,iphone、ipad、ipad mini、平板电脑等)上显示。
138.应当注意,测试界面402不限于先前讨论的示例,并且在其他实施例中,测试界面402可以具有其他配置。
139.在一些实施例中,在测试界面402被提供给产品测试者14之后,系统10中的计时器1200跟踪自从提供测试界面402以来经过的持续时间。在这种情况下,方法200还可以包括(由计时器1200)确定自从测试界面被提供给产品测试者14以来经过的时间量。方法200还可以包括使用时间比较器1202将该时间量与规定的持续时间进行比较。如果经过的时间已经超过了规定的持续时间(例如,起始截止时间),并且产品测试者14还没有开始执行产品测试任务,那么系统10将从产品测试者14处撤销产品测试项目。例如,系统10可以终止由产品测试者14正在使用的产品测试会话。在一些实施例中,规定的持续时间(起始截止时间)可以由系统10设置为产品测试会话开始之后的五分钟。在其他实施例中,规定的持续时间可以由系统10的管理员设置为具有其他值,诸如大于五分钟或小于五分钟的持续时间。因此,在一些实施例中,可以提供跟踪产品测试会话的进度的方法230(图2b)。在一些实施例中,方法230可以是方法200的一部分。方法230包括:使用计时器确定自从产品测试会话开始以来已经过去的时间量(项232),将该时间量与规定的持续时间进行比较(项234),并且如果确定的时间等于或超过规定的持续时间,则从产品测试者处撤销产品测试项目(项236)。在一些实施例中,方法200还可以包括终止产品测试会话。此外,在一个实现方式中,项236可以由测试界面生成器1100执行,测试界面生成器1100响应于经过时间满足规定的持续时间,关闭为产品测试者14呈现测试界面的虚拟机环境。
140.在一些实施例中,在测试界面402被提供给产品测试者14之后,方法200还包括跟踪产品测试者14与web页面的交互。例如,产品测试者14可以使用他/她的设备(例如,膝上型电脑、台式电脑、手持设备(诸如蜂窝电话)等)来执行产品测试。在这种情况下,系统10的跟踪器1300被配置为跟踪由产品测试者14操作的产品测试者的设备中的光标的位置。在一些情况下,如果产品测试者14正在使用具有触摸屏的蜂窝电话执行产品测试,则跟踪器1300可以被配置为跟踪施加在触摸屏上的手指位置的位置。因此,如在本说明书中所使用
的,术语“光标”不限于使用触摸板、鼠标或旋钮操作的显示项,并且术语“光标”还可以包括与施加在触摸屏上的手指的移动相关联的未显示项。
141.在一个实现方式中,测试界面402可以指示产品测试者14点击被测试的web页面的图像上的某个项。当产品测试者14正在操纵web页面中的光标时,当光标出现在web页面中时,系统10的跟踪器1300记录光标的位置。系统10还可以使用图形生成器1302,图形生成器1302被配置为生成表示所跟踪的移动的图形。在一些实施例中,图形包括穿过多个光标位置的线。此外,图形还可以包括选择标识符,该选择标识符标识web页面的图像中产品测试者14执行选择(例如,按钮的点击)的位置。例如,选择可以是由产品测试者14执行的对标签页的选择、对按钮的选择、对图标的选择、对文本的选择或前述的任意组合。
142.图6图示了捕获产品测试者与被测试的产品的交互的图像600的示例。如图所示,图像600包括被测试的网页602的图像、由产品测试指令规定的任务604以及与任务604相对应的问题606。在该示例中,任务604指示产品测试者14点击“存档”按钮,并且问题606询问产品测试者14被点击的项是否移动到存档区块(section)。图像600还示出了由图形生成器1302生成的图形608。图形608是线的形式,其指示产品测试者14在执行任务604时将光标移动到的位置。图形608还包括多个圆610(选择标识符的示例),该多个圆610标识web页面的图像中产品测试员14点击按钮的位置。
143.在一些实施例中,方法200还可以包括将电子图像600存储在非暂时性介质1304(图1b)中。非暂时性介质1304被示为图像数据库,但是在其他实施例中,非暂时性介质1304可以是任何存储器或存储设备。图像200包括web页面602的图像以及与web页面602的图像叠加的图形608。在一个实施方式中,对于给定的产品测试任务,系统10被配置为在产品测试者14与web页面602交互以执行分配的任务时,生成关于光标的位置的位置数据。位置数据可以包括光标的位置(例如,x坐标和y坐标)。图形生成器可以稍后使用位置数据来生成图形608。例如,可以绘制所有的位置数据,以创建图6中的图形608的示例中所示的线。此外,在一些实施例中,系统10还可以生成与光标的相应位置相关联的计时数据。例如,光标位置(x1,y1)可以出现在t1,并且光标位置(x2,y2)可以出现在t2。因此,系统10可以生成计时数据t1、t2等,并且将这种计时数据与相应的光标位置相关联地存储在非暂时性介质中。
144.图7图示了用于将光标位置数据与计时数据相关联地存储的数据结构700的示例。数据结构700包括分别用于x坐标和y坐标中的位置值的两列。数据结构700还包括用于指示产品测试者14是否在某个光标位置处进行选择(例如,通过点击按钮)的列。在一些实施例中,数据结构700可以被图形生成器1302用来创建与被测试的web页面的图像相关联的图形608。具体地,数据结构700中的位置值可以用于创建图形608中的线,并且数据结构700中的(多个)选择指示符可以用于创建表示产品测试者14已经做出选择的(多个)位置的(多个)圆610。在一些实施例中,数据结构700可以被存储在非暂时性介质1304中。
145.此外,在一些实施例中,数据结构700可以与图5的数据结构500中的某个跟踪器标识符相链接。例如,具有标识符“23”的数据结构700可以包含用于在数据结构500中的图像文件342中创建图形608的数据。图像文件342可以包含被测试的web页面的图像。在这种情况下,数据结构[图像文件342;id=23]可以用来将数据结构700与图像文件342链接起来。因此,当系统10呈现用于指示产品测试者14针对数据结构500中列出的任务号1的被跟踪动作的图像时,系统10将使用上述数据结构来查找具有id“23”的数据结构700。然后,数据结
构700中的数据被用来生成图形608,以与web页面的图像一起呈现。
[0146]
如图7所示,数据结构700还可以包括指示光标的位置出现的相应时间的计时数据。计时数据是有利的,因为它可以允许图形608以视频的形式呈现。例如,视频生成器1310可以利用数据结构700来创建显示光标的位置随时间变化的视频。因此,视频将指示产品测试者14与被测试的web页面的被跟踪的交互。在一些实施例中,由视频生成器1310提供的视频可以包括移动的光标。在其他实施例中,由视频生成器1310提供的视频可以包括表示在光标跨web页面移动时光标的位置点集合的生长线。在一些实施例中,视频可以被存储在非暂时性介质1314中(图1b)。非暂时性介质1314被示为视频数据库,但是在其他实施例中,非暂时性介质1314可以是任何存储器或存储设备。此外,在其他实施例中,可以将非暂时性介质1304、1314集成为单个数据库,而不是将单独的非暂时性介质1304、1314作为图像数据库和视频数据库。
[0147]
图形608和被测试的web页面的图像可以由系统10提供给与第一方12相关联的用户。例如,在一些实施例中,由用户界面生成器1350提供的用户界面可以被配置为输出具有图形608和web页面的图像的图像和/或视频,以供系统10的用户查看。这种图像和/或视频可以作为测试结果文件的一部分来提供,因此用户可以看到产品测试者14如何基于与被测试网页的交互来得出某个产品测试结论。
[0148]
在一些实施例中,图像和/或视频可以与产品测试指令中定义的对应的产品测试任务相关联地存储。具体地,图像和/或视频用于在产品测试者14执行产品测试指令中规定的某个任务时跟踪产品测试者14的交互。因此,规定由产品测试者14执行的任务中的每个任务都将具有跟踪产品测试者14与被测试的web页面的交互的对应的图像和/或视频。例如,如果产品测试项目具有28个任务(步骤),则在产品测试者14已经完成产品测试项目之后,系统10将具有针对相应的28个任务生成的28个图像和/或28个视频。
[0149]
在一些实施例中,示例中的所有28个图像和/或28个视频可以被提供给与第一方12(产品的供应商)相关联的用户或者对所述用户可用。在其他实施例中,只有一个图像和/或一个视频可以被提供给与第一方12相关联的用户或者对所述用户可用。例如,如果产品测试中的某个任务导致产品测试的“失败”结果,那么系统10可以仅提供与失败任务相关联的图像和/或仅与失败任务相关联的视频。这可能是有利的,因为用户可能不关心具有“通过”状态的任务,而是可能对查看导致“失败”状态的任务的结果更感兴趣。此外,在一些实施例中,系统10可以仅存储与失败任务相关联的图像和/或存储与失败任务相关联的视频,并且可以在产品测试项目完成之后或者在产品测试项目完成某个预定持续时间之后,删除具有“通过”状态的其他任务的其他图像和视频。
[0150]
图8a-图8c图示了总结产品测试的结果的报告800的示例。在一些实施例中,系统10被配置为从一个或多个产品测试者14完成的产品测试中收集信息,并且基于收集的信息生成报告800。在所示的示例中,报告800是针对已经由产品测试者14测试的某个产品的。报告800包括由产品测试者14执行的产品测试任务802的列表。报告800中的任务802是由与提供产品用于产品测试的第一方12相关联的用户(使用由用户界面生成器1350提供的用户界面)创建的相同任务。报告800还包括在不同的相应任务旁边的(多个)失败测试标识符804和(多个)通过测试标识符806。具有失败测试标识符804的任务指示当(多个)产品测试者执行该任务时产品测试失败。具有通过测试标识符806的任务指示当(多个)产品测试者14执
行该任务时产品测试通过。
[0151]
如图8a所示,报告800还包括每个任务旁边的对象808,当用户选择该对象时,该对象将提供关于对该特定任务的产品测试的进一步细节。报告800还包括其中已经执行了产品的产品测试的浏览器810的列表。
[0152]
在一些情况下,查看报告800的用户可能有兴趣查看针对某个任务的产品测试的细节。在这种情况下,用户可以选择任务802旁边的对应对象808。作为响应,系统10可以为用户呈现图8b所示的报告820。报告820针对在产品测试期间执行的某个任务。如图所示,报告820包括针对该任务的产品测试的概要821。在所示的示例中,概要821指示当产品测试者14在31个浏览器中的9个浏览器中执行产品测试时,所讨论的特定任务失败。报告820还示出了当产品测试失败时由产品测试者14执行的对应任务822,以及对应的问题824。在其中执行任务失败的9个浏览器由浏览器图标826示出。报告820还包括在不同的相应浏览器图标826旁边的通过/失败指示符828。在该示例中,浏览器图标826旁边的失败指示符828指示当产品测试者14在由浏览器图标826表示的浏览器类型中执行任务时,任务的执行失败。
[0153]
此外,在所示的示例中,查看报告820的用户已经选择了针对某个浏览器的通过/失败指示符828中的一个,如由选择器图形829所表示的。相应地,报告820显示三个图像830a-830c,这三个图像830a-830c是当三个相应的不同产品测试者14在所选择的浏览器类型中执行任务822时捕获的。从图像830中,查看报告820的用户可以看到当产品测试者14执行导致“失败”状态的具体任务时,产品测试者14的屏幕上有什么。
[0154]
查看报告820的用户可以选择图像830a-830c中的一个来查看更多细节。例如,当用户选择图像830a-830c中的一个图像时,系统10可以向用户提供图8c所示的报告840。报告840包括任务842的描述和对应的产品测试问题844。报告840还包括图像846和图形848,图像846包括被测试的web页面的图像847。图形848包括当产品测试者14与web页面交互时跟踪光标的位置的线849,以及指示产品测试者14进行选择(例如,点击按钮)的位置的选择标识符850。图像846中的特征可以由系统10的图形生成器1302提供,如参考图6类似地讨论的。因此,图像846允许用户追溯地查看产品测试者14在执行任务842时与web页面的交互。在其他实施例中,代替固定图像846,系统10可以提供的视频,该视频显示光标的移动和产品测试者14的(多个)选择(例如,点击按钮)。
[0155]
如图所示,报告840还包括执行产品测试任务的产品测试者14的标识符。该标识符可以是产品测试者14的实际名称或标识产品测试者14的其他标识符。此外,在一些实施例中,产品测试者14的身份可以保密,并且可以不被系统10呈现给用户。
[0156]
报告840还包括浏览器标识符856,浏览器标识符856标识由产品测试者14在其中执行任务的浏览器的类型;以及通过/失败指示符854,通过/失败指示符854指示所讨论的任务在产品测试期间是失败还是通过。
[0157]
在一些实施例中,可以使用系统10中的测试结果取回模块1500来生成测试结果报告800、820、840。测试结果取回模块1500收集关于产品测试的信息,并且创建报告800、820、840供用户查看。可以通过由系统10的用户界面生成器1350创建的用户界面来呈现报告800、820、840。例如,在一些实施例中,用户界面生成器1350可以生成并提供用户界面以供系统10的管理员使用。在这种情况下,可以提供报告800、820、840以供管理员通过用户界面查看。可替代地或附加地,用户界面生成器1350可以生成并提供用户界面,以供与提供产品
用于产品测试的第一方12相关联的用户使用。在这种情况下,可以提供报告800、820、840以供用户通过用户界面查看。
[0158]
应当注意,测试结果报告800、820、840不受先前描述的示例的限制,并且系统10可以在不同的实施例中提供具有不同配置的(多个)测试结果报告。例如,在其他实施例中,报告800、820、840可以具有比上述示例中描述的更少的信息。
[0159]
此外,在其他实施例中,替代为每个任务提供与所有产品测试者14相关联的报告,系统10可以合并来自多个产品测试者14的产品测试结果,并且向用户提供合并的产品测试报告。例如,系统10中的分析器1502可以采用逻辑算法来确定来自产品测试者14的某个产品测试结果是否可靠。如果测试结果被认为是不可靠的,那么分析器1502忽略该特定产品测试结果。
[0160]
作为另一示例,分析器1502可以比较来自两个不同产品测试者14的两个产品测试结果。如果两个产品测试结果指示相同的结论(例如,通过或失败),那么分析器1502可以确定产品测试结果是可靠的。在这种情况下,系统10可以简单地向用户报告所讨论的特定任务具有通过或失败状态,而不告知用户执行测试的产品测试者14的数目。
[0161]
在一些情况下,如果对于特定任务有三个产品测试者14,则分析器1502可以选取具有大多数投票的结果(例如,通过或失败)。例如,如果执行任务的两个产品测试者14对于对应的问题提供“是”回答,并且第三个产品测试者14提供“否”回答,那么分析器1502将选取“是”回答,并且可以确定任务的测试具有“通过”状态。另一方面,如果执行任务的两个产品测试者14对于对应的问题提供“否”回答,并且第三产品测试者14提供“是”回答,则分析器1502将选取“否”回答,并且可以确定任务的测试具有“失败”状态。
[0162]
相应地,为产品测试项目分配三个产品测试者14并且只有两个互斥的回答(例如,“是”和“否”)作为回答对应的产品测试问题的可能性是有利的。这是因为这种布置允许分析器1502能够决定最终产品测试结果,即使来自一个产品测试者14的产品测试结果与来自另一产品测试者14的另一产品测试结果相矛盾。此外,将相同的产品测试项目分配给多个产品测试者14允许比较不同的结果以检测不可靠的结果。然而,在其他实施例中,可以为产品测试项目分配多于三个或少于三个的产品测试者14,如所讨论的,并且回答的数目可以多于两个。例如,在其他实施例中,回答可以是具有三个或更多个选择的多选格式。
[0163]
在一些实施例中,系统10可以被配置为提供用于允许用户覆写(override)产品测试结果的用户界面。例如,提供报告800/820/840的用户界面还可以提供用于允许用户更改产品测试结果的控件。如果产品测试结果指示特定任务具有“通过”状态,则用户可以利用控件将状态从“通过”更改为“失败”。可替代地,如果产品测试结果指示特定任务具有“失败”状态,则用户可以利用控件将状态从“失败”更改为“通过”。
[0164]
应当注意,系统10的分析器1502不限于比较产品测试结果。在其他实施例中,分析器1502还可以执行其他分析,以确定与产品测试者14相关联的不同用户度量和/或与测试结果的可靠性相关的不同测试度量。例如,在一些实施例中,分析器1502可以比较存储在图像数据库1304中的图像(其跟踪产品测试者14的动作),以确定三个图像是否相似。如果所有三个产品测试者14执行由产品测试指令的任务规定的相同动作,则表示三个图像中光标的移动的图形可以具有一些相似的特征。例如,如果产品测试任务要求产品测试者14将光标移动到链接并点击该链接,则表示光标的移动的图形应当在该链接处包括一个或多个选
择标识符。如果图形中的一个图形指示没有选择该链接,那么分析器1502可以确定对应的产品测试者14的产品测试结果是不可靠的。即使该产品测试者14提供了相同的“是”或“否”回答以得出与其他两个产品测试者14相同的结论,也可能是这种情况。
[0165]
作为另一示例,在产品测试期间,系统10的测试监测模块1400可以收集关于产品测试者14的执行的一些情报。在产品测试完成之后,分析器1502然后可以从测试监测模块1400取回信息,并且基于该信息执行进一步的分析。例如,测试监测模块1400可以确定每个产品测试者14执行某个任务的时间量。因此,在产品测试者14完成产品测试项目之后,测试监测模块1400将具有针对产品测试指令中规定的并由该产品测试者14执行的不同的相应任务的多个时间值。测试监测模块1400也对其他两个产品测试者14进行相同操作。在所有三个产品测试者14已经完成产品测试之后,分析器1502然后可以比较针对给定任务与相应的三个产品测试者14相关联的三个时间值,并且确定来自三个产品测试者14的该任务的任何产品测试结果是否是不可靠的。例如,如果某个任务使第一产品测试者14在30秒内完成,使第二产品测试者14在37秒内完成,并且使第三产品测试者14在4秒内完成,则分析器1502可以确定来自第三产品测试者14的产品测试结果是不可靠的,因为其他两个时间值彼此更接近并且第三时间值不同于前两个时间值。
[0166]
作为另一示例,当系统10基于预定的产品测试指令为产品测试者14提供要执行的任务时,系统10可以插入一个或多个专门设计来测试产品测试者14的可靠性的问题。例如,系统10可以向产品测试者14询问与被测试产品的性质完全无关的简单数学问题,诸如“14+6是多少?”。如果产品测试者14在执行产品测试时正在主动地集中注意力,则产品测试者14最有可能正确地回答这个问题。另一方面,如果产品测试者14在执行产品测试时没有集中注意力,则产品测试者14可能会错误地回答这个问题,从而指示来自该产品测试者14的产品测试结果可能是不可靠的。该技术还具有检测出可能是粗心的、鲁莽的或假装在执行产品测试的某个产品测试者14的益处。
[0167]
相应地,在一些实施例中,测试监测模块1400可以被配置为将产品测试者14提供的回答与预期回答进行比较。如果产品测试者14提供的回答与预期回答匹配,则测试监测模块1400可以确定该产品测试者14的产品测试结果是可靠的。另一方面,如果产品测试者14提供的回答与预期回答不匹配,则测试监测模块1400可以确定该产品测试者14的产品测试结果是不可靠的。
[0168]
测试监测模块1400还可以执行其他功能来监测产品测试的进度。例如,测试监测模块1400可以被配置为确定产品测试完成的百分比、产品测试者14在产品测试上花费的持续时间、产品测试者14所采取的步骤的数目、产品测试者14浪费的时间、产品测试者14点击链接之前经过的时间等。
[0169]
如所讨论的,用户界面生成器1350被配置为向用户提供界面,以生成用于产品测试的任务并且定义产品测试参数。图9图示了用于允许用户生成产品测试任务并且定义产品测试参数的用户界面900的示例。用户可以与提供产品用于产品测试的第一方12相关联,和/或可以是与提供系统10的第二方16相关联的人员。在一些实施例中,用户界面900可以由系统10中的用户界面生成器1350生成和提供。在一个实施方式中,在产品供应商(第一方12)已经向系统10注册之后,第一方12处的用户然后可以登录系统10(例如,使用用户id和密码)中。在用户已经登录系统10之后,系统10的用户界面生成器1350然后可以为用户提供
用户界面900。在一些情况下,可以有多个不同的产品供应商(不同的第一方12)来提供不同的产品用于产品测试。在这种情况下,每一方12将具有其自己唯一的用户id和密码的集合。
[0170]
如图所示,用户界面900包括用于允许用户创建产品测试任务904和对应的产品测试问题906的区块902。每个产品测试任务904规定产品测试者14对被测试的产品执行动作。每个对应的问题906要求产品测试者14基于由产品测试者14根据分配的任务执行的动作来确认某个事件是否发生。相应地,产品测试任务904中的每个产品测试任务和产品测试问题906中的每个产品测试问题由用户设计来测试产品中的具体特征。用户可以使用用户界面900来添加、删除、编辑和移动(多个)任务904和(多个)问题906。
[0171]
用户界面900还包括具有用于由创建产品测试任务的用户选择的多个平台/浏览器图标908的区块907。平台/浏览器图标908中的每个表示希望在其中测试web页面的平台或浏览器的类型。例如,如果用户想要在34种不同类型的平台/浏览器下测试web页面,则用户可以选择34个对应的平台/浏览器图标908来规定这种测试参数。借助于非限制性示例,平台/浏览器图标908可以标识google chrome、不同版本的chrome、不同版本的mozilla firefox、不同版本的microsoft internet explorer、不同版本的iphone的不同ios、不同版本的safari、不同版本的android移动浏览器、不同版本的iphone6移动浏览器、不同版本的microsoft office等。
[0172]
此外,在一些实施例中,用户界面900可以允许用户规定如何在移动设备(例如,iphone、ipad、平板电脑等)上测试应用。例如,用户可以规定通过使用某个类型的移动设备启动浏览器以访问web站点来在该移动设备上执行产品测试。可替代地,用户可以规定使用移动原生设备(通过实际移动设备)或移动模拟器(模拟移动环境)来执行产品测试。
[0173]
在一些实施例中,系统10被配置为将每个选定的平台/浏览器下的每个产品测试打包为一个产品测试项目(作业)。按照以上示例,其中用户已经选择了34种不同类型的平台/浏览器来测试产品,并且假设每个产品测试项目期望由三个产品测试者14来执行,那么系统10将生成3
×
34=102个产品测试项目。然后,将基于通知生成器1004提供的通知1005,将这些102个产品测试项目通知给产品测试者14。
[0174]
此外,在一些实施例中,设计产品测试指令的用户可以将多个相关web页面分组在一个产品测试项目下。在其他实施例中,被测试的产品可以具有多个web页面,并且用户可以针对不同的产品测试项目将产品分成不同的特征。
[0175]
在一些实施例中,在用户已经使用用户界面900创建了产品测试任务和产品测试参数之后,用户可以保存这些信息以生成产品测试指令文件。产品测试指令文件可以被保存在系统10处的非暂时性介质(例如,产品测试指令数据库1600)中。当用户确定产品准备好进行产品测试时,系统10被通知,然后系统10的通知生成器1004提供通知1005,以告知产品测试者14产品测试项目可用,如所讨论的。当产品测试者14已经接受产品测试项目时,然后系统10的测试界面生成器1100提供测试界面以及在产品测试指令(存储在数据库1600中)中定义的任务和问题,以供产品测试者14实行产品测试。此外,如所讨论的,在一些实施例中,系统10可以将一个或多个问题插入到被专门设计成测试产品测试者14的可靠性的产品测试指令中。例如,系统10可以向产品测试者14询问与被测试的产品的性质完全无关、且被设计成确定产品测试结果的可靠性的简单数学问题,诸如“14+6是多少?”。
[0176]
在一些实施例中,系统10可以被配置为提供管理产品测试报告以供第二方16的人
员使用。这种报告向第二方16的用户提供产品测试中所有任务的详细视图。可以使用测试结果取回模块1500(其收集并编译所有相关信息)来生成该报告,并且可以将该报告经由用户界面生成器1350所生成的用户界面提供给用户。图10a-图10e图示了供第二方16的用户查看的报告1000的示例。报告1000包括关于所执行的产品测试的数据1002,包括客户端(产品供应商)的名称、产品测试标识、在其中进行产品测试的平台/浏览器的类型等。报告1000还包括执行产品测试的三个产品测试者14的标识1004a-1004c。报告1000还包括按任务组织的产品测试的概要。例如,如图10b所示,报告1000包括提供产品测试任务1010及其对应的产品测试问题1012的区块。报告1000还包括与相应产品测试者14相关联的相应结果1014a-1014c。每个结果1014指示产品测试者14对于产品测试问题的回答1020、指示任务的执行是否通过的通过/失败指示符1022、指示产品测试者14完成任务1010所花费的时间量的时间值1024、以及跟踪产品测试者14在执行任务1010时的动作的图像1026。图像1026可以由图形生成器1302生成,如前面类似地讨论的。在一些情况下,用户可以点击图像1026,然后系统10可以提供图像1026的更详细的视图(图10c)。图像1026包括指示产品测试者14在产品测试期间执行的动作的图形,如类似地讨论的。如图10d所示,报告1000还可以包括与不同任务1040的相应产品测试者相关联的相应结果1044a-1044c,不同任务1040具有对应的产品测试问题1042。此外,如图10e所示,报告1000还可以包括测试产品测试结果的可靠性的、针对相应产品测试者14的插入的问题1050。
[0177]
如所讨论的,在一些实施例中,系统10可以被配置为提供用于允许用户覆写产品测试结果的用户界面。例如,提供报告1000的用户界面还可以提供用于允许用户(例如,管理员或与第二方16相关联的人员等)更改产品测试结果的控件。如果产品测试结果指示特定任务具有“通过”状态,则用户可以利用该控件将状态从“通过”更改为“失败”。可替代地,如果产品测试结果指示特定任务具有“失败”状态,则用户可以利用该控件将状态从“失败”更改为“通过”。
[0178]
现在将更详细地描述图1b的系统10。系统10包括一个或多个输入1002,用于接收产品测试请求、关于产品的信息和产品测试指令。系统10还包括通知生成器1004,通知生成器1004被配置为生成通知1005以告知多个产品测试者14产品可用于产品测试。如所讨论的,在一些实施例中,产品与开发产品的第一方12相关联,并且通知生成器1004与第二方16相关联,第二方16不同于第一方12。
[0179]
在一些实施例中,通知1005用于在web浏览器中显示。例如,产品测试者14可以在他/她的设备上打开web浏览器。web浏览器可以包括附加特征,该附加特征允许产品测试者14从系统10接收通知1005。在其他实施例中,通知1005可以用于在由产品测试通知应用创建的字段中显示。例如,产品测试者14可以将产品测试通知应用安装到他/她的设备上,这允许产品测试者14从系统10接收通知1005。
[0180]
在进一步的实施例中,通知可以被发送到crowdflower或mechanical turk。
[0181]
系统10还包括通信接口1008,通信接口1008被配置为从多个产品测试者中的第一产品测试者14正在使用的设备1020接收电子回复1010,回复1010指示第一产品测试者14将执行产品测试。在一些实施例中,通信接口1008和一个或多个输入1002可以被集成。
[0182]
在一些情况下,可以使用产品测试者14所利用的web浏览器来生成电子回复1010。例如,如类似地讨论的,产品测试者14利用的设备上的web浏览器可以包括附加特征,该附
加特征允许产品测试者14从系统10接收通知。相同的附加特征还可以允许产品测试者14提供他/她的回复(供系统10接收)以接受或注册产品测试项目。
[0183]
在其他情况下,可以使用产品测试者14所利用的产品测试通知应用来生成电子回复1010。例如,如同样类似地讨论的,产品测试者14可以将产品测试通知应用安装到他/她的设备上,这允许产品测试者14从系统10接收通知。相同的产品测试通知应用还可以允许产品测试者14提供他/她的回复(供系统10接收)以接受或注册产品测试项目。
[0184]
如类似地讨论的,在其他实施例中,电子回复可以由使用crowdflower或mechanical turk的设备生成。
[0185]
在一些实施例中,系统10还可以包括被配置为跟踪回复1010的数目的回复计数器1040,以及被配置为将回复1010的数数目与规定数目进行比较的比较器1042。在一些实施例中,通信接口1008被配置为从来自多个产品测试者14的一个或多个附加产品测试者14接收一个或多个附加的电子回复,直到达到规定数目的电子回复。响应于由通信接口1008接收的每个回复,回复计数器1040将递增1。通信接口1008继续接收附加的回复,直到回复的总数等于由比较器1042确定的电子回复的规定数目。在所示的实施例中,规定数目的回复是一个回复。在其他实施例中,规定数目的回复可以多于一个。例如,在一些实施例中,规定数目的电子回复可以是三个、四个、五个、六个或七个。在其他实施例中,规定数目的电子回复可以是两个。在进一步的实施例中,规定数目的电子回复可以多于七个。
[0186]
在一些实施例中,系统10还可以包括筛选器1050,筛选器1050被配置为从可用产品测试者14的列表中选择多个产品测试者14以用于提供通知。例如,借助于非限制性示例,筛选器1050可以被配置为至少部分地基于多个产品测试者的相应得分、多个产品测试者的相应年龄、多个产品测试者的相应语言技能、多个产品测试者的相应位置、多个产品测试者的相应年龄组、多个产品测试者的相应行业专业知识、或前述的任意组合来选择多个产品测试者。此外,在一个示例中,如果期望由能够阅读意大利语的个体来测试产品,则筛选器1050可以执行筛选以获得能够阅读意大利语的所有产品测试者14的列表。在这种情况下,通知生成器可以仅向能够阅读意大利语的产品测试者14提供通知1005。
[0187]
系统10还包括测试界面生成器1100,测试界面生成器1100被配置为生成供测试环境中使用的测试界面。测试界面可以是参照图4描述的测试界面。在其他实施例中,测试界面可以具有其他配置。如类似地讨论的,测试界面被配置为呈现产品的特征和产品测试指令,以允许第一产品测试者14基于产品测试指令对产品执行产品测试。测试界面中的产品测试指令被配置为提供用于测试产品的多个任务。例如,产品测试指令可以规定由产品测试者14在被测试的web页面上执行的一个或多个动作。在一些实施例中,测试界面被配置用于在手持设备(例如,iphone、ipad、ipad mini、平板电脑等)上显示。在其他实施例中,测试界面被配置用于在计算机屏幕或膝上型电脑屏幕上显示。
[0188]
在一些实施例中,产品测试指令可以由用户通过用户界面生成器1350提供的用户界面来创建。创建产品测试指令的用户可以与提供测试产品的第一方12相关联,或者可以与第二方16相关联。用户界面允许用户创建多个产品测试任务和多个对应的产品测试问题来测试产品。在一些情况下,产品包括web页面,并且用户界面允许用户选择一个或多个平台/浏览器以在其中测试web页面。产品测试指令可以被存储在产品测试指令数据库1600中。
[0189]
在一些实施例中,用户界面生成器1350可以被配置为向第一产品测试者14提供对测试环境的访问,以允许第一产品测试者14基于产品测试指令对产品执行产品测试。用户界面生成器1350还可以被配置为向第二产品测试者14提供对另一个测试环境的访问,以允许第二产品测试者14基于相同的产品测试指令对相同的产品执行另一个产品测试。在一个实现方式中,用户界面生成器1350可以为不同的相应产品测试者14提供不同的虚拟环境。相应地,不同的产品测试者14可以在提供测试界面用于测试产品的不同的相应虚拟机上执行产品测试。
[0190]
此外,在一些实施例中,测试界面被配置为呈现web页面(例如,被测试的web页面)的图像,并且产品测试指令被配置为指示第一产品测试者14对被测试的web页面的图像执行动作。测试界面还可以被配置为在基于产品测试指令已经执行动作之后,向第一产品测试者14呈现要回答的问题。系统10还可以包括非暂时性介质,用于在测试结果文件中存储产品测试者对问题的回答。
[0191]
在一些实施例中,系统10还包括计时器1200,计时器1200跟踪自从测试界面402被提供给产品测试者14以来经过的持续时间。系统10还包括将经过的时间与规定阈值进行比较的时间比较器1202。如果经过的时间已经超过规定阈值,并且产品测试者14没有完成产品测试,那么系统10将从产品测试者14处撤销产品测试项目。例如,系统10可以终止产品测试者14正在使用的产品测试会话。在一些实施例中,响应于从产品测试者14处撤销产品测试项目,系统10将更新回复计数器1040(例如,通过将总计数减1),以指示产品测试项目的时隙是可用的(由于产品测试项目被释放回产品测试者14的池以供接受)。如果另一产品测试者14提交回复以占据用于产品测试项目的时隙,则产品测试项目(其未被先前的产品测试者14完成)被分配给该另一产品测试者14。
[0192]
如图1b所示,系统10还包括跟踪器1300,跟踪器1300被配置为跟踪第一产品测试者14与产品的交互。在一些实施例中,产品可以是web页面,并且跟踪器1300被配置为跟踪第一产品测试者14与web页面的图像的交互。
[0193]
此外,在一些实施例中,跟踪器1300被配置为跟踪由第一产品测试者14操作的光标的移动。例如,第一产品测试者14可以使用他/她的设备(例如,膝上型电脑、台式电脑、手持设备(诸如蜂窝电话)等)来执行产品测试。在这种情况下,跟踪器1300被配置为跟踪由第一产品测试者14操作的产品测试者的设备中的光标的位置。在一些情况下,如果产品测试者14正在使用具有触摸屏的蜂窝电话执行产品测试,则跟踪器1300可以被配置为跟踪施加在触摸屏上的手指位置的位置。因此,如在本说明书中所使用的,术语“光标”不限于使用触摸板、鼠标或旋钮进行操作的显示项,并且术语“光标”还可以包括与施加在触摸屏上的手指的移动相关联的未显示项。
[0194]
此外,在一些实施例中,跟踪器1300被配置为跟踪由第一产品测试者14执行的对标签页的选择、记录对按钮的选择、记录对图标的选择、记录键入的文本或前述的任意组合。
[0195]
系统10还包括图形生成器1302,图形生成器1302被配置为生成表示跟踪器1300所跟踪的移动的图形。在一些实施例中,图形包括穿过多个光标位置的线。在一些实施例中,图形还可以包括选择标识符,该选择标识符标识web页面的图像中第一产品测试者14执行选择的位置。
[0196]
系统10还可以包括图像数据库1304,图像数据库1304被配置为在非暂时性介质中存储电子图像,电子图像包括web页面的图像以及与web页面的图像叠加的图形。在一些实施例中,图像数据库1304被配置为与第一产品测试者14的身份相关联地并且与被测试的产品相关联地存储电子图像。图像数据库1304可以是位于相同设施处或位于不同设施处的一个或多个非暂时性介质。
[0197]
可替代地或附加地,系统10还可以包括视频生成器1310,该视频生成器1310被配置为生成所跟踪的交互的视频。在一些实施例中,视频可以示出由产品测试者14在测试web页面时操作的光标的移动。视频还可以示出产品测试者14对web页面中的对象的选择。在一个实现方式中,视频可以是一段时间内屏幕截图的记录,以示出产品测试者14与被测试的web页面的交互。在其他实施例中,视频可以包含处理器生成的图形(跟踪产品测试者14的交互)与被测试的web页面的(多个)图像叠加的图像。例如,图形可以是跟随光标的位置的“生长”线,从而表示随时间的光标位置。在一些实施例中,视频还可以示出选择标识符,该选择标识符标识web页面的图像中第一产品测试者14执行选择(例如,点击操作)的位置。例如,图形可以包括置于“生长线”上的产品测试者14执行点击操作处的标识符(例如,圆)。
[0198]
在一些实施例中,系统10还可以包括视频数据库1314,视频数据库1314被配置为将视频存储在非暂时性介质中。在一些实施例中,视频数据库1314被配置为与第一产品测试者14的身份相关联地并且与被测试的产品相关联地存储视频。图像数据库1314可以是位于相同设施处或位于不同设施处的一个或多个非暂时性介质。
[0199]
如图1b所示,系统10还包括测试监测模块1400,测试监测模块1400被配置为监测产品测试的进度。借助于非限制性示例,测试监测模块1400被配置为确定产品测试完成的百分比、第一产品测试者花费的持续时间、第一产品测试者采取的步骤的数目、第一产品测试者浪费的时间、第一产品测试者点击第一链接之前经过的时间等。
[0200]
系统10还包括测试结果取回模块1500,测试结果取回模块1500被配置为获得完成产品测试的第一产品测试者14得到的第一测试结果。测试结果取回模块1500还被配置为从一个或多个附加产品测试者14获得(多个)附加测试结果。例如,测试结果取回模块1500还可以被配置为获得完成产品测试的第二产品测试者14得到的第二测试结果。系统10还包括分析器1502,分析器1502被配置为分析第一测试结果和第二测试结果,以确定第一测试结果、第二测试结果、或者第一测试结果和第二测试结果两者是否是可靠的。
[0201]
在一些实施例中,分析器1502还可以被配置为使用由测试监测模块1400获得的其他信息来确定产品测试结果中的一个或多个是否可靠。
[0202]
测试结果取回模块1500可以被配置为生成一个或多个产品测试报告,诸如图8a-图8c和图10a-图10e中所示的那些。产品测试报告可以通过用户界面生成器1350提供的一个或多个用户界面被提供给一个或多个用户。例如,可以向与提供被测试的产品的第一方12相关联的用户提供一个或多个报告。作为另一示例,可以向管理员或与第二方16相关联的另一用户提供一个或多个报告。
[0203]
虽然已经参考将产品测试者14与某个产品测试项目连接来测试由一方12创建的某个产品描述了系统10,但是在其他实施例中,系统10可以将多个产品测试者14连接到某个产品测试项目。在一个实施方式中,测试界面模块被配置为向多个产品测试者14提供测试界面的多个实例。例如,测试界面(例如,其实例)可以提供产品的特征和产品测试指令,
以允许第二产品测试者14基于产品测试指令对产品执行产品测试。此外,在一些实施例中,系统10可以被配置为向多个产品测试者14提供虚拟测试环境的多个实例来执行产品测试。
[0204]
此外,在其他实施例中,系统10可以将多个产品测试者14连接到多个产品测试项目,以测试由不同方12创建的不同产品。
[0205]
应当注意,可以使用单个设备或者使用多个设备来实现系统10。例如,在一些实施例中,整个系统10可以在服务器上实现。在其他实施例中,系统10的不同组件可以在不同的机器上实现,或者在不同集合的机器上实现。例如,在一些实施例中,(多个)输入1002、通知生成器1004、通信接口1008、回复计数器1040、比较器1042和筛选器1050可以使用一个或多个设备的第一集合来实现,测试界面生成器1100可以使用一个或多个设备的第二集合来实现,跟踪器1300、图形生成器1302和视频生成器1310可以使用一个或多个设备的第三集合来实现,测试监测模块1400可以使用一个或多个设备的第四集合来实施,测试结果取回模块1500和分析器1502可以使用一个或多个设备的第五集合来实现。设备可以是处理器、计算机、服务器、数据库等。
[0206]
尽管上述实施例已经参照测试web页面或web站点的产品进行了描述,但是在其他实施例中,本文描述的系统和方法可以应用于测试其他产品。借助于非限制性示例,产品可以是任何软件、任何硬件、任何物理设备或任何计算机建模。
[0207]
此外,在一些实施例中,系统10中的组件可以部分或完全在产品测试者14的设备或第一方12使用的设备(例如,被测试的产品的供应商处的计算机)处实现。例如,在一些实施例中,测试界面生成器1100的全部或一部分可以在产品测试者14的设备处实现。在一个实施方式中,产品测试者可以将第二方16提供的应用安装到产品测试者14的设备(例如,膝上型电脑、台式计算机、手持设备等)上,这允许设备响应于产品测试者14接受产品测试项目来显示测试界面。相同的应用也可以被多个产品测试者14安装。
[0208]
类似地,跟踪器1300的全部或一部分、图形生成器1302的全部或一部分和/或视频生成器1310的全部或一部分可以在产品测试者14的设备处实现。在一个实施方式中,产品测试者可以将由第二方16提供的应用安装到产品测试者14的设备(例如,膝上型计算机、台式计算机、手持设备等)上,这允许设备在产品测试者14使用设备执行产品测试时跟踪产品测试者14的动作,并且生成捕获产品测试者14的动作的图像和/或视频。相同的应用也可以被多个产品测试者14安装。
[0209]
作为另一示例,用户界面生成器1350的全部或一部分可以在产品供应商(第一方12)的设备处实现。在一个实施方式中,产品供应商可以将由第二方16提供的应用安装到产品供应商的设备(例如,膝上型电脑、台式计算机、手持设备等)上,这允许产品供应商使用其设备来创建产品测试指令、选择产品测试参数以及提供关于期望测试的产品的信息。该应用还允许产品供应商处的设备查看由系统10发送的产品测试结果。相同的应用也可以被多个产品供应商12安装。
[0210]
因此,本文描述的系统10不限于与第二方16相关联的一个或多个设备,并且可以包括由产品测试者14使用的一个或多个设备,和/或由产品供应商(第一方12)处的用户使用的一个或多个设备。
[0211]
此外,在一些实施例中,系统10的任何组件可以使用硬件、软件、或者硬件和软件的组合来实现。例如,可以使用硬件、软件、或者两者的组合来实现以下项中的每项:一个或
多个输入1002、通知生成器1004、通信接口1008、回复计数器1040、比较器1042、筛选器1050、产品测试者管理模块1080、测试界面生成器1100、计时器1200、时间比较器1202、跟踪器1300、图形生成器1302、视频生成器1310、用户界面生成器1350、测试监测模块1400、测试结果取回模块1500、分析器1502。
[0212]
此外,在一些实施例中,提供了一种处理器可读介质,该处理器可读介质包括用于提供本文描述的一个或多个特征的指令集。当由处理单元执行时,处理器可读介质中的指令将致使执行用于提供产品测试的方法。该指令可以包括:用于提供通知以告知多个产品测试者产品可用于产品测试的指令,其中产品与第一方相关联,并且通知生成器与第二方相关联,第二方不同于第一方;用于通过网络从多个产品测试者中的第一产品测试者正在使用的设备接收电子回复的指令,该回复指示第一产品测试者将执行产品测试;用于响应于接收的电子回复更新回复计数的指令;以及用于响应于电子回复来提供测试环境的指令,该测试环境包括用于第一产品测试者的测试界面,该测试界面呈现产品的特征和产品测试指令以允许第一产品测试者基于产品测试指令对产品执行产品测试,该产品测试指令提供用于测试产品的多个任务。
[0213]
如上述实施例和示例所示,本文描述的系统10和方法200是有利的,因为它们允许在多个不同的测试参数下有效地测试产品。例如,可以由多个产品测试者14在10个不同的平台下测试软件应用。因为产品测试可以由多个产品测试者14并行执行,所以产品供应商处的用户可以非常快速地获得产品测试结果。此外,因为可以分配多个产品测试者14来执行每个产品测试(例如,在某个平台下测试应用),所以提供给产品供应商的产品测试结果可以非常准确和可靠。更重要的是,在不需要产品供应商搜索合格的产品测试者的情况下,为产品供应商提供了上述益处。相应地,本文描述的系统10和方法200的实施例和特征具有实际和现实世界的效用,并且它们创建了显著改善执行产品测试的方式的有形且具体的结果。
[0214]
由产品测试设备执行的基于机器的产品测试
[0215]
如上述实施例中所描述的,系统10被配置为从一方12获得产品,并且提供测试界面以允许一个或多个测试者14对产品执行产品测试。在一些实施例中,系统10可以被配置为对一个或多个附加产品执行产品测试,而不需要任何人工测试者14。图11图示了这种情况的一个示例。如图所示,一方12提供用于产品测试的产品1508,并且系统10提供测试界面用于允许一个或多个产品测试者14对产品1508执行产品测试。在所示的示例中,被测试的产品包括软件。在(多个)测试者14执行产品测试之后,一方12可以更新产品以创建该产品的新版本。该一方12然后可以将更新后的产品(例如,新产品)1509发送到系统10以进行产品测试。在一些实施例中,响应于从该一方12接收到对于产品测试的请求以对更新后的产品1509执行测试,系统可以创建通知1005来发起由一个或多个测试者14进行的另一轮产品测试,如类似地讨论的。可替代地,在其他实施例中,代替使一个或多个人类测试者14对更新的产品1509执行产品测试,系统10本身可以代表人类测试者14来执行产品测试。
[0216]
在一个实施方式中,系统10可以利用由跟踪器1300获得的跟踪信息来执行新产品1509的测试。系统10可以重新执行先前人类测试者14的被跟踪动作来测试新产品1509。因此,虽然较早的产品1508可以由(多个)人类测试者14测试,但是较晚的产品1509可以由系统10测试。换句话说,较早的产品测试(例如,第一产品测试)可以是基于人的,而较晚的产
品测试(例如,第二产品测试)可以是基于机器的。
[0217]
图12图示了用于提供产品测试的系统10,其中系统10包括用于允许产品的机器测试的附加特征。系统10与图1b的系统10相同,除了系统10还包括用于存储基于第一产品测试的数据的非暂时性介质1520(例如,跟踪动作数据库)、取回模块130和产品测试机1540之外。存储在非暂时性介质1520中的数据可以是关于(多个)测试者14在测试第一产品1508时执行的一个或多个被跟踪的动作的数据。取回模块1530被配置为从非暂时性介质1520访问包含数据(基于第一产品1508的测试而生成的)的电子文件。产品测试机1540被配置为基于电子文件中的数据对第二产品1509执行机器测试。第二产品1509可以包括不同于第一产品1508的一个或多个特征。
[0218]
如图所示,非暂时性介质1520耦合到跟踪器1300。如类似地讨论的,跟踪器1300被配置为跟踪测试者与呈现被测试的产品的特征的测试界面(例如,测试界面402)的交互。跟踪器1300被配置为以电子文件的形式提供用于在非暂时性介质1520中存储的数据(表示测试者14的被跟踪的动作),其中该数据基于测试者14的被跟踪的交互。跟踪器1300可以被配置为跟踪由测试者14操作的光标的移动。附加地或可替代地,跟踪器1300可以被配置为跟踪对标签页的选择、对按钮的选择、对图标的选择、对文本的选择或前述的任意组合。跟踪器1300还可以跟踪手指滑动或模拟手指滑动的移动。
[0219]
非暂时性介质1520被配置为与第一产品1508的身份相关联地存储电子文件。例如,电子文件可以包括关于测试者14的被执行来测试第一产品1508的特征的(多个)被跟踪动作的信息,并且这种电子文件与第一产品1508的身份相关联地存储在非暂时性介质1520中。非暂时性介质还可以存储与第一产品1508的身份相关联的一个或多个附加电子文件。例如,附加电子文件可以包括关于另一测试者14的被执行来测试相同第一产品的相同特征1508的(多个)被跟踪动作的信息。
[0220]
在一些情况下,如果在非暂时性介质1520中存在与相同被测试产品相关联的多个电子文件,那么取回模块1530可以被配置为选择电子文件中的一个以由产品测试机1540使用。例如,可以存在第一电子文件,第一电子文件具有关于对产品执行产品测试的第一测试者14的被跟踪动作的数据,以及第二电子文件,第二电子文件有关于对相同产品执行产品测试的第二测试者14的被跟踪动作的数据。在这种情况下,取回模块1530可以被配置为选择非暂时性介质1520中具有最新时间戳的电子文件中的一个,以供产品测试机1540使用。
[0221]
在一些实施例中,电子文件中的数据可以包括关于测试者14的被跟踪动作的信息以及被跟踪动作的相应时间戳。产品测试机1540被配置为基于电子文件中关于测试者14的被跟踪动作的信息,重新执行被跟踪动作用于执行第二产品的测试。时间戳允许产品测试机1540知道要重新执行的动作的次序。在一些实施例中,产品测试机1540可以被配置为根据时间戳的相同定时来重新执行被跟踪动作。在其他实施例中,产品测试机1540可以在与时间戳所表示的定时不同的定时处重新执行被跟踪动作中的一个或多个。
[0222]
在一些实施例中,电子文件中的数据基于使用光标和/或键盘执行的(多个)被跟踪动作。例如,电子文件中的数据可以包括:光标位置;测试者键入的文本;测试者键入的文本的位置、对象选择的位置;或前述的任意组合。电子文件中的数据还可以基于使用触摸板或触摸屏执行的(多个)动作。电子文件中的(多个)被跟踪动作可以是测试者14在执行规定任务以测试第一产品1508的特征时执行的动作。如果第一产品1508的产品测试涉及多个任
务,则电子文件可以包括针对相应任务的被跟踪动作的多个集合。可替代地,非暂时性介质1520可以存储用于测试第一产品1508的相应任务的多个电子文件。例如,第一电子文件可以包含关于测试产品的第一特征的测试者的(多个)被跟踪动作的数据,并且第二电子文件可以包含关于测试产品的第二特征的测试者的(多个)被跟踪动作的数据。在这种情况下,第一电子文件可以被认为是第一子文件,并且第二电子文件可以被认为是第二子文件,其中第一子文件和第二子文件是与产品的测试相关联的超级文件的部分。因此,如在本说明书中所使用的,术语“文件”可以是单个文件、作为超级文件的一部分的子文件、多个子文件、彼此关联的多个文件、或者包含多个文件或子文件的文件夹。
[0223]
在一些情况下,存储在非暂时性介质1520中的电子文件中的数据可以具有以下数据结构,或者可以基于具有以下数据结构的数据:(动作类型;被跟踪动作的细节)。以下是动作类型和被跟踪动作的细节的一些示例:
[0224][0225]
在上述示例中,如果被跟踪动作涉及光标移动,则被跟踪动作的相关联的细节可以是光标的开始位置(x1,y1)和光标的结束位置(x2,y2)。如果被跟踪动作涉及对象选择,则被跟踪动作的相关联的细节可以是被选择的对象的位置(x1,y1)。如果被跟踪动作涉及文本/按键键入,则被跟踪动作的相关联的细节可以是被键入的文本/按键的位置(x1,y1)和被键入的文本/按键。如果被跟踪动作涉及手指/模拟的滑动,则被跟踪动作的相关联的细节可以是滑动的轨迹。借助于非限制性示例,滑动的轨迹可以是水平滑动、竖直滑动、对角滑动、圆形滑动或任何其他用户创建的滑动图案。
[0226]
在一些实施例中,由取回模块1530取回的电子文件可以包括脚本。脚本可以由脚本生成器使用关于测试者14的(多个)被跟踪动作的数据来生成。例如,如果关于被跟踪动作的数据是“文本/按键键入,(225,850),蓝色”,则基于这种数据而生成的脚本可以是规定在被配置为测试产品的测试界面(例如,测试界面402)的坐标(225,850)处键入文本“蓝色”的命令或指令。产品测试机1540被配置为运行脚本(其包括基于测试者14在测试第一产品1508时的(多个)被跟踪动作的数据)以测试第二产品1509。脚本生成器可以是系统10的一部分。在一些情况下,脚本生成器可以是产品测试机1540的一部分。在这种情况下,产品测试机1540被配置为访问非暂时性介质1520中的电子文件,该电子文件包含表示测试者14的被跟踪动作的数据。产品测试机1540中的脚本生成器然后基于表示被跟踪动作的数据来生成脚本,并且产品测试机1540然后运行该脚本以执行第二产品1509的机器测试。在其他实施例中,可以在取回模块1530和/或跟踪器1300中实现脚本生成器。下面将参照图22更详细地描述脚本生成器,图22图示了可以用于实现脚本生成器的装置2200。
[0227]
在一些实施例中,脚本生成器可以被配置为考虑由多个测试者14执行的测试(与仅基于一个测试者14选择数据相反)。具体地,脚本生成器可以被配置为检查来自多个测试
者14的、被执行来测试相同产品的相同特征的被跟踪动作,并且提取共性来创建脚本。例如,当与产品交互以测试产品的特征时,第一测试者14可以执行动作a,然后可以在执行动作b之前等待30秒。另一方面,第二测试者14可以执行动作a,然后可以在执行动作b之前等待5秒,以完成测试产品的相同特征的相同任务。在这种情况下,脚本生成器可以组合或合并这两个数据的集合来创建脚本,该脚本规定执行动作a,然后在动作a之后5秒执行动作b。在该示例中,脚本生成器执行“min”功能来选择两个动作a、b之间的最小时间间隙。在其他实施例中,脚本生成器可以确定动作a、b之间的时间间隙不影响测试的结果。在这种情况下,脚本生成器可以创建这样的脚本,该脚本规定执行动作a,然后在动作a之后立即或之后的1秒执行动作b。在这种情况下,脚本生成器在动作a、b之间并入时间间隙,该时间间隙不同于在第一和第二测试者14中跟踪的时间间隙。
[0228]
脚本生成器是有利的,因为它将表示测试者14的先前被跟踪动作的数据转换成可由产品测试机1540执行的(多个)命令或(多个)指令,以执行基于机器的产品测试。在其他实施例中,系统10可以不包括脚本生成器。相反,产品测试机1540被配置为接收表示测试者14的先前被跟踪的动作的数据,并且直接使用该数据作为输入来对产品执行产品测试。在这种情况下,产品测试机1540本身被配置为理解表示测试者14的被跟踪动作的数据,并且在产品测试算法中应用这种数据以使产品测试基于该数据被执行。在一个实施方式中,产品测试机1540接收数据作为输入,然后产品测试机1540使用该数据运行算法以对第二产品1509执行产品测试。因此,在一些实施例中,可能不需要脚本生成器。
[0229]
返回图12,在一些实施例中,产品测试机1540被配置为基于电子文件中的数据来模拟测试者14的动作。例如,产品测试机1540可以被配置为在没有来自光标控件的输入的情况下相对于测试界面(例如,测试界面402)虚拟地移动光标。作为另一示例,产品测试机1540可以被配置为在没有来自用户控件的输入的情况下在测试界面中虚拟地进行选择。作为另一示例,产品测试机1540可以被配置为在没有来自键盘的输入的情况下在测试界面的字段中虚拟地键入文本。作为另一示例,产品测试机1540可以被配置为在没有来自用户控件(例如,触摸板、触摸屏等)的输入的情况下在测试界面中虚拟地创建手指/模拟的滑动。产品测试机1540可以被配置为执行前述的任意组合,以执行产品测试任务。
[0230]
图13a-图13f图示了关于在第一产品的测试期间跟踪测试者14的动作并使用被跟踪动作对第二产品执行基于机器的产品测试的上述特征的示例。如图13a所示,系统10呈现测试界面1800用于允许测试者14对第一产品1802执行测试。第一产品1802可以是图11所示的第一产品108。测试界面1800类似于图4的测试界面402。测试界面1800包括用于呈现被测试的第一产品1802的特征的窗口1804。在所示的示例中,第一产品1802包括web页面。在其他示例中,第一产品1802可以是web站点、计算机应用(例如,企业应用)、移动(例如,手持)设备应用、专用处理器的应用等。
[0231]
如图13a所示,测试界面1800还包括字段1810,字段1810为产品测试者14提供对第一产品1802执行的一个或多个任务1812。在一些情况下,字段1810还可以为测试者14提供问题来回答。如图13a所示,测试者14经由测试界面1800测试的第一产品1802包括标签页1-5。测试界面1800被配置为测试示例中的标签页4的特征。相应地,测试界面1800在字段1810中提供指令,以指示测试者14选择标签页4。响应于执行标签页4选择任务的测试指令,测试者14将光标从图13a所示的位置移动到图13b所示的新位置。在测试者14执行该动作时,系
统10的跟踪器1300跟踪测试者14关于测试界面1800中呈现的第一产品1802的交互。例如,跟踪器1300可以确定光标在图13a中的位置(x=1270,y=510),然后移动到图13b中的新位置(x=1142,y=835)处。当测试者14选择标签页4时(如图13c所示),跟踪器1300也跟踪该选择。在所示的示例中,在测试者14选择标签页4之后,第一产品1802呈现苹果的图像1820(图13d),并且测试界面1800的字段1810要求测试者14确认他/她是否看到苹果。测试者14然后通过将光标从图13d所示的位置(x=1142,y=835)移动到图13e所示的新位置(x=1490,y=362)来回答问题。测试者14然后点击光标位置(x=1490,y=362)处的“是”按钮以确认测试者14可以看到苹果。在测试者14执行这些动作时,跟踪器1300跟踪测试者14关于测试界面1800的交互。作为在上述示例中测试标签页4的特征的结果,跟踪器1300可以生成表示测试者14的被跟踪动作的以下数据:
[0232][0233]
上述数据可以被存储在系统10的非暂时性介质(例如,跟踪动作数据库)1520中以供稍后使用。数据可以与测试者14测试的第一产品1802相关联地存储。数据也可以与测试者14的身份相关联地存储。此外,在一些实施例中,数据可以与指示测试者交互的性质的元数据相关联地存储。例如,上述前两个被跟踪动作(动作1、2)可以与元数据“产品特征选择”一起存储,该元数据“产品特征选择”指示执行这些动作是为了选择被测试的产品中的特征。类似地,上述示例中的最后两个被跟踪动作(动作3、4)可以与元数据“确认特征=是”一起存储,该元数据“确认特征=是”指示执行这些动作是为了确认被测试的产品中的特征的存在,并且标签页4的测试是成功的,因为测试者14确认了特征的存在。此外,非暂时性介质1520可以将图13f的图像与表示被跟踪动作的数据相关联地存储。该图像是有用的,因为它包括指示测试第一产品1802的标签页4特征的任务的成功结果的内容(例如,示例中的苹果的图像)。
[0234]
在其他实施例中,代替跟踪测试界面1800中任何地方的光标操作,跟踪器1300可以被配置为跟踪关于产品本身(即,窗口1804中的特征)的光标操作。在这种情况下,跟踪器1300不跟踪测试界面1800的字段1810中的光标操作。然而,跟踪器1300仍然可以跟踪测试者与测试界面1800的交互的其他形式。例如,代替要求测试者14使用光标选择“是”或“否”来确认他/她是否看到苹果,测试界面1800可以要求测试者14按下键盘中的按键“是”或“否”,或者可以要求测试者14说“是”或“否”。相应地,跟踪器1300可以被配置为跟踪键击、语音输入等。表示这种被跟踪动作的数据然后将被存储在非暂时性介质1520中。
[0235]
在第一产品1802已被测试之后,系统10可以稍后接收测试作为第一产品1802的更新版本的新产品(第二产品)的另一请求。当这种情况发生时,代替使测试者14对第二产品执行测试,系统10本身基于存储在非暂时性介质1520中的数据来执行新产品的测试。按照上述示例,系统10的取回模块1530访问非暂时性介质1520,以获得表示测试者14在测试第
一产品1802时执行的先前被跟踪动作的数据。产品测试机1540然后基于该数据来执行第二产品的测试。在一些实施例中,该数据可以用于创建规定要由产品测试机1540执行的动作的脚本。相应地,产品测试机1540执行脚本,这使得产品测试机1540电子地操作测试界面来测试第二产品的(多个)特征。具体地,当基于先前被跟踪动作(示例中的动作1、2)测试第二产品的标签页4特征时,产品测试机1540将光标移动到位置(1142,835),并且在该位置(1142,835)处选择标签页4。作为产品测试机1540的这些操作的结果,测试界面1840中的第二产品1830(其可以是图11的第二产品1509)在窗口1832中显示苹果(图14)。因为接下来的两个被跟踪动作(示例中的动作3、4)用于确认产品中的对象的存在,以确定产品中的特征的测试是否成功,所以产品测试机1540不重复被跟踪动作3、4。相反,产品测试机1540可以将在产品测试机1540测试新产品1830时获得的来自测试界面1840的图像与在测试者14测试第一产品1802时获得的来自测试界面的先前保存的图像(即,示例中的图13f的图像)进行比较。图15图示了这个概念。
[0236]
如图15所示,产品测试机1540可以获得与第一产品1802的测试相关联的第一图像1850,并且获得与第二产品1830的测试相关联的第二图像1852。第一图像1850基于在测试者14测试第一产品1802期间执行的第一任务(示例中测试第一产品1802的标签页4特征的任务)的完成,并且第二图像1852可以基于在产品测试机1540测试第二产品1830期间执行的第二任务(示例中测试第二产品1830的标签页4特征的任务)的完成。在所示的示例中,第一图像1850与图13f所示的图像(其先前在测试者14执行测试第一产品1802中的标签页4特征的任务之后被存储)相同,并且第二图像1852与图14所示的图像(其在产品测试机1540已测试第二产品1830中的标签页4特征之后被获得)相同。相应地,第一图像1850包括被配置用于测试第一产品1802的第一测试界面1800的第一内容的第一内容(例如,上述示例中的苹果的图像),第一内容指示用于测试第一产品1802的第一任务的第一结果(例如,成功结果)。此外,第二图像1852包括被配置用于测试第二产品1830的第二测试界面1840的第二内容的第二内容(例如,上述示例中的苹果的图像),第二内容指示用于测试第二产品1830的第二任务的第二结果。
[0237]
在其他实施例中,第一图像1850可以是没有第一测试界面1800的第一产品1802的图像,并且第二图像1852可以是没有第二测试界面1840的第二产品1830的图像。相应地,第一图像1850包括第一产品1802的第一内容(例如,上述示例中的苹果的图像),第一内容指示用于测试第一产品1802的第一任务的第一结果(例如,成功结果)。此外,第二图像1852包括第二产品1830的第二内容(例如,上述示例中的苹果的图像),第二内容指示用于测试第二产品1830的第二任务的第二结果。
[0238]
如图15所示,产品测试机1540还被配置为将掩模1860施加到第一图像1850以创建第一掩模图像1862,将掩模1860施加到第二图像1852以创建第二掩模图像1864,以及将第一掩模图像1862与第二掩模图像1864进行比较。掩模1860被配置为遮挡第一图像1850和第二图像1852的一个或多个部分。掩模1860是有利的,因为它遮挡了所捕获的图像1850、1852中彼此不同但是与决定产品特征的测试是否失败无关的信息。例如,如图14的测试界面1840所示,被测试的产品的身份1842不同于图13f所示。此外,图14的测试界面1840中的测试者身份1844是“vm3”,指示测试正由3号虚拟机执行,这也不同于图13f中所示的测试者身份(示出测试者是“汤姆”)。在其他情况下,测试者身份1844可以示出在产品本身中,而不是
显示在测试界面的字段中。图14的测试界面1840中的测试日期1846也不同于图13f中所示的日期。产品身份1842、测试者身份1844和测试日期1846在第一图像1850与第二图像1852之间是不同的。然而,它们与决定产品特征的测试是否失败无关。相应地,掩模1860包含被配置为遮挡第一图像1850和第二图像1852中的这些项的一个或多个区域1862。在一些实施例中,如果第一图像1850包括第一产品1802的图像(没有第一测试界面1800),并且如果第二图像1852包括第二产品1830的图像(没有第二测试界面1840),则掩模1860可以具有被配置为遮挡第一产品1802的图像中的项和第二产品1830的图像中对应的项的一个或多个区域1862。
[0239]
在获得第一掩模图像1862和第二掩模图像1864之后,产品测试机1540然后将它们进行比较,以查看它们是否相同或足够相似。如果是,则产品测试机1540可以确定新产品1830中的特征(例如,上述示例中的标签页4特征)的测试通过。另一方面,如果比较结果指示第一掩模图像1862和第二掩模图像1864不相同或不足够相似,则产品测试机1540可以确定新产品1830中的特征的测试失败。相应地,产品测试机1540被配置为基于第一掩模图像1862与第二掩模图像1864的比较来确定产品的特征的测试是否失败。
[0240]
在不同的实施例中可以采用各种技术来将第一掩模图像1862与第二掩模图像1864相互比较。在一些实施例中,产品测试机1540可以被配置为执行互相关以确定第一掩模图像1862与第二掩模图像1864之间的相似度。如果相似度水平高于某个规定阈值,则产品测试机1540可以认为第一掩模图像1862和第二掩模图像1864相同或足够相似。规定阈值可以是0.8、0.9、0.95等,或者任何其他用户定义的数字(其中1.0表示掩模图像1862、1864完全相同的情况)。
[0241]
在其他实施例中,产品测试机1540可以被配置为在第一掩模图像1862与第二掩模图像1864之间执行图像相减,以获得经减去的图像。如果第一掩模图像1862和第二掩模图像1864完全相同,则经减去的图像将在各处具有零像素值。另一方面,如果第一掩模图像1862和第二掩模图像1864基本相似,则经减去的图像将具有一些非零像素值,但不是很多。在一个实施方式中,产品测试机1540可以被配置为对经减去的图像中的非零像素值的数目进行计数。如果该数目低于某个规定阈值,则产品测试机1540可以认为第一掩模图像1862和第二掩模图像1864相同或足够相似。规定阈值可以是100像素、80像素、50像素、10像素等,或者任何其他用户定义的数目。可替代地,规定阈值可以被表示为图像中像素总数的百分比。例如,规定阈值可以是总像素数的5%、总像素数的3%、总像素数的1%等,或者任何其他用户定义的百分比。
[0242]
在一些实施例中,除了考虑经减去的图像中的非零像素值的数目之外,或者作为其替代,产品测试机1540还可以分析经减去的图像中的非零像素值的分布,以确定第一掩模图像1862和第二掩模图像1864是否相同或基本相似。如果经减去的图像中的非零像素值被展开,则产品测试机1540可以确定非零像素值是由于噪声或者由于两个掩模图像1862、1864中的特征的对齐不准确。在这种情况下,可以认为两个掩模图像1862、1864足够相似。另一方面,如果经减去的图像中的非零像素值被聚类成(多个)分组,则产品测试机1540可以确定两个掩模图像1862、1864不同或者基本上不相似。
[0243]
在上述示例中,已经参照测试产品1830的特征描述了系统10。在其他实施例中,系统10可以被配置为测试产品1830的多个特征,其中多个特征至少包括第一特征和第二特
征。在这种情况下,产品测试机1540可以被配置为测试第一特征和第二特征。在一个实施方式中,产品测试机1540可以被配置为通过运行基于测试者14的第一被跟踪动作的第一脚本来测试产品1830的第一特征,并且通过运行基于测试者14的第二被跟踪动作的第二脚本来测试产品1830的第二特征。
[0244]
此外,上述示例是参照测试web页面的标签页特征来描述的。在其他实施例中,系统10可以被配置为测试其他类型的产品的其他特征。例如,系统10可以测试对链接的选择、对按钮的选择、命令的输入等。
[0245]
在一些情况下,测试界面1800的第一图像1850(在较早产品1802的先前测试期间被捕获)可以包括配置随着时间变化的特征(例如,视频、动画、移动的对象等)。在这种情况下,当产品测试机1540执行后面的产品1830的机器测试时,测试界面1840也可以包括具有变化配置的相同特征——即,当何时达到测试的相同阶段。例如,代替静止图像,上述示例中的第一图像1850中的苹果的图像可以是在测试会话期间捕获的第一产品1802的视频中的多个图像帧中的一个图像帧。在这个示例中,视频示出了移动的苹果。按照该示例,为了确定对第二产品1830执行的基于机器的产品测试是否失败,系统10被配置为(从第二产品1830中移动的苹果的视频中的图像帧序列帧中)找到与第一图像8150(或第一掩模图像1862)中的苹果的图像匹配的图像。图16图示了上述概念。如图所示,第一图像1850/第一掩模图像1862包括苹果的图像,该苹果的图像是移动的苹果的视频中的图像帧中的一个图像帧。当由产品测试机1540执行的基于机器的测试到达相同阶段时(例如,在第二产品1830的示出移动的苹果的视频的页面处),系统10然后将视频中的图像帧与来自第一图像1850或来自第一掩模图像1862的苹果的图像进行比较。在所示的示例中,在第二产品1830中的移动的苹果的视频中有四个图像帧1864a-1864d。相应地,系统10执行图像比较,以将这四个图像帧1864a-1864d中的每一个与来自第一图像1850或第一掩模图像1862的苹果的图像进行比较。如图所示,图像帧1864b和与关联于第一产品1802的苹果的图像进行匹配。相应地,系统10可以确定第二产品1830的标签页4特征的测试通过。在一个实施方式中,如上所述的图像捕获特征可以由图像捕获器1550(如图12所示)来执行。图像捕获器1550被配置为通过将图像帧1864的序列与第一图像(其可以是第一图像1850或第一掩模图像1862)进行比较,并且选择与第一图像匹配的图像帧1864中的一个图像帧作为第二图像,来确定第二图像(其可以是第二图像1852或第二掩模图像1864)。在一些实施例中,图像捕获器1550被配置为将第一图像中的感兴趣区域与图像帧序列中的对应的感兴趣区域进行比较。图像捕获器1550是有利的,因为它解决了存储的第一图像1802(表示第一产品1508/1802的特征的成功测试)是第一产品1508/1802中的视频或移动特征的一部分的情况。如上述示例所示,产品测试机1540所进行基于机器的测试是基于捕获的图像的比较(一个来自基于人的测试,另一个来自基于机器的测试)。如果第一捕获图像是来自第一产品1508/1802的视频或移动特征,则产品测试机1540将需要搜索来自第二产品1509/1830中的相同的对应的视频或移动特征的图像帧,以便验证是否存在与第一图像匹配的图像(例如,第一图像1850/第一掩模图像1862)。
[0246]
返回图12,在一些实施例中,系统10可以包括派遣模块1560,派遣模块1560被配置为如果基于第一掩模图像1862与第二掩模图像1864的比较对第二产品1830的特征的测试失败,则自动发出测试第二产品1830的请求。在一些情况下,产品测试机1540基于测试者14
的先前被跟踪动作对新产品的测试可能导致测试失败。这是一种可能的场景,因为更新的产品可能具有使得先前跟踪的产品测试动作不适用于测试更新的产品的特征。如果基于机器的产品测试失败,则派遣模块1560生成信号,以使通知生成器1004发出由一个或多个测试者14进行产品测试的一个或多个请求。与测试者14进行的产品测试相关联的技术和特征先前已描述过,这里不再重复。如果由一个或多个测试者14进行的产品测试失败,则系统10可以确定第二产品1830(例如,更新的产品)没有通过产品测试(因为它没有通过基于机器的测试和基于人的测试两者)。另一方面,如果一个或多个测试者14对新产品1830的产品测试通过,则系统10可以确定新产品1830通过产品测试。在这种情况下,系统10然后将测试者14的被跟踪动作(导致对新产品1830的产品测试通过的动作)保存在非暂时性介质1520中以供以后使用。例如,如果系统10稍后接收到另一新产品(例如,另一更新的产品)用于产品测试,则系统10可以取回具有最新被跟踪的测试者动作的电子文件,以供产品测试机1540用来对最新产品执行基于机器的产品测试。
[0247]
在上述示例中,产品测试机1540被描述为在第二产品1830中的、与第一产品1802中的位置相同的位置处重复选择第二产品1830中的对象(如跟踪器1300所跟踪的)。这是因为测试者14对第一产品1802中的对象的选择由跟踪器1300跟踪,并且假设当由产品测试机1540测试时,相同的对象将出现在第二产品1830中。然而,在一些实施例中,在第一产品1802中选择的对象可以出现在第二产品1830中的不同位置处。例如,当一方16更新第一产品1802以创建第二产品1830时,一方16可以将第一产品1802中的对象(例如,标签页)移动到第二产品1830中的另一位置。相应地,在一些实施例中,当跟踪器1300在测试者14测试产品时跟踪对象的选择时,跟踪器1300还可以捕获被选择的对象的图像。在上述示例中,当测试者14选择标签页4时,跟踪器1300可以捕获标签页4的图像。对象的捕获图像然后可以与表示被跟踪动作(例如,示例中所跟踪的对标签页4的选择)的数据相关联地存储在非暂时性介质1520中。在一个实现方式中,可以通过在测试者14选择对象时捕获产品的屏幕截图以及对象选择的坐标来执行对选择的对象的图像的捕获,该坐标指示在屏幕截图中选择的对象。稍后,当产品测试机1540执行第二产品1830的机器测试时,代替在与第一产品1802中的位置相同的位置处重复对象的选择,产品测试机1540搜索第二产品1830的图像以寻找先前由测试者14在第一产品1802中选择的相同对象。例如,产品测试机1540可以执行图像搜索来定位第二产品1830中的标签页4,并且如果找到标签页4,则产品测试机1540可以选择标签页4,而不管标签页4相对于第二产品1830是否处于与第一产品1802中的位置相同的位置。因此,在其他实施例中,代替基于测试者14的先前测试动作的位置(例如,x,y坐标)来重新播放测试动作,产品测试机1540可以基于对象的外观和/或语义来重新播放先前被跟踪的测试动作。
[0248]
应当注意,被测试的产品不限于本文描述的示例和特征,并且被测试的产品可以具有其他特征,和/或可以是不同的类型。借助于非限制性示例,产品可以包括web页面、web站点、计算机应用、移动设备应用或处理器应用。
[0249]
应当注意,系统10不限于具有图12所示的配置,并且系统10不限于具有本文描述的特征。在一些实施例中,系统10可以不包括参照图12描述的项中的一个或多个。此外,在一些实施例中,参照图12描述的项中的一个或多个可以被组合。例如,在一些实施例中,取回模块1530和产品测试机1540可以被集成。在这种情况下,取回模块1530可以是处理单元
的一个或多个输入或者一个或多个输入界面,其中处理单元可以实现产品测试机1540,或者可以是产品测试机1540的一部分。此外,在一些实施例中,产品测试机1540可以是处理单元,或者是处理单元的一部分。这种处理单元也可以用于实现跟踪器1300、取回模块1530、图像捕获器1550、派遣模块1560或前述的任意组合。可替代地,这种处理单元可以通信耦合到跟踪器1300、取回模块1530、图像捕获器1550、派遣模块1560或前述的任意组合。此外,在一些实施例中,电子产品测试系统10可以仅包括产品测试机1540。在其他实施例中,电子产品测试系统10可以不包括用户界面生成器1350、产品测试指令数据库1600、测试结果取回模块1500、测试监测模块1400、分析器1502或前述的任意组合。此外,在一些实施例中,电子产品测试系统10可以不包括图12中虚线框之外的一个或多个项。在另外的实施例中,非暂时性介质1520可以被排除在系统10之外。在这种情况下,系统10通信耦合到非暂时性介质1520(例如,经由互联网、电缆或任何其他类型的网络连接)。此外,在其他实施例中,产品测试机1540可以被认为是测试设备。这种测试设备可以可选地包括图像捕获器1550和/或派遣模块1560。此外,这种测试设备可以包括用于提供本文描述的一个或多个特征的处理单元。
[0250]
图17图示了根据一些实施例的方法1900。方法1900是用于产品测试的处理器实现的方法。方法1900可以由图12的系统10执行。如图所示,方法1900包括:访问电子文件,该电子文件包含基于第一产品的测试而生成的数据(项1902);以及由处理单元基于电子文件中的数据执行第二产品的测试(项1904)。第二产品可以具有不同于第一产品的至少一个特征。第一产品可以是在先前的示例中描述的第一产品1802,并且第二产品可以是在先前的示例中描述的第二产品1830。
[0251]
在一些实施例中,关于方法1900,电子文件中的数据包括关于测试者的被跟踪动作的信息以及被跟踪动作的相应时间戳。
[0252]
在一些实施例中,关于方法1900,执行第二产品的测试的动作包括基于电子文件中关于测试者的被跟踪动作的信息,重新执行被跟踪动作以测试第二产品。
[0253]
在一些实施例中,关于方法1900,执行第二产品的测试的动作包括模拟测试者的动作。
[0254]
在一些实施例中,关于方法1900,电子文件包括脚本,并且其中执行第二产品的测试的动作包括运行用于测试第二产品的脚本。
[0255]
在一些实施例中,关于方法1900,电子文件中的数据基于使用光标和/或键盘执行的(多个)被跟踪动作。
[0256]
在一些实施例中,关于方法1900,电子文件中的数据包括:光标位置;测试者键入的文本;测试者键入的文本的位置、对象选择的位置;或前述的任意组合。
[0257]
在一些实施例中,关于方法1900,电子文件与第一产品的身份相关联地存储在非暂时性介质中。
[0258]
在一些实施例中,关于方法1900,非暂时性介质还存储与第一产品的身份相关联的一个或多个附加电子文件。
[0259]
在一些实施例中,关于方法1900,访问电子文件的动作包括选择非暂时性介质中的电子文件中的具有最新时间戳的电子文件。
[0260]
在一些实施例中,方法1900还可以包括:获得与第一产品的测试相关联的第一图
像,以及获得与第二产品的测试相关联的第二图像。
[0261]
在一些实施例中,关于方法1900,第一图像基于在第一产品的测试期间执行的第一任务的完成,并且其中第二图像基于在第二产品的测试期间执行的第二任务的完成。
[0262]
在一些实施例中,关于方法1900,第一图像包括被配置用于测试第一产品的第一测试界面的第一内容,第一内容指示用于测试第一产品的第一任务的第一结果;并且其中第二图像包括被配置用于测试第二产品的第二测试界面的第二内容,第二内容指示用于测试第二产品的第二任务的第二结果。
[0263]
在一些实施例中,方法1900还可以包括:将掩模施加到第一图像以创建第一掩模图像,将该掩模施加到第二图像以创建第二掩模图像,以及将第一掩模图像与第二掩模图像进行比较。
[0264]
在一些实施例中,关于方法1900,掩模被配置为遮挡第一图像和第二图像的一个或多个部分。
[0265]
在一些实施例中,关于方法1900,第二产品的测试包括测试第二产品的特征,并且其中该方法还包括基于第一掩模图像与第二掩模图像的比较来确定第二产品的特征的测试是否失败。
[0266]
在一些实施例中,方法1900还可以包括如果基于第一掩模图像与第二掩模图像的比较的第二产品的特征的测试失败,则自动发出测试第二产品的请求。
[0267]
在一些实施例中,关于方法1900,处理单元被配置为测试第二产品的多个特征,该多个特征至少包括第一特征和第二特征,其中执行第二产品的测试的动作包括通过运行基于测试者的第一被跟踪动作的第一脚本来测试第二产品的第一特征,以及通过运行基于测试者的第二被跟踪动作的第二脚本来测试第二产品的第二特征。
[0268]
在一些实施例中,方法1900还可以包括通过将图像帧序列与第一图像进行比较并且选择图像帧中的、与第一图像匹配的一个图像帧作为第二图像,来确定第二图像。
[0269]
在一些实施例中,方法1900还可以包括跟踪测试者与web页面的交互,其中电子文件中的数据基于被跟踪的交互。
[0270]
在一些实施例中,关于方法1900,跟踪的动作包括跟踪由测试者操作的光标的移动。
[0271]
在一些实施例中,关于方法1900,跟踪的动作包括跟踪对标签页的选择、对按钮的选择、对图标的选择、对文本的选择或前述的任意组合。
[0272]
在一些实施例中,关于方法1900,第一产品包括web页面、web站点、计算机应用、移动设备应用或处理器应用。
[0273]
在一些实施例中,关于方法1900,执行第二产品的测试的动作包括在没有来自光标控件的输入的情况下相对于测试界面虚拟地移动光标。
[0274]
在一些实施例中,关于方法1900,执行第二产品的测试的动作包括在没有来自光标控件的输入的情况下在测试界面中虚拟地进行光标选择。
[0275]
在一些实施例中,关于方法1900,执行第二产品的测试的动作包括在没有来自键盘的输入的情况下在测试界面的字段中虚拟地键入文本。
[0276]
在一些实施例中,关于方法1900,第一产品的测试是基于人的,并且第二产品的测试是基于机器的。
[0277]
在一些实施例中,可以响应于处理单元处理存储在处理器可读介质中的指令集来执行方法1900。具体地,处理器可读介质包括指令集,其中处理单元对指令的执行将用于产品测试的方法被执行,该方法包括:访问电子文件,该电子文件包含基于第一产品的测试而生成的数据;以及基于电子文件中的数据执行第二产品的测试,第二产品具有不同于第一产品的至少一个特征。
[0278]
如所讨论的,产品测试机1540被配置为比较两个掩模图像以确定它们是否相同或基本相似,并且如果是,则产品测试机1540可以确定为测试新产品的特征而执行的基于机器的测试通过。图18图示了设备1950,该设备1950是电子产品测试系统的组件的,其中该组件被配置为提供上述特征。组件1950可以是处理单元。此外,在一些实施例中,装置1950本身可以被认为是产品测试设备/系统,或者产品测试设备/系统的组件。此外,在一些实施例中,装置1950可以被实现为产品测试机1540的一部分,或者被实现为通信耦合到产品测试机1540的模块。如图所示,装置1950包括一个或多个输入1954,输入1954被配置为获得与第一产品的测试相关联的第一图像,并且获得与第二产品的测试相关联的第二图像,其中第二产品的测试包括第二产品的特征的测试。装置1950还包括掩模施加器1954,掩模施加器1954被配置为将掩模施加到第一图像以创建第一掩模图像以及将掩模施加到第二图像以创建第二掩模图像。装置1950还包括比较器1956,比较器1956被配置为将第一掩模图像与第二掩模图像进行比较,以确定第二产品的特征的测试是否失败。在一些实施例中,第一图像可以是图15的图像1850,并且第二图像可以是图15的图像1852。此外,掩模可以是图15的掩模1860。
[0279]
掩模被配置为遮挡第一图像和第二图像的一个或多个部分。
[0280]
在一些实施例中,第一图像基于在第一产品的测试期间执行的第一任务的完成,并且其中第二图像基于在第二产品的测试期间执行的第二任务的完成。
[0281]
在一些实施例中,第一图像包括被配置用于测试第一产品的第一测试界面的第一内容,第一内容指示用于测试第一产品的第一任务的第一结果;并且其中第二图像包括被配置用于测试第二产品的第二测试界面的第二内容,第二内容指示用于测试第二产品的第二任务的第二结果。
[0282]
在一些实施例中,装置1950还可以包括图像捕获器,该图像捕获器被配置为通过将图像帧序列与第一图像进行比较并且选择图像帧中的、与第一图像匹配的一个图像帧作为第二图像,来确定第二图像。
[0283]
图19图示了根据一些实施例的方法1980。方法1980是用于产品测试的处理器实施的方法。方法1980可以由图12的系统10执行。在一个实施方式中,方法1980可以由图18的装置1950执行。如图所示,方法1980包括:由一个或多个输入获得与第一产品的测试相关联的第一图像以及与第二产品的测试相关联的第二图像,其中第二产品的测试包括第二产品的特征的测试(项1982)。方法1980还包括:由掩模施加器将掩模施加到第一图像以创建第一掩模图像(项1984)。方法1980还包括:由掩模施加器将掩模施加到第二图像以创建第二掩模图像(项1986)。方法1980还包括:由比较器将第一掩模图像与第二掩模图像进行比较,以确定第二产品的特征的测试是否失败(项1988)。第一产品可以是在先前的示例中描述的第一产品1802,并且第二产品可以是在先前的示例中描述的第二产品1830。
[0284]
在一些实施例中,关于方法1980,第一图像基于在第一产品的测试期间执行的第
一任务的完成,并且其中第二图像基于在第二产品的测试期间执行的第二任务的完成。
[0285]
在一些实施例中,关于方法1980,第一图像包括第一产品的第一内容,第一内容指示用于测试第一产品的第一任务的第一结果;并且其中第二图像包括第二产品的第二内容,第二内容指示用于测试第二产品的第二任务的第二结果。
[0286]
在一些实施例中,关于方法1980,掩模被配置为遮挡第一图像和第二图像的一个或多个部分。
[0287]
在一些实施例中,方法1980还包括由图像捕获器通过将图像帧序列与第一图像进行比较并且选择图像帧中的、与第一图像匹配的一个图像帧作为第二图像,来确定第二图像。
[0288]
在一些实施例中,可以响应于处理单元处理存储在处理器可读介质中的指令集来执行方法1980。具体地,处理器可读介质包括指令集,其中处理单元对指令的执行将使用于产品测试的方法被执行,该方法包括:由一个或多个输入获得与第一产品的测试相关联的第一图像以及与第二产品的测试相关联的第二图像,其中第二产品的测试包括第二产品的特征的测试;由掩模施加器将掩模施加到第一图像以创建第一掩模图像;由掩模施加器将掩模施加到第二图像以创建第二掩模图像;以及由比较器将第一掩模图像与第二掩模图像进行比较,以确定第二产品的特征的测试是否失败。
[0289]
掩模生成器
[0290]
如所讨论的,产品测试机1540被配置为比较两个掩模图像以确定它们是否相同或基本相似,并且如果是,则产品测试机1540可以确定为测试新产品的特征而执行的基于机器的测试通过。在一些实施例中,系统10还可以包括被配置为生成掩模的组件。图20图示了装置2000,装置2000是电子产品测试系统的组件,其中该组件被配置为创建用于遮蔽在产品的测试期间获得的不同产品的一个或多个图像的掩模。组件2000可以是处理单元。此外,在一些实施例中,设备2000本身可以被认为是产品测试设备的组件。此外,在一些实施例中,装置2000可以被实施为产品测试机1540的一部分,或者被实施为通信耦合到产品测试机1540的模块。如图所示,装置2000包括:一个或多个输入2002,被配置为接收在产品的第一测试期间捕获的产品的第一图像,以及在产品的第二测试期间捕获的产品的第二图像。设备2000还包括图像分析器2004,图像分析器2004被配置为确定在第一图像和第二图像中不同的、产品的第一部分。设备2000还包括掩模生成器2006,掩模生成器2006被配置为创建用于覆盖产品的第一部分的图像的掩模。
[0291]
可选地,产品的第一测试与第一测试者相关联,并且产品的第二测试与第二测试者相关联。
[0292]
可选地,图像分析器2004被配置为基于第一图像和第二图像执行图像减法以获得经减去的图像。
[0293]
可选地,图像分析器2004被配置为分析经减去的图像中的非零像素值的分布。
[0294]
可选地,掩模生成器2006被配置为基于对经减去的图像中的非零像素值的分布的分析的结果来创建掩模。
[0295]
可选地,图像分析器2004被配置为确定在第一图像和第二图像中不同的、产品的第二部分,并且其中掩模生成器2006被配置为创建用于还覆盖产品的第二部分的图像的掩模。
[0296]
可选地,装置2000还包括非暂时性介质,非暂时性介质被配置为与产品的身份相关联地存储掩模。
[0297]
图21图示了根据一些实施例的方法2100。方法2100是用于产品测试的处理器实现的方法。方法2100可以由图12的系统10执行。在一个实现方式中,方法2100可以由图20的装置2000执行。如图所示,方法2100包括:接收在产品的第一测试期间捕获的产品的第一图像(项2102);接收在产品的第二测试期间捕获的产品的第二图像(项2104);确定在第一图像和第二图像中不同的、产品的第一部分(项2106);以及创建用于覆盖产品的第一部分的图像的掩模(项2108)。
[0298]
在一些实施例中,关于方法2100,产品的第一测试与第一测试者相关联,并且产品的第二测试与第二测试者相关联。
[0299]
在一些实施例中,关于方法2100,确定在第一图像和第二图像中不同的、产品的第一部分的动作包括基于第一图像和第二图像执行图像减法以获得经减去的图像。
[0300]
在一些实施例中,关于方法2100,确定在第一图像和第二图像中不同的、产品的第一部分的动作还包括分析经减去的图像中的非零像素值的分布。
[0301]
在一些实施例中,关于方法2100,基于对经减去的图像中的非零像素值的分布的分析的结果来创建掩模。
[0302]
在一些实施例中,方法2100还可以包括确定在第一图像和第二图像中不同、的产品的第二部分,并且其中创建掩模还用于覆盖产品的第二部分的图像。
[0303]
在一些实施例中,方法2100还可以包括将掩模与产品的身份相关联地存储在非暂时性介质中。
[0304]
在一些实施例中,可以响应于处理单元处理存储在处理器可读介质中的指令集来执行方法2100。具体地,处理器可读介质包括指令集,其中处理单元对指令的执行将使一种方法被执行,该方法包括:接收在产品的第一测试期间捕获的产品的第一图像;接收在产品的第二测试期间捕获的产品的第二图像;确定在第一图像和第二图像中不同的、产品的第一部分;以及创建用于覆盖产品的第一部分的图像的掩模。
[0305]
脚本生成器
[0306]
如所讨论的,在一些实施例中,产品测试机1540被配置为基于脚本来执行基于机器的产品测试,其中脚本基于测试者所执行的先前的测试。在一些实施例中,系统10还可以包括被配置为生成脚本的组件。图22图示了装置2200,装置2200是电子产品测试系统的组件,其中该组件被配置为创建脚本以由产品测试设备执行。组件2200可以是处理单元。此外,在一些实施例中,装置2200本身可以被认为是产品测试设备的组件。此外,在一些实施例中,装置2200可以被实现为产品测试机1540的一部分,或者被实现为通信耦合到产品测试机1540的模块。如图所示,装置2200包括:输入2202,被配置为接收关于在测试第一产品时执行的第一被跟踪动作的第一数据;以及处理单元2204,被配置为基于第一数据创建脚本,其中该脚本可由产品测试机电子地执行以执行第二产品的机器测试,第二产品具有不同于第一产品的至少一个特征。
[0307]
可选地,该装置是产品测试机的一部分。
[0308]
可选地,输入2202还被配置为接收关于在测试第一产品时执行的第二被跟踪动作的第二数据,并且其中处理单元2204被配置为还基于第二数据来创建脚本。
[0309]
可选地,第一被跟踪动作用于测试第一产品的第一特征,并且第二被跟踪动作用于测试第一产品的第二特征。
[0310]
可选地,第一被跟踪动作用于由第一测试者测试第一产品的特征,并且第二被跟踪动作用于由第二测试者测试第一产品的特征。
[0311]
可选地,第一数据指示第一测试者在测试第一产品的特征时执行的第一被跟踪动作与另一个被跟踪动作之间的第一时段;其中第二数据指示第二测试者在测试第一产品的特征时执行的第二被跟踪动作与另一个被跟踪动作之间的第二时段;并且其中处理单元2204被配置为选择第一时段和第二时段中较短的时段来包括在脚本中。
[0312]
可选地,第一数据被存储在第一文件中,第二数据被存储在第二文件中,并且其中处理单元被配置为通过组合第一数据和第二数据来创建脚本。
[0313]
可选地,装置2200还包括非暂时性介质,该非暂时性介质被配置为存储脚本以由产品测试机访问。
[0314]
可选地,第一被跟踪动作包括被跟踪的光标移动、被跟踪的对象选择、文本的键入、按键的输入或语音的输出。
[0315]
图23图示了根据一些实施例的方法2300。方法2300是用于产品测试的处理器实现的方法。具体地,方法2300用于创建脚本以由产品测试机执行,以执行基于机器的产品测试。方法2300可以由图12的系统10执行。在一个实施方式中,方法2300可以由图22的装置2200执行。如图所示,方法2300包括:接收关于在测试第一产品时执行的第一被跟踪动作的第一数据(项2302);以及由处理单元基于第一数据创建脚本(项2304)。可由产品测试机(例如,产品测试机1540)电子地执行该脚本,以执行第二产品的机器测试,第二产品具有不同于第一产品的至少一个特征。
[0316]
在一些实施例中,关于方法2300,处理单元是产品测试机的一部分。
[0317]
在一些实施例中,方法2300还可以包括接收关于在测试第一产品时执行的第二被跟踪动作的第二数据,并且其中脚本也基于第二数据被创建。
[0318]
在一些实施例中,关于方法2300,第一被跟踪动作用于测试第一产品的第一特征,并且第二被跟踪动作用于测试第一产品的第二特征。
[0319]
在一些实施例中,关于方法2300,第一被跟踪动作用于由第一测试者测试第一产品的特征,并且第二被跟踪动作用于由第二测试者测试第一产品的特征。
[0320]
在一些实施例中,关于方法2300,第一数据指示第一测试者在测试第一产品的特征时执行的第一被跟踪动作与另一害人被跟踪动作之间的第一时段;其中第二数据指示第二测试者在测试第一产品的特征时执行的第二被跟踪动作与另一害人被跟踪动作之间的第二时段;并且其中该方法还包括选择第一时段和第二时段中较短的时段以包括在脚本中。
[0321]
在一些实施例中,关于方法2300,第一数据被存储在第一文件中,第二数据被存储在第二文件中,并且其中通过组合第一数据和第二数据来创建脚本。
[0322]
在一些实施例中,方法2300还可以包括将脚本存储在非暂时性介质中以由产品测试机访问。
[0323]
在一些实施例中,关于方法2300,第一被跟踪动作包括被跟踪的光标移动、被跟踪额对象选择、文本的键入、按键的输入或语音的输出。
[0324]
在一些实施例中,2300可以响应于处理单元处理存储在处理器可读介质中的指令集来执行方法。具体地,处理器可读介质包括指令集,其中处理单元对指令的执行将使一种方法被执行,该方法包括:接收关于在测试第一产品时执行的第一被跟踪动作的第一数据;以及由处理单元基于第一数据创建脚本,其中该脚本可由产品测试机电子地执行以执行第二产品的机器测试,第二产品具有不同于第一产品的至少一个特征。
[0325]
具有产品测试指令生成器和自动化测试特征的系统
[0326]
在图12的上述实施例中,系统10被配置为跟踪(多个)测试者14在测试产品时执行的动作,以及利用被跟踪动作来生成用于电子文件的数据。系统10然后可以访问电子文件,并且使用该电子文件中的数据来执行产品或更高版本产品的、基于机器的测试。在其他实施例中,可以在不跟踪(多个)测试者14的动作的情况下生成电子文件中的数据。替代地,系统10可以包括产品测试指令生成器,该产品测试指令生成器被配置为提供用户界面,用于允许用户创建产品测试指令作为电子文件的数据。系统10可以包括产品测试设备,该产品测试设备被配置为基于由测试指令生成器提供的产品测试指令,来执行自动化产品测试(例如,基于机器的产品测试)。
[0327]
图24图示了用于提供产品测试的系统10,其中系统10包括用于允许产品的自动化测试的特征。系统10与图12的系统10相同,除了系统10还包括测试指令生成器2402之外。测试指令生成器2402被配置为提供(例如,经由用户界面生成器1350)用户界面,用于允许用户提供输入以便以编程格式生成产品测试指令。尽管用户界面生成器1350被示为与测试指令生成器2402分离的组件,但是在其他实施例中,用户界面生成器1350或其至少一部分可以被实现为测试指令生成器2402的组件。在使用测试指令生成器2402生成产品测试指令之后,将其存储在编程测试指令数据库2404中的电子文件中。当测试产品时,取回模块1530从编程测试指令数据库2404中取回电子文件,然后产品测试设备1540基于电子文件中的测试指令执行产品测试。在一些实施例中,测试指令生成器2402和产品测试设备1540被实现为电子产品测试系统的一部分。
[0328]
在一些实施例中,产品测试设备1540可以包括处理单元,该处理单元被配置为通过基于存储在编程测试指令数据库2404中的电子文件中的产品测试指令模拟人的动作,来执行产品的测试。例如,处理单元可以被配置为在没有来自光标控件的输入的情况下移动光标,在没有来自光标控件的输入的情况下进行对象的选择,在没有来自键盘的输入的情况下在字段中键入文本,等等,或者上述的任意组合。
[0329]
此外,在一些实施例中,产品测试设备1540的处理单元可以包括解释器,该解释器被配置为解释电子文件中的产品测试指令。在一个实现方式中,解释器被配置为标识预定义的字(例如,命令),诸如动作标识符和对象标识符,然后产品测试设备1540的处理单元执行对应的功能或例程,以基于经解释的字执行测试产品的任务。产品测试设备1540的处理单元可以包括选择器,该选择器被配置为基于将预定义字与相应功能或例程进行映射或关联的映射(例如,表格)来选择功能或例程。
[0330]
在其他实施例中,系统10可以包括脚本生成器,该脚本生成器被配置为基于电子文件中的产品测试指令生成脚本。在这种情况下,处理单元被配置为运行用于测试产品的脚本。
[0331]
在一些实施例中,产品测试设备1540的处理单元被配置为基于电子文件中的产品
测试指令来测试产品的多个特征。在这种情况下,电子文件可以包含产品测试指令,该产品测试指令被配置为使产品测试设备1540执行用于测试多个特征的多个任务。在其他实施例中,产品测试设备1540的处理单元可以被配置为基于不同的相应电子文件中的不同产品测试指令来测试产品的不同特征。例如,产品测试设备1540的处理单元可以被配置为基于第一电子文件中的产品测试指令来测试产品的第一特征,以及基于第二电子文件中的产品测试指令来测试产品的第二特征。
[0332]
在一些实施例中,由测试指令生成器2402提供的用户界面包括图形用户界面。图形用户界面可以提供第一项集合和第二项集合以由用户选择,其中第一项集合包括多个动作标识符,并且第二项集合包括多个对象标识符。动作标识符可以标识要由产品测试设备1540执行的动作,并且对象标识符可以标识要由产品测试设备1540对其执行动作的对象。借助于非限制性示例,动作标识符可以标识点击动作、填写动作、键入动作、按压按键动作、悬停动作、下拉列表选择动作、复选框选中动作、复选框取消选中动作、刷新动作、导航动作、新建标签页动作、关闭标签页动作、滚动动作、拖放动作或点击并保持动作。此外,借助于非限制性示例,对象标识符可以标识按钮、字段、下拉列表菜单、下拉列表选项、链接、图标、复选框、标题、窗口、文本、模态或用户界面元素。
[0333]
在一些实施例中,电子文件中的产品测试指令具有将动作标识符与对应的对象标识符关联起来的数据结构:动作标识符标识要由测试设备执行的动作,并且对象标识符标识要由测试设备对其执行动作的对象。
[0334]
此外,在一些实施例中,数据库2404可以被配置为将电子文件(具有产品测试指令)与产品的身份相关联地存储。数据库2404可以是一个或多个非暂时性介质。
[0335]
在一些实施例中,产品测试设备1540可以包括检查器,该检查器被配置为在产品测试设备1540的处理单元执行测试动作之后,检查元素是否可见。在产品是web站点或具有用户界面的实施例中,元素可以是任何用户界面元素,诸如图标、按钮、标签页、链接、图形等。此外,在一些实施例中,产品测试设备1540的检查器可以被配置为在产品测试设备1540的处理单元执行测试动作之后,检查元素是否不可见。产品测试设备1540的检查器还可以被配置为在处理单元执行测试动作之后,检查指定页面是否已被加载。
[0336]
在一些情况下,产品测试设备1540的处理单元可以实现检查器。此外,在一些实施例中,产品测试设备1540的处理单元可以被配置为通过以下步骤来检查产品的用户界面中是否存在项:获得与产品的测试相关联的第一图像,获得第二图像,以及比较第一图像和第二图像以确定是否存在匹配。第一图像基于在产品的测试期间执行的第一任务的完成。例如,第一图像可以包括产品的第一内容,第一内容指示用于测试产品的第一任务的第一结果。第二图像可以是先前获得的参考图像(例如,经由屏幕捕获)。
[0337]
图25a-图25m图示了产品测试指令生成的示例。图25a图示了由测试指令生成器2402提供的用户界面2500的示例。用户界面2500提供项2502的列表,项2502是由用户选择的动作标识符。当动作标识符中的一个动作标识符被选择时,出现对应的字段,该字段允许用户输入与所选择的动作标识符相对应的对象标识符。在所示的示例中,用户已经选择“导航”作为动作标识符。用户界面2500相应地显示字段2506,字段2506允许用户输入标识要导航到的url的对象标识符。在所示的示例中,用户输入“www.google.com”作为要导航到的url。对“导航”动作标识符的选择以及在字段2506中输入“www.google.com”的结果是,规定
产品测试设备导航到url:“www.google.com”。如图所示,用户界面2500还包括任务添加按钮2508。如果用户选择按钮2508,则用户界面2500允许添加附加任务。
[0338]
如图25b所示,用户已经点击任务添加按钮2508以指示用户想要添加附加任务。用户还从动作标识符2502的列表中选择了“填写”。用户界面2500然后显示对应的字段2510,字段2510允许用户输入在其中执行填写动作的文本字段的标记。在所示的示例中,用户输入“谷歌栏”作为文本字段标记。这向系统10指示填写动作要在谷歌栏内执行。用户界面2500还提供文本字段2512,该文本字段2512用于允许用户输入要用来在“谷歌栏”标记中进行填写的文本。在所示的示例中,用户已经在文本字段2512中输入了“rainforest”。对“填写”动作标识符的选择以及字段2510中的“谷歌栏”和字段2512中的“rainforest”的输入的结果是,规定产品测试设备通过在谷歌栏文本字段中键入“rainforest”来执行填写动作。
[0339]
如图25c所示,用户接下来点击任务添加按钮2508以创建新任务,并且选择动作标识符2502“点击”作为新任务的动作。用户界面2500然后提供字段2514,用于允许用户输入关于“点击”动作的信息。在所示的示例中,字段2514包括用于允许用户选择要由产品测试设备对其执行“点击”动作的现有元素的选项。如果用户点击“选择元素”选项,则用户界面2500显示现有元素2516的列表(图25d),并且显示指示用户从列表中选择元素的消息2518。元素2516是(多个)用户先前创建的对象。在所示的示例中,用户想要产品测试设备在谷歌栏中输入“rainforest”之后点击“谷歌搜索按钮”。然而,这种“谷歌搜索按钮”尚未被创建。相应地,用户将需要使用用户界面2500来创建这种“谷歌搜索按钮”,使得产品测试设备在对产品执行自动化产品测试时能够标识这种按钮。
[0340]
图25e-图25l图示了可以如何利用用户界面2500来创建对象“谷歌搜索按钮”。如图25e所示,为了创建对象“谷歌搜索按钮”,用户首先从多个可用的空模板2520中选择名词模板。在所示的示例中,用户选择“按钮”模板来指示要被创建的对象是按钮(图25f)。用户界面2500然后显示字段2522,用于允许用户输入要被创建的按钮的名称。如图25g所示,用户在字段2522中输入名称“谷歌搜索”作为要被创建的按钮的名称。在输入按钮的名称之后,对象的名称出现在现有元素2516的列表中(图25h)。接下来,用户需要输入谷歌搜索按钮的图像以便与被创建的对象名称“谷歌搜索”关联起来,使得产品测试设备将知道谷歌搜索按钮是什么样子的。为此,用户可以在用户界面2500处选择“预览”按钮2530(图25i)。当选择“预览”按钮2530时,系统10然后执行迄今为止在用户界面2500中输入的产品测试指令,并且将标识任何缺失的元素。在所示的示例中,当用户点击“预览”按钮2530时,系统10首先导航到url“www.google.com”,然后基于在用户界面2500中输入的前两个任务,找到谷歌栏以输入“rainfores”。系统10然后尝试点击被标记为“谷歌搜索”的按钮。然而,因为没有“谷歌搜索”按钮的图像,所以系统10无法在“预览”运行中标识这种按钮。用户界面2500相应地显示“预览”运行失败的最后一页的图像2540,以及指示用户对缺失元素(其为“谷歌搜索”按钮)进行屏幕截图的消息2542(图25j)。然后,用户选择“屏幕截图”按钮2546,这允许用户通过突出显示屏幕中包含这种按钮的区域2548来执行对谷歌搜索按钮的屏幕捕获(图25k)。在捕获谷歌搜索按钮的图像之后,系统10然后将其与创建的名称“谷歌搜索”关联起来。如图25l所示,谷歌搜索按钮的捕获图像2550现在作为要对其执行“点击”动作的对象而出现。这样,当产品测试设备执行测试指令时,它将搜索谷歌搜索按钮的图像2550,并且点击具有这种图像的按钮。
[0341]
在上述示例中,用户界面2500被用来生成产品测试指令,其中每个指令被设计成指示产品测试设备执行通常由人执行的任务。例如,“导航”任务、“填写”任务和“点击”任务通常由人在操作计算终端与web站点交互时执行。相应地,产品测试设备基于产品测试指令来模拟人的动作。在其他实施例中,用户界面2500可以生成其他类型的产品测试指令。例如,在其他实施例中,用户界面2500可以允许用户分配“检查”任务,从而创建用于指示产品测试设备检查某项的产品测试指令。按照上述示例,用户可以在用户界面2500中选择“滚动”动作标识符,这将导致出现方向控件2560(图25m)。“滚动”动作用于指示产品测试设备在显示的页面中朝向某个方向(例如,向上或向下)查看。相应地,用户可以使用方向控件2560选择“向上”或“向下”。如图所示,用户界面2500还提供字段2564,该字段2564允许用户输入某个对象(或目标)。对象可以是可以显示在页面中的任何元素,诸如图标、标签页、文本、图像、图形等。在所示的示例中,用户已经使用用户界面2500从屏幕上截屏图像,并且将其标记为“生态系统”(ecosystem)。在字段2564中,用户选择这种元素作为对象。对“滚动”动作标识符的选择、对“向下”方向的选择和“生态系统”图像的输入一起将导致产品测试设备向下滚动以查找“生态系统”图像。产品测试设备可以执行图像分析(诸如图像比较),以确定页面中是否存在“生态系统”图像。在一个实施方式中,如果产品的图像与产品测试指令中提供的对象的图像之间存在100%的像素匹配(或高于80%),则产品测试设备1540可以确定某个对象存在。
[0342]
产品测试设备1540不限于检查对象(例如,产品的用户界面元素)是否存在。在其他实施例中,产品测试设备1540可以被配置为提供其他类型的检查。例如,在其他实施例中,产品测试设备1540可以被配置为确定对象(例如,产品的用户界面元素)是否消失。在一个实施方式中,如果产品测试设备1540不能在产品的图像与产品测试指令中提供的对象的图像之间找到100%的像素匹配,则产品测试设备1540可以确定对象已经消失。
[0343]
作为另一示例,产品测试设备1540可以检查指定页面是否已被加载。在一个实施方式中,产品测试设备1540可以暂停测试指令的执行,并且可以等待页面加载。一旦页面已被加载,则产品测试设备1540就可以将加载的页面与测试指令中输入的对象(例如,页面的图像或页面的一部分的图像)进行比较。如果存在匹配,则产品测试设备1540可以确定页面已被加载。在一些实施例中,参照图15描述的技术可以被产品测试设备1540用来确定页面中是否存在元素,和/或确定页面是否已被加载。在一些情况下,如果页面具有变化的元素(例如,电影、动画gif等),或者如果页面没有完全加载,则产品测试设备1540可以等待规定的持续时间(例如,30秒)。在经过规定的持续时间之后,产品测试设备1540然后将继续执行产品测试指令,并且移动到下一个产品测试任务。此外,在一些实施例中,参照图16描述的技术可以被产品测试设备1540用来确定元素是否存在于具有变化元素的页面中。
[0344]
在另一示例中,产品测试设备1540可以被配置为进行检查以查看页面中是否存在某个文本。在一个实施方式中,产品测试设备1540可以在页面中执行字搜索以寻找某个文本。文本可以是字、符号、数字等。此外,在一些实施例中,产品测试设备1540可以被配置为进行检查以查看页面中的某个数字是等于某值、小于某值还是大于某值。在其他实施例中,产品测试设备1540可以被配置为进行检查以查看页面中的列表是按字母顺序还是按数字顺序进行排序。
[0345]
应当注意,由产品测试设备基于经由用户界面2500输入的用户动作标识符而执行
的动作不限于所描述的示例。在其他实施例中,测试指令生成器2402的用户界面2500可以提供其他动作标识符以由用户选择,以使产品测试设备执行其他动作。图26a-图26b图示了可以由用户界面2500提供的用于用户选择或输入的动作标识符的其他示例。具体地,图26a-图26b中表格的最左列示出了项的第一列表的示例,这些项是动作标识符。动作标识符的示例是点击动作、填写动作、键入动作、按压按键动作、悬停动作、下拉列表选择动作、复选框选中动作、复选框取消选中动作、刷新动作、导航动作、新建标签页动作、关闭标签页动作、滚动动作、拖放动作以及点击并保持动作。图26a-图26b中表格的中间列描述了由产品测试设备针对相应动作标识符执行的动作。表格的最右列提供了一些关于使用相应动作标识符的信息。例如,对于“点击”动作标识符,指示这种动作标识符的使用将需要用户界面元素(例如,按钮、图标、标签页等)的标识,使得当产品测试设备处理这种命令时,产品测试设备将知道点击什么元素。要由产品测试设备对其执行动作的用户界面元素不限于上述示例。图26c图示了可以由用户界面2500提供以由用户选择或输入的对象标识符的示例。具体地,图26c中表格的最左列示出了项的第二列表的示例,这些项是用于标识诸如用户界面元素之类的对象的对象标识符。对象标识符的示例是针对按钮、字段、下拉列表菜单、下拉列表选项、链接、图标、复选框、标题、窗口、文本、模态和其他用户界面元素。
[0346]
在一些实施例中,由用户使用用户界面2500输入的产品测试指令可以以至少两种不同的格式选择性地被显示。例如,在一些实施例中,测试指令生成器2402可以包括控件,用于允许用户在以简明语言查看产品测试指令或以编程格式查看产品测试指令之间进行选择。图27a-图27b图示了用户界面2500,允许用户在以简明语言查看产品测试指令与以编程格式查看产品测试指令之间进行切换。用户界面2500包括控件2602,控件2602可以由用户选择性地操纵,以规定以简明语言或以编程格式查看产品测试指令。在所示的示例中,控件2602是按钮。当选择按钮时(例如,通过将指针放在按钮上方并点击鼠标按钮或触摸板),用户界面2500切换产品测试指令的显示格式。如图27a所示,用户界面2500正以编程格式显示产品测试指令。当用户操纵控件2602时,用户界面2500然后以如图27b所示的简明语言显示产品测试指令。如果用户再次操纵控件2602,则用户界面2500将产品测试指令的显示切换回如图27a所示的编程格式。在一些实施例中,系统10包括转换器(translator),该转换器被配置为将编程格式的产品测试指令转换成简明语言的产品测试指令。在所示的示例中,简明语言是英语。在其他实施例中,简明语言可以是汉语、日语、韩语、西班牙语、意大利语、法语、德语等。在一个实施方式中,转换器被配置为标识动作标识符和对象标识符,并且基于动作标识符和对象标识符以简明语言创建一个或多个句子。例如,如果转换器标识动作标识符“导航”和对象标识符“www.google.com”,那么转换器可以创建句子“在当前标签页中跳转到www.google.com”。此外,在一些实施例中,可以建立规则来将动作标识符与相应句子片段关联起来。在这种情况下,每当标识出动作标识符时,转换器就使用对应的规则来确定与动作标识符相对应的句子片段。例如,规则可以将动作标识符“导航”与句子片段“跳转到当前标签页中的____”关联起来。此外,每个动作标识符可以具有对应的对象标识符。在上述示例中,动作标识符“导航”具有对应的对象标识符www.google.com,该对象标志符是动作标志符所指向的目标对象。相应地,转换器可以被配置为标识这种对应关系,并且基于这种对应关系来组合句子。按照上述示例,由于转换器标识出动作标识符“导航”,所以转换器还标识与这种动作标识符相对应的对象标识符“www.google.com”,并且使用对象标
识符来组装句子。具体地,转换器将对象标识符“www.google.com”放在上述句子片段“跳转到当前标签页中的____”中,以形成完整的句子“跳转到当前标签页中的www.google.com”。
[0347]
在一些实施例中,可以向一个或多个人类测试者14提供简明语言的产品测试指令,以指示(多个)人类测试者14对产品执行产品测试。可替代地或附加地,可以由产品测试设备的处理单元解释并执行编程格式的产品测试指令,以执行产品的测试。
[0348]
应当注意,由测试指令生成器2402提供的用户界面2500不限于上述示例,并且在其他实施例中,用户界面2500可以具有其他配置。例如,在其他实施例中,代替提供动作标识符列表和对象标识符列表作为可选择对象,用户界面2500可以提供用于允许用户使用动作标识符和对象标识符(例如,通过键入它们)来写入命令的区域。此外,在一些实施例中,用户可以以简明语言编写产品测试指令(如图27b所示),并且系统10可以包括解释器,该解释器被配置为解释简明语言并将简明语言转换为编程语言,反之亦然。
[0349]
在使用用户界面2500已经创建产品测试指令之后,产品测试指令然后被保存在编程测试指令数据库2404中的电子文件中。在一些实施例中,每个电子文件包括用于测试产品的特征的产品测试指令。在其他实施例中,每个电子文件可以包括用于测试产品的多个特征的产品测试指令。存储在数据库2404中的测试指令是编程测试指令,这意味着它是使用诸如本文描述的动作标识符和对象标识符的预定义字(例如,命令)被创建的。这些预定义字共同形成了一种对于产品测试来说独特且具体的新编程语言。
[0350]
在所示的实施例中,数据库2404中的电子文件可以由产品测试设备1540取回,产品测试设备1540执行电子文件中的编程测试指令以执行产品的产品测试。在所示的实施例中,产品测试设备1540被配置为理解并解释电子文件中的编程测试指令。具体地,产品测试设备1540包括处理单元,该处理单元被配置(例如,设计、构建和/或编程)为对于产品测试来说独特且特定的预定字,诸如动作标识符和对象标识符。如上述示例所示,因为是以遵循在与产品交互时人的动作的流程序列的方式构造编程测试指令,所以当产品测试设备1540基于编程测试指令对产品执行自动化产品测试时,产品测试设备1540模拟人的动作的流程序列来与产品交互。
[0351]
图28a-图28b图示了电子产品测试系统10基于产品测试设备1540执行的产品测试而提供的输出2800的示例。如图28a所示,电子产品测试系统10的输出2800可以包括已经对产品执行的所有产品测试的列表。对于执行的每个产品测试,输出2800可以包括结果标识符2802,结果标识符2802指示测试是通过还是失败。结果标识符2802可以是彩色编码的(例如,用红色指示测试失败,并且用绿色指示测试通过,等等)。用户可以点击图28a所示的任何测试结果,并且系统10将显示关于所选择的测试结果的附加信息,如图28b所示。在所示的示例中,用户已选择特定测试的测试结果中的一个。相应地,由电子产品测试系统10提供的输出2800包括针对所选择的测试的视频2810(图28b)。视频2810显示图像序列,该图像序列指示在产品测试设备1540对产品执行由编程产品测试指令规定的各种任务时,产品测试设备1540与被测试产品之间的交互。例如,如果任务要求产品测试设备1540导航到www.google.com,则视频2810将示出产品测试设备1540打开浏览器、在url字段中键入“www.google.com”并且导航到该web站点。类似地,如果任务要求产品测试设备1540在谷歌搜索栏中搜索“rainforest”,则视频2810将示出产品测试设备1540在谷歌搜索栏中键入“rainforest”、操作指针移动到谷歌搜索按钮并且点击谷歌搜索按钮。视频2810中的特征
将对应于由产品测试指令分配的任务序列。视频2810可以包括带有标记2814的时间栏2812,标记2814指示某些事件所发生的位置。借助于非限制性示例,由标记2814指示的事件可以是任务的失败、任务的开始或任务的结束。如图所示,输出2800还包括编程格式的产品测试指令2816,示出了特定任务中涉及的动作和对象。
[0352]
在一些实施例中,系统10可以包括跟踪器(其可以被实现为跟踪器1300),该跟踪器被配置为跟踪产品测试设备1540与产品的交互。借助于非限制性示例,跟踪器可以被配置为跟踪由产品测试设备1540操作的光标的移动,跟踪由产品测试设备1540对用户界面元素的选择(例如,对标签页的选择、对按钮的选择、对图标的选择、对文本的选择或前述的任意组合),跟踪由产品测试设备1540输入的文本,等等。被跟踪的产品测试设备1540与产品的交互可以以允许被跟踪的交互在视频(如图28b中所示的视频2810)中被回放的数据结构或格式存储在非暂时性介质中。
[0353]
在上述实施例中,测试指令生成器2402被描述为系统10的一部分,该系统10还提供由(多个)人类测试者14执行的产品测试。在其他实施例中,测试指令生成器2402和/或编程测试指令数据库2404可以是不提供任何由(多个)人类测试者14执行的产品测试的产品测试系统10的一部分。这种系统10的一个示例如图29所示。系统10包括测试指令生成器2402和编程测试指令数据库2404。系统10还包括产品测试机(设备)1540、用户界面生成器1350和测试结果取回模块1500。在一些情况下,用户界面生成器1350可以被认为是测试指令生成器2404的一部分。在使用期间,用户界面生成器1350提供用户界面(例如,先前描述的用户界面2500),用于允许(多个)用户创建测试指令。测试指令是结构的,因为它是基于动作标识符和对象标识符被创建的,动作标识符和对象标识符是由测试指令生成器2402提供的和/或可由测试指令生成器2402和产品测试设备1540基于关于如何解释和处理动作标识符和对象标识符的预定义规则来理解的。测试指令被存储在编程测试指令数据库2404中的电子文件中。产品测试设备1540被配置为执行电子文件以执行产品的产品测试。测试结果取回模块1500被配置为取回测试结果以呈现给用户。
[0354]
如上述实施例和示例所示,测试指令生成器2402和产品测试设备1540是有利的,因为它们允许直观且方便地实现自动化产品测试。本文描述的独特的产品测试编程语言允许不同的用户高效地创建产品测试指令,从而节省大量的时间和资源。本文描述的产品测试编程语言也消除了用户编写脚本或编写复杂编码语言的需要。此外,由测试指令生成器提供的独特的产品测试编程语言允许不同的用户基于共同的规则集单独地和分开地创建产品测试指令,使得无论谁创建产品测试指令,产品测试设备1540都将理解产品测试指令。在使用测试指令生成器2402创建了产品测试指令之后,产品测试指令可以被执行一次或多次以在不使用人类测试者的情况下测试产品。也可以重复执行产品测试指令,以测试产品的不同版本。相应地,测试指令生成器2402和产品测试设备1540产生了在物理世界中产生差异的真实且具体的效用。
[0355]
图30图示了由电子产品测试系统执行的方法2900。方法2900包括:由测试指令生成器提供用户界面,用于生成电子文件,,该电子文件包含产品测试指令(项2902);以及由产品测试设备的处理单元执行电子文件,以基于电子文件中的产品测试指令来执行产品的测试(项2904)。在所示的实施例中,通过基于电子文件中的产品测试指令模拟人的动作来执行产品测试。
[0356]
可选地,在方法2900中,产品的测试包括由处理单元在没有来自光标控件的输入的情况下移动光标。
[0357]
可选地,在方法2900中,产品的测试包括由处理单元在没有来自光标控件的输入的情况下进行对象的选择。
[0358]
可选地,在方法2900中,产品的测试包括由处理单元在没有来自键盘的输入的情况下在字段中键入文本。
[0359]
可选地,方法2900还包括解释电子文件中的产品测试指令。
[0360]
可选地,方法2900还包括由脚本生成器基于电子文件中的产品测试指令生成脚本。
[0361]
可选地,在方法2900中,产品的测试包括由处理单元运行脚本以测试产品。
[0362]
可选地,在方法2900中,用户界面包括图形用户界面,并且该方法还包括提供用于用户选择的第一项集合和第二项集合,其中第一项集合包括多个动作标识符,并且第二项集合包括多个对象。
[0363]
可选地,在方法2900中,动作标识符中的一个动作标识符标识要由产品测试设备执行的动作,并且对象标识符中的一个对象标识符标识要由产品测试设备对其执行动作的对象。
[0364]
可选地,在方法2900中,动作标识符中的一个动作标识符标识点击动作、填写动作、键入动作、按压按键动作、悬停动作、下拉列表选择动作、复选框选中动作、复选框取消选中动作、刷新动作、导航动作、新建标签页动作、关闭标签页动作、滚动动作、拖放动作或点击并保持动作。
[0365]
可选地,在方法2900中,对象标识符中的一个对象标识符标识按钮、字段、下拉列表菜单、下拉列表选项、链接、图标、复选框、标题、窗口、文本、模态或用户界面元素。
[0366]
可选地,在方法2900中,电子文件中的产品测试指令具有将动作标识符与对应的对象标识符关联起来的数据结构。
[0367]
可选地,在方法2900中,动作标识符标识要由产品测试设备执行的动作,并且对象标识符标识要由产品测试设备对其执行动作的对象。
[0368]
可选地,在方法2900中,动作标识符标识点击动作、填写动作、键入动作、按压按键动作、悬停动作、下拉列表选择动作、复选框选中动作、复选框取消选中动作、刷新动作、导航动作、新建标签页动作、关闭标签页动作、滚动动作、拖放动作或点击并保持动作。
[0369]
可选地,在方法2900中,对象标识符标识按钮、字段、下拉列表菜单、下拉列表选项、链接、图标、复选框、标题、窗口、文本、模态或用户界面元素。
[0370]
可选地,方法2900还包括将电子文件与产品的身份相关联地存储在非暂时性介质中。
[0371]
可选地,方法2900还包括由产品测试设备在处理单元执行测试动作之后,检查元素是否可见。
[0372]
可选地,方法2900还包括由产品测试设备在处理单元执行测试动作之后,检查元素是否不可见。
[0373]
可选地,方法2900还包括由产品测试设备在处理单元执行测试动作之后,检查指定页面是否已被加载。
[0374]
可选地,在方法2900中,产品的测试包括基于电子文件中的产品测试指令来测试产品的多个特征。
[0375]
可选地,在方法2900中,产品的测试包括基于电子文件中的产品测试指令来测试产品的第一特征。
[0376]
可选地,方法2900还包括基于另一个电子文件中的产品测试指令来测试产品的第二特征。
[0377]
可选地,在方法2900中,测试指令生成器包括控件,用于允许用户在以简明语言查看产品测试指令或以编程格式查看产品测试指令之间进行选择。
[0378]
可选地,方法2900还包括:获得与产品的测试相关联的第一图像,以及获得第二图像。
[0379]
可选地,在方法2900中,第一图像基于在产品的测试期间执行的第一任务的完成。
[0380]
可选地,在方法2900中,第一图像包括产品的第一内容,第一内容指示用于测试产品的第一任务的第一结果。
[0381]
可选地,方法2900还包括:将掩模施加到第一图像以创建第一掩模图像;将掩模施加到第二图像以创建第二掩模图像;以及将第一掩模图像与第二掩模图像进行比较。
[0382]
可选地,在方法2900中,掩模被配置为遮挡第一图像的一个或多个部分。
[0383]
可选地,方法2900还包括由评估器基于第一掩模图像与第二掩模图像的比较来确定测试是否失败。
[0384]
可选地,方法2900还包括由图像捕获器通过将图像帧序列与第一图像进行比较并且选择与图像帧中的、与第一图像匹配的一个图像帧作为第二图像来确定第二图像。
[0385]
可选地,方法2900还包括由跟踪器跟踪产品测试设备与产品的交互。
[0386]
可选地,方法2900还包括由跟踪器跟踪由产品测试设备操作的光标的移动。
[0387]
可选地,方法2900还包括由跟踪器跟踪产品测试设备对标签页的选择、对按钮的选择、对图标的选择、对文本的选择或前述的任意组合。
[0388]
可选地,方法2900还包括由跟踪器跟踪由产品测试设备输入的文本。
[0389]
可选地,在方法2900中,产品包括web页面、web站点、计算机应用、移动设备应用或处理器应用。
[0390]
可选地,在方法2900中,产品的测试包括产品的基于机器的测试。
[0391]
在一些实施例中,可以响应于处理单元处理存储在处理器可读介质中的指令集来执行方法2900。具体地,处理器可读介质包括指令集,其中处理单元对指令的执行将使一种方法被执行,该方法包括:由测试指令生成器提供用户界面,用于生成电子文件,该电子文件包含产品测试指令;以及由产品测试设备的处理单元执行电子文件,以基于电子文件中的产品测试指令来执行产品的测试;其中,产品的测试通过基于电子文件中的产品测试指令模拟人的动作被执行。
[0392]
专用处理系统
[0393]
图31是图示了可以用于实现本文描述的各种实施例或特征的专用处理系统3100的实施例的框图。例如,处理系统3100可以用于实施图1a和图1b的系统10、图11和图12的系统10、图24的系统10、图29的系统10或其任何组件。作为另一示例,处理系统3100可以是产品测试者正在使用的设备的示例。此外,在一些实施例中,处理系统3100可以用于实现跟踪
器1300、取回模块1530、产品测试机1540、图像捕获器1550、派遣模块1560、前述任何一个的组件或前述的任意组合。此外,在一些实施例中,处理系统3100可以被认为是处理单元,该处理单元是跟踪器1300的一部分、取回模块1530的一部分、产品测试机1540的一部分、图像捕获器1550的一部分、派遣模块1560的一部分或前述的任意组合。此外,在一些实施例中,处理系统3100可以被配置为实现装置1950、装置2000、装置2200或前述的任意组合。在其他实施例中,处理系统3100可以被配置为实现测试指令生成器2402和/或产品测试设备1540。
[0394]
处理系统3100包括用于传送信息的总线3102或其他通信机制,以及与总线3102耦合以处理信息的处理器3104。处理器系统3100还包括主存储器3106(诸如随机存取存储器或其他动态存储设备),主存储器3106耦合到总线3102用于存储信息以及要由处理器3104执行的指令。主存储器3106还可以用于在由处理器3104执行指令期间存储临时变量或其他中间信息。处理器系统3100还包括耦合到总线3102、用于存储处理器3104的静态信息和指令的只读存储器(rom)3108或其他静态存储设备。提供数据存储设备3110(诸如磁盘或光盘)并将其耦合到总线3102以存储信息和指令。
[0395]
处理器系统3100可以经由总线3102耦合到显示器3112(诸如平板或阴极射线管(crt))以向用户显示信息。输入设备3114(包括字母数字按键和其他按键)耦合到总线3102以向处理器3104传送信息和命令选择。另一种类型的用户输入设备是光标控件3116(诸如鼠标、轨迹球或光标方向键),用于向处理器3104传送方向信息和命令选择,并用于控制显示器3112上的光标移动。该输入设备通常在两个轴(第一轴(例如,x)和第二轴(例如,y))上具有两个自由度,这允许设备指定平面中的位置。
[0396]
在一些实施例中,处理器系统3100可以用于执行本文描述的各种功能。根据一些实施例,由处理器系统3100响应于处理器3104执行包含在主存储器3106中的一个或多个指令的一个或多个序列来提供这种使用。本领域技术人员将知道如何基于本文描述的功能和方法来准备这种指令。这种指令可以从另一处理器可读介质(诸如存储设备3110)读取到主存储器3106中。主存储器3106中包含的指令序列的执行使得处理器3104执行本文描述的处理步骤。多处理布置中的一个或多个处理器也可以用来执行包含在主存储器3106中的指令序列。在替代实施例中,可以使用硬连线电路系统来代替软件指令或者与软件指令相结合,以实施本文描述的各种实施例。因此,实施例不限于硬件电路系统和软件的任意特定组合。
[0397]
本文使用的术语“处理器可读介质”是指参与向处理器3104提供指令以供执行的任何介质。这种介质可以采取许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘或磁盘,诸如存储设备3110。非易失性介质可以被认为是非暂时性介质的一个示例。易失性介质包括动态存储器,诸如主存储器3106。易失性介质可以被认为是非暂时性介质的一个示例。传输介质包括同轴电缆、铜线和光纤,包括构成总线3102的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波数据通信和红外数据通信期间生成的声波或光波。
[0398]
处理器可读介质的常见形式包括,例如,软盘、软磁盘、硬盘、磁带或任何其他磁介质、cd-rom、任何其他光学介质、穿孔卡、纸带、任何其他具有孔图案的物理介质、ram、prom和eprom、flash-eprom、任何其他存储器芯片或盒式磁带、下文描述的载波或者处理器可以读取的任何其他介质。
[0399]
在将一个或多个指令的一个或多个序列传送到处理器3104以用于执行时,可以涉
及各种形式的处理器可读介质。例如,指令最初可以被携带在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中,并且使用调制解调器通过电话线发送指令。处理系统3100的本地调制解调器可以接收电话线上的数据,并且使用红外发射器将数据转换成红外信号。耦合到总线3102的红外检测器可以接收红外信号中携带的数据,并且将该数据放置在总线3102上。总线3102将数据传送到主存储器3106,处理器3104从主存储器3106取回并执行指令。由主存储器3106接收的指令可以可选地在处理器3104执行之前或之后存储在存储设备3110上。
[0400]
处理系统3100还包括耦合到总线3102的通信接口3118。通信接口3118提供耦合到网络链路3120的双向数据通信,网络链路3120连接到本地网络3122。例如,通信接口3118可以是综合服务数字网(isdn)卡或调制解调器,以提供到对应类型的电话线的数据通信连接。作为另一示例,通信接口3118可以是局域网(lan)卡,用以提供到兼容lan的数据通信连接。还可以实现无线链路。在任何这种实施方式中,通信接口3118发送和接收携带表示各种类型信息的数据流的电信号、电磁信号或光信号。
[0401]
网络链路3120通常通过一个或多个网络向其他设备提供数据通信。例如,网络链路3120可以通过本地网络3122提供到主机计算机3124或装备3126(诸如辐射束源或可操作地耦合到辐射束源的开关)的连接。通过网络链路3120运送的数据流可以包括电信号、电磁信号或光信号。通过各种网络的信号以及网络链路3120上的和通过通信接口3118的信号是运送信息的载波的示例性形式,这些信号携带去往和来自处理系统3100的数据。处理系统3100可以通过(多个)网络、网络链路3120和通信接口3118发送消息和接收数据(包括程序代码)。
[0402]
应当注意,如在本说明书中所使用的,术语“图像”不限于显示的图像,还可以包括未显示的图像,诸如存储在非暂时性介质中的图像数据。类似地,如在本说明书中所使用的,术语“视频”不限于显示的视频,还可以包括未显示的视频,诸如存储在非暂时性介质中的视频数据。
[0403]
此外,在本说明书中使用的术语“第一”、“第二”、“第三”等不一定指项的次序。相反,这些术语可以用来区分彼此不同的项。例如,“第一产品测试者”并不一定意味着该产品测试者在次序上是第一个。此外,“第二产品测试者”并不一定意味着该产品测试者在次序上是第二个。相反,这些术语用于标识两个不同的产品测试者。
[0404]
此外,如在本说明书中所使用的,术语“机器”(如在术语“产品测试机”中)可以指被配置为执行一个或多个期望功能的设备、组件、系统、应用、软件、虚拟机、或者任何形式的处理单元或模块。在一些实施例中,机器可以包括至少一些硬件。类似地,如在本说明书中所使用的,术语“设备”可以指被配置为执行一个或多个期望功能的物理设备、组件、系统、应用、软件、虚拟机、或者任何形式的处理单元或模块。在一些实施例中,设备可以包括至少一些硬件。
[0405]
此外,如在本说明书中所使用的,术语“处理单元”可以指硬件、软件或其组合。此外,术语“处理单元”可以指一个或多个处理器、一个或多个软件或应用、一个或多个计算系统或其组件、一个或多个虚拟机或其组件等。在一个实施方式中,处理单元可以包括至少一些硬件。
[0406]
尽管已经示出和描述了特定的实施例,但是应当理解,它们并不旨在限制本发明,
并且对于本领域的技术人员来说显而易见的是,在不脱离本发明的精神和范围的情况下,可以进行各种改变和修改。相应地,说明书和附图被认为是说明性的,而不是限制性的。本发明旨在覆盖可包括在由权利要求限定的本发明的精神和范围内的替代、修改和等同物。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1