创建容错和自适应图形用户接口测试自动化的方法和系统的制作方法

文档序号:6609571阅读:172来源:国知局
专利名称:创建容错和自适应图形用户接口测试自动化的方法和系统的制作方法
技术领域
本发明一般地涉及计算机和包括硬件、软件和处理的其他数据处理系统的领域。更具体地说,本发明涉及容错和自适应图形用户接口(GUI)测试自动化。
背景技术
随着软件开发人员不断引入新的和更复杂的应用,基础程序代码的复杂性也相应增加。这种复杂性通常扩展到应用的图形用户接口(GUI),导致在作为质量保证(QA)过程的一部分开发有意义的软件测试过程时出现额外且有时出乎意外之外的难题。应用的GUI的手动测试可以是劳动密集的、易出错的和昂贵的,这导致开发自动化的GUI测试解决方案。虽然GUI测试自动化的目标是消除对手动测试的需要,但是它目前仍用作人工测试者的助手。
使GUI测试过程自动化的现有技术方法一般包括手动GUI测试交互的“记录和重放”或为每个应用编写自动化的测试过程。记录和重放方法可能是不可靠的,因为很可能没有捕获和记录所有可能的用户手势和GUI交互以便后来的重放。开发定制编写的自动化的GUI测试带来了其他难题,因为开发自动化的测试通常比手动测试GUI要花更长的时间。此外,GUI测试需要调试自身,并且不能保证定制编写的自动化的GUI测试提供对所有可能测试用例的更好覆盖。类似地,得到的测试自动化代码可能易受被测试应用的后续更改的影响,这可能导致不可靠的测试和质量保证结果。
其他现有技术方法包括使用GUI结构的分层模型来创建测试用例。测试用例通常用作人工测试者的指示或指导。自动化的测试旨在自动定位和测试软件应用的功能而无需人工协助。还存在使测试GUI软件自动化的现有技术方法,该方法映射GUI窗口中的对象和按钮并随后随机地单击按钮并输入文本直至应用出现故障。这些方法记录导致应用出现故障的操作,重新启动应用并重复该过程,排除任何此前导致应用出现故障的操作。但是,这些方法通常基于随机操作,并且可能不完全与典型的用户行为相关。鉴于上述内容,需要软件应用GUI的改进的测试自动化。

发明内容
本发明包括,但不限于,改进的自动化的测试软件应用的图形用户接口(GUI)的方法、装置和计算机可用介质。在本发明的实施例中,实现记录代理以捕获一个或多个人工软件测试者的GUI交互。所述测试者然后制定多个预定测试用例或过程,它们具有与先决条件相比的已知输入和与得到的后置条件相比的预期输出,以测试应用的GUI的预期操作。记录每个测试会话的输入、先决条件、交互、输出和后置条件并将它们编辑成聚集测试过程的草案,然后对其分析以标识每个试运行的公共故障点和异常。
将得到的聚集测试过程草案进行手动修改并将其配置成纠正和/或协调标识的异常,以创建随后在自动化测试环境中实现的最终测试过程。得到的自动化测试过程的可靠性随执行的试运行数的增加而增加,这对本领域的技术人员是显而易见的。同样显而易见的是,本发明同时包含“记录和重放”及定制编写的自动化测试过程的优点,同时减轻了它们相应的不足。
本发明的测试系统的各种实施例随着人工测试者的数量和种类的增加会变得逐渐地容错。此外,本发明无需开发定制的测试过程,也不依赖于GUI应用的随机操作。相反,收集试运行期间在测试用例或过程之后来自用户的数据并将它们相互关联,以生成可以以自适应和容错的方式定位和测试软件应用的GUI的自动化的测试过程。此外,得到的软件GUI试运行是可靠的、可记录的和可审计的,由此提供了一致性验证通常所需的可检验的文档编制。本发明的上述以及其他目的、特征和优点将在以下详细的书面说明中变得显而易见。


在所附权利要求中说明了被认为是本发明特性的新颖特征。但是,当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解发明本身及其优选使用方式、进一步的目的和优点,这些附图是图1示出了其中可以实现本发明的示例性客户机;图2示出了为了图4中示出的客户机的用户的利益而可以从其部署和/或实现用于执行本发明的软件的示例性服务器;图3是根据本发明的实施例实现的容错和自适应的自动化图形用户接口(GUI)测试系统的通用流程图;图4是根据本发明的实施例实现的容错和自适应的自动化GUI测试系统的通用方块图;图5是根据本发明的实施例实现的修改后的聚集测试过程的概括图示;图6a-b示出了部署能够执行图3中示出和说明的步骤的软件而采取的步骤的流程图;图7a-c示出了在虚拟专用网络(VPN)中部署能够执行在图3中示出和说明的步骤的软件而采取的步骤的流程图;图8a-b是示出了将能够执行在图3中示出和说明的步骤的软件集成到计算机系统中而采取的步骤的流程图;以及图9a-b是示出了使用按需服务提供商执行图3中示出和说明的步骤而采取的步骤的流程图。
具体实施例方式
现在参考附图,具体地说参考图3,其中示出了通过实现记录代理来进行改进的和自动的测试软件应用的图形用户接口(GUI)的方法、装置和计算机可用介质,该代理允许捕获一个或多个人工软件测试者的图形用户接口交互并将其结合到自动化的图形用户接口测试系统中。
现在参考图1,图1示出了其中可以使用本发明的示例性客户机102的方块图。客户机102包括连接到系统总线106的处理器单元104。驱动/支持显示器110的视频适配器108也连接到系统总线106。系统总线106通过总线桥112连接到输入/输出(I/O)总线114。I/O接口116连接到I/O总线114。I/O接口116提供与各种I/O设备(包括键盘118、鼠标120、光盘-只读存储器(CD-ROM)驱动器122、软盘驱动器124和闪存126)的通信。连接到I/O接口416的端口的格式可以是计算机体系结构领域中的技术人员公知的任何格式,包括但不限于通用串行总线(USB)端口。
客户机102可以使用网络接口130(其连接到系统总线106)通过网络128与服务提供商服务器202通信。网络128可以是外部网络,例如因特网,或内部网络,例如以太网或虚拟专用网络(VPN)。通过使用网络128,客户机102可以使用本发明来访问服务提供商服务器202。
硬盘驱动器接口132也连接到系统总线106。硬盘驱动器接口132和硬盘驱动器134连接。在优选实施例中,硬盘驱动器134填充也连接到系统总线106的系统存储器136。填充系统存储器136的数据包括客户机102的操作系统(OS)138和应用程序144。
操作系统138包括外壳(shell)140,用于提供对资源(例如,应用程序144)的透明的用户访问。一般地说,外壳140是提供解释器和用户与操作系统之间的接口的程序。更具体地说,外壳140执行输入命令行用户接口或来自文件的命令。因此,外壳140(在UNIX中的名称),在Windows中也称为命令处理器,通常是操作系统软件分层结构的最高级别并充当命令解释器。外壳提供系统提示,解释由键盘、鼠标或其他用户输入介质输入的命令,并将一个或多个解释后的命令发送到操作系统的适当较低级别(例如,内核142)以供处理。注意,虽然外壳140是基于文本的面向行的用户接口,但是本发明将同样地支持其他用户接口模式,例如,图形、语音、手势等。
如图所示,操作系统138还包括内核142,后者包括操作系统138的较低级别的功能,其中包括提供操作系统138的其他部分和应用程序144所需的基本服务,包括存储器管理、进程和任务管理、盘管理,以及鼠标和键盘管理。
应用程序144包括浏览器146。浏览器146包括使得万维网(WWW)客户端(即,客户机102)能够使用超文本传输协议(HTTP)消息传送来向因特网发送和从因特网接收消息的程序模块和指令,由此使能与服务提供商服务器202的通信。
客户机102的系统存储器中的应用程序144还包括自动化的图形用户接口(GUI)测试系统148。自动化的GUI测试系统148包括用于实现图3中说明的过程的代码。在一个实施例中,客户机102可以从服务提供商服务器202下载自动化的GUI测试系统148。
客户机102中示出的硬件元件并非旨在是穷举的,而是代表本发明所需的重要基本组件。例如,客户机102可以包括备选存储设备,例如,磁带、数字多功能盘(DVD)、Bernoulli盒式磁带等。这些和其他变型都旨在处于本发明的精神和范围之内。
如上所述,可以从服务提供商服务器202将自动化的GUI测试系统148下载到客户机102,如图2中的示例性形式所示。服务提供商服务器202包括连接到系统总线206的处理器单元204。视频适配器208也连接到系统总线206。视频适配器208驱动/支持显示器210。系统总线206通过总线桥212连接到输入/输出(I/O)总线214。I/O接口216连接到I/O总线214。I/O接口216提供与各种I/O设备(包括键盘218、鼠标220、光盘-只读存储器(CD-ROM)驱动器222、软盘驱动器224和闪存226)的通信。连接到I/O接口216的端口的格式可以是计算机体系结构领域中的技术人员公知的任何格式,包括但不限于通用串行总线(USB)端口。
服务提供商服务器202可以使用网络接口230(其连接到系统总线206)通过网络128与客户机102通信。对网络128的访问允许服务提供商服务器202执行和/或下载自动化的GUI测试系统148到客户机102。
系统总线206还连接到硬盘驱动器接口232,后者和硬盘驱动器234相连。在优选实施例中,硬盘驱动器234填充系统存储器236,后者也连接到系统总线206。填充系统存储器236的数据包括服务提供商服务器202的操作系统238,后者包括外壳240和内核242。外壳240结合到较高级别的操作系统层中并用于提供对资源(例如,包括浏览器246的应用程序244和上述可以部署到客户机102的自动化GUI测试系统148的副本)的透明的用户访问。
服务提供商服务器202中示出的硬件元件并非旨在是穷举的,而是代表本发明所需的重要基本组件。例如,服务提供商服务器202可以包括备选存储设备,例如闪速驱动器、磁带、数字多功能盘(DVD)、Bernoulli盒式磁带等。这些和其他变型都在本发明的精神和范围内。
还要注意的是,在本发明的优选实施例中,服务提供商服务器202执行所有与本发明关联的功能(包括执行自动化的GUI测试系统148),由此使得客户机102免于使用其资源。
应当理解,本发明的至少某些方面可以备选地以包含程序产品的计算机可用介质来实现。定义本发明的功能的程序可以通过各种信号承载介质被传送到数据存储系统或计算机系统,所述信号承载介质包括但不限于,不可写存储介质(例如,CD-ROM),可写存储介质(例如,硬盘驱动器、读/写CD ROM、光介质),系统存储器(诸如但不限于随机存取存储器(RAM))以及通信介质,如包括以太网、因特网、无线网络和类似网络系统的计算机和电话网络。因此应当理解,当承载或编码有管理本发明中的方法功能的计算机可读指令时,此类信号承载介质代表本发明的备选实施例。另外,可以理解,本发明可以由具有形式为硬件、软件或如此处描述的软件和硬件的组合或其等效物的装置的系统来实现。
图3是根据本发明的实施例实现的容错和自适应的自动化图形用户接口(GUI)测试系统148的通用流程图。在步骤302,测试软件应用的GUI开始。在步骤304,选择由人工测试者要在测试期间实现的预定测试用例和过程。在步骤306,选择人工测试者来实施测试,并在其计算机上实现记录代理。
由制定预定测试用例或过程的测试者在步骤308实施试运行,在此期间,将已知输入与先决条件相比较,将预期输出与得到的后置条件相比较,以测试主体应用的GUI的预期操作。一旦GUI测试在步骤308失败或完成,则将试运行的记录的输入、先决条件、交互、输出和后置条件添加到步骤312中的先前试运行的结果,然后使用试运行结果的得到的汇集在步骤310创建聚集的测试过程的草案。然后分析该聚集的测试过程草案以标识两个或更多试运行共同的故障点以及个别试运行的操作异常和不一致,然后在步骤314对它们进行手动修改、协调和/或配置。
例如,在本发明的实施例中,将单个试运行解构为各个级别的粒度(例如,测试中的步骤、步骤中的任务、任务中的命令等)并比较在试运行期间出现的共同的操作、差异、意外操作或异常。在本发明的另一个实施例中,使用基于规则的决策引擎产生操作的一组草案,其中规则考虑包括,但不限于,人工测试者的相应特性(例如,初学者、专家等),以及试运行中任务的频率和共性。在本发明的再一个实施例中,在“diff”实用程序中显示不具有共性的分析的结果,以便测试管理员可以手动选择聚集的测试过程草案的个别元素的适当操作(例如,添加、删除、修改、配置等)。同样,虽然试运行结果之间的共性通常可以被信任为是可靠的并且无需管理员注意,但是仍保留对聚集的测试过程草案进行修改的能力。可以类似地检查、编辑和/或结合不同试运行中的备选测试路径和个别测试者对异常的反应,以便用作备选测试操作。
然后在步骤316,从在步骤314中创建的修改、协调和配置后的测试过程草案来创建自动化的测试过程,以便在自动化的测试环境中实现。在步骤318,在步骤316创建的自动化测试过程的自动化重放实施在步骤308手动实施的同一预定测试用例或过程,在此期间,将已知输入与先决条件相比较,将预期输出与得到的后置条件相比较,以测试主体应用的GUI的预期操作。一旦GUI测试在步骤318失败或完成,则将试运行的记录的输入、先决条件、交互、输出和后置条件添加到步骤312中的先前试运行的结果。
如果在步骤320决定执行其他试运行,则在步骤322决定是否修改当前的测试用例和/或过程。如果在步骤322决定修改当前的测试用例和/或过程,则在步骤324对它们进行修改并在步骤326决定是否由不同的人工测试者来运行测试。如果在步骤326决定由不同的人工测试者来运行测试,则在步骤306选择人工测试者,并且试运行如上文更详细描述的那样继续。否则,当前的人工测试者在步骤308实施预定的测试用例或过程,并如上文更详细描述的那样继续试运行。如果在步骤322决定使用当前的测试用例和/或过程继续,则在步骤326决定是否由不同的人工测试者运行测试。如果在步骤326决定由不同的人工测试者运行测试,则在步骤306选择人工测试者,并且试运行如上文更详细描述的那样继续。否则,当前的人工测试者在步骤308实施预定的测试用例或过程,并且试运行如上文更详细描述的那样继续。
如果在步骤320决定不执行其他试运行,则在步骤328报告软件错误列表和其他问题并且GUI测试在步骤330结束。对本领域的技术人员将显而易见的是,本发明的不同实施例随着人工测试者的数量和种类的增加会变得逐渐地容错和自适应。此外,本发明无需开发定制的测试过程,也不依赖于GUI应用的随机操纵。相反,收集试运行期间在测试用例或过程之后来自用户的数据并将它们相互关联,以生成可以以容错和自适应的方式定位和测试软件应用的GUI的自动化的测试过程。此外,得到的软件GUI试运行是可靠的、可记录的和可审计的,由此提供了一致性验证通常所需的可检验的文档编制。
图4是根据本发明的实施例实现的容错和自适应的自动化GUI测试系统148的通用方块图。容错和自适应的自动化GUI测试系统148包括人工测试者“A”402、“B”406和“C”410的测试计算机、测试服务器414、聚集的试运行结果418、分析和修改的聚集测试过程444、自动化的测试过程446,以及自动化的试运行结果448。测试服务器414包括要测试的主体软件应用GUI 416,聚集的试运行结果418包括复合试运行“1”结果420、复合试运行“2”结果428,以及复合试运行“3”结果436。复合试运行“1”结果420包括来自测试者“A”的试运行“1”结果422、来自测试者“B”的试运行“1”结果424,以及来自测试者“C”的试运行“1”结果426。复合试运行“2”结果428包括来自测试者“A”的试运行“2”结果4 30、来自测试者“B”的试运行“2”结果4 32,以及来自测试者“C”的试运行“2”结果434。复合试运行“3”结果436包括来自测试者“A”的试运行“3”结果438、来自测试者“B”的试运行“3”结果440,以及来自测试者“C”的试运行“3”结果442。
在本发明的其他实施例中,分别在人工测试者“A”402、“B”406和“C”410的测试计算机上实现记录代理404、408、412,并且启动测试软件应用的GUI 416,包括测试服务器414。由人工测试者“A”402、“B”406、“C”410选择并实施预定测试用例和过程,在此期间,将已知输入与先决条件相比较,将预期输出与得到的后置条件相比较,以测试在试运行期间主体软件应用的GUI 416(包括测试服务器414)的预期操作。一旦每个测试者对软件应用的GUI 416的测试在试运行中出现故障或完成,则将由记录代理404、408、412捕获的相应试运行的输入、先决条件、交互、输出和后置条件添加到包括聚集试运行结果418的先前试运行的结果中。
分析聚集试运行结果418以标识两个或更多试运行共同的故障点以及个别试运行的操作异常和不一致,然后如上文更详细说明的那样对它们进行手动修改、协调和/或配置,以创建分析和修改后的聚集测试过程444。从分析和修改后的聚集测试过程444创建自动化的测试过程446并在测试服务器414上实现测试过程446,以自动化地测试主体软件应用的GUI 416,生成自动化的试运行结果448。
在本发明的实施例中,将来自测试者“A”422、测试者“B”424和测试者“C”426的第一试运行的相应结果组合成复合试运行“1”420,然后对其进行分析以标识每个测试者的个别测试结果共同的故障点,以及其个别操作异常和不一致,然后如上文更详细说明的那样对它们进行手动修改、协调和/或配置,以创建分析和修改后的聚集测试过程444。从分析和修改后的聚集测试过程444创建自动化的测试过程446,并在测试服务器414上实现测试过程446,以自动化地测试主体软件应用的GUI 416,生成自动化的试运行结果448,所述结果用作输入以对主体软件应用的GUI 416做出更改。
进行第二试运行,其中将测试者“A”430、测试者“B”432和测试者“C”434的相应结果组合成复合试运行“2”428,然后如上文更详细说明的那样对其进行分析和/或修改,以创建分析和修改后的聚集测试过程444。创建和实现第二容错、自适应的自动化的测试过程446,以自动化地测试主体软件应用的GUI 416,生成自动化的试运行结果448,所述结果用作输入以对主体软件应用的GUI 416做出后续更改。
然后进行第三试运行,其中将测试者“A”438、测试者“B”440和测试者“C”442的相应结果组合成复合试运行“2”436,然后如上文更详细说明的那样对其进行分析和/或修改,以创建分析和修改后的聚集测试过程444。创建和实现第三自动化的测试过程446,以自动化地测试主体软件应用的GUI 416,生成自动化的试运行结果448。对本领域的技术人员显而易见的是,每个实现自动化的测试过程446的相继试运行通过结合先前试运行的结果而逐渐地变得更加容错。
图5是根据本发明的实施例实现的修改后的聚集测试过程444的概括图示。修改后的聚集测试过程444包括复合试运行“1”结果418、复合试运行“2”结果426,以及复合试运行“3”结果434。复合试运行“1”结果418包括由试运行“1”组成的测试步骤、来自试运行“2”的其他测试步骤504,以及来自试运行“3”的其他测试步骤506。复合试运行“2”结果426包括由试运行“2”组成的测试步骤、来自试运行“1”的其他测试步骤502,以及来自试运行“3”的其他测试步骤506。复合试运行“3”结果434包括由试运行“3”组成的测试步骤和来自试运行“2”的其他测试步骤504。
如上文更详细说明的那样,分析和修改后的聚集测试过程444是以下操作的结果标识两个或更多试运行共同的故障点以及个别试运行的操作异常和不一致,然后对它们进行手动修改、协调和/或配置,然后用于创建容错、自适应的自动化测试过程446,测试过程446在测试服务器414上实现,以自动化地测试主体软件应用的GUI 416,生成自动化的试运行结果448。
因此,可以将本文所述并具体在图3中示出和说明的方法部署为从服务提供商服务器202到客户机102的处理软件。
现在参考图6,步骤600开始部署所述处理软件。首先判定在执行所述处理软件时是否有任何程序驻留在一个或多个服务器上(查询块602)。如果是,则标识将包含可执行程序的服务器(块604)。将所述一个或多个服务器的处理软件通过文件传输协议(FTP)或某种其他协议或通过使用共享文件系统复制来直接传输到服务器的存储装置(块606)。然后将处理软件安装在服务器上(块608)。
接着,判定是否通过使用户访问一个或多个服务器上的处理软件来部署处理软件(查询块610)。如果用户要访问服务器上的处理软件,则标识存储所述处理软件的服务器地址(块612)。
判定是否构建代理服务器(查询块614)来存储所述处理软件。代理服务器是位于客户端应用(例如,Web浏览器)与真实服务器之间的服务器。它拦截所有对真实服务器的请求以查看它自身是否可以满足所述请求。如果不能,它就将所述请求转发到真实服务器。代理服务器的两个主要益处是改进性能和过滤请求。如果需要代理服务器,将安装代理服务器(块616)。通过诸如FTP的协议将处理软件发送到服务器,或通过文件共享直接将其从源文件复制到服务器文件(块618)。其他实施例将向包含处理软件的服务器发送事务并使服务器处理事务,然后接收所述处理软件并将其复制到服务器的文件系统。一旦将所述处理软件存储到服务器,用户就可以通过他们的客户机访问服务器上的处理软件并将其复制到他们的客户机文件系统(块620)。其他实施例是使服务器自动将所述处理软件复制到每个客户机,然后在每个客户机处运行所述处理软件的安装程序。用户执行将所述处理软件安装到其客户机的程序(块622),然后退出过程(终止块624)。
在查询步骤626,判定是否通过将处理软件通过电子邮件发送到用户来部署所述处理软件。标识将所述处理软件部署到该处的用户集以及用户客户机的地址(块628)。通过电子邮件将所述处理软件发送到每个用户的客户机(块630)。然后,用户接收电子邮件(块632)并将所述处理软件从电子邮件分离到他们的客户机上的目录(块634)。用户执行将所述处理软件安装到其客户机的程序(块622),然后退出过程(终止块624)。
最后,判定是否将所述处理软件直接发送到他们的客户机上的用户目录(查询块636)。如果是,则标识用户目录(块638)。将所述处理软件直接传输到用户的客户机目录(块640)。这可以通过若干种方式完成,例如,但不限于,共享文件系统目录并从发送方的文件系统复制到接收用户的文件系统或备选地使用诸如文件传输协议(FTP)之类的传输协议。用户访问他们的客户机文件系统上的目录以准备安装所述处理软件(块642)。用户执行将所述处理软件安装到他的客户机的程序(块622),然后退出过程(终止块624)。
可以将本软件作为服务的一部分部署到第三方,其中作为安全部署工具来提供第三方VPN服务或其中按照特定部署的需要来按需建立VPN。
虚拟专用网络(VPN)是可用于通过否则不安全或不被信任的网络来保护连接的技术的任何组合。VPN提高了安全性并降低了运行成本。VPN利用公共网络(通常是因特网)将远程站点或用户连接到一起。VPN不使用专用的真实连接(例如,租用线路),而是使用通过因特网从公司的专用网络路由到远程站点或雇员的“虚拟”连接。通过为了传送或执行处理软件(即,软件位于其他位置)的目的而特别构建VPN,可以作为服务来提供通过VPN访问软件,其中根据支付的金额,VPN的使用期限限于给定的时间周期或给定次数的部署。
可以通过远程访问或站点到站点VPN来部署、访问和执行处理软件。当使用远程访问VPN时,经由公司专用网络与远程用户之间的安全和加密的连接并通过第三方服务提供商来部署、访问和执行处理软件。企业服务提供商(ESP)设置网络访问服务器(NAS)并向远程用户的计算机提供桌面客户端软件。然后,远程工作者可以拨打免费号码或通过电缆或DSL调制解调器直接连接以到达NAS并使用他们的VPN客户端软件来访问公司网络以及访问、下载和执行处理软件。
当使用站点到站点VPN时,通过使用用于在公共网络(例如,因特网)上连接公司的多个固定站点的专用设备和大规模加密来部署、访问和执行处理软件。
所述处理软件在VPN上通过隧道传输,其是将整个分组置于其他分组内并将其在网络上发送的过程。网络和两个点(称为隧道接口,分组从该处进入和离开网络)理解外部分组的协议。
图7中说明了这种VPN部署的过程。起始块702开始虚拟专用网络(VPN)过程。判定是否需要用于远程访问的VPN(查询块704)。如果不需要,则前进到查询块706。如果需要,则判定是否存在远程访问VPN(查询块708)。
如果确实存在VPN,则前进到块710。否则,标识将提供公司的专用网络与公司的远程用户之间的安全、加密连接的第三方提供商(块712)。标识公司的远程用户(块714)。然后,第三方提供商建立网络访问服务器(NAS)(块716),其允许远程用户拨打免费号码或通过宽带调制解调器直接连接以访问、下载和安装远程访问VPN的桌面客户端软件(块718)。
在建立了远程访问VPN之后或如果先前安装了VPN,则远程用户可以通过拨入NAS或通过电缆或DSL调制解调器直接连接到NAS来访问所述处理软件(块710)。这允许进入从该处可以访问处理软件的公司网络(块720)。通过隧道在网络上将所述处理软件传输到远程用户的桌面。也就是说,将所述处理软件分为分组,并将每个包括数据和协议的分组置于其他分组中(块722)。当所述处理软件到达远程用户的桌面时,将其从分组中取出、重构,然后在远程用户的桌面上执行(块724)。
然后判定是否需要站点到站点访问的VPN(查询块706)。如果不需要,则前进以退出过程(终止块726)。否则,判定是否存在站点到站点VPN(查询块728)。如果确实不存在,则前进到块730。否则,安装建立站点到站点VPN所需的专用设备(块738)。然后,将大规模加密构建到VPN中(块740)。
在建立了站点到站点VPN之后或如果先前建立了VPN,则用户通过VPN来访问所述处理软件(块730)。在网络上通过隧道将所述处理软件传输到站点用户(块732)。也就是说,将处理软件分为多个分组,并将每个包括数据和协议的分组置于其他分组中(块734)。当所述处理软件到达远程用户的桌面时,将其从分组中取出、重建,然后在站点用户的桌面上执行(块736)。然后,过程在终止块726结束。
通过规定包括用于实现本文所说明过程的代码的处理软件与应用、操作系统和网络操作系统软件共存,然后将处理软件安装在环境(所述处理软件在其中工作)中的客户机和服务器上,可以将所述处理软件集成到客户机、服务器和网络环境中。
第一步是标识客户机和服务器上的任何软件,包括处理软件所需的或与处理软件协同工作的网络操作系统(将在该处部署处理软件)。这包括是通过添加联网功能来增强基本操作系统的软件的网络操作系统。
接着,标识软件应用和版本号并将其与已测试为可与所述处理软件一起运行的软件应用和版本号的列表相比较。将使用正确的版本号来升级那些丢失的或不匹配正确版本的软件应用。检查将参数从所述处理软件传递到软件应用的程序指令以确保参数列表与所述处理软件所需的参数列表匹配。相反地,检查由软件应用传递到处理软件的参数以确保所述参数与所述处理软件所需的参数匹配。标识包括网络操作系统的客户机和服务器操作系统并将其与已测试为可与所述处理软件一起运行的操作系统、版本号和网络软件的列表相比较。在客户机和服务器上将与已测试的操作系统和版本号的列表不匹配的那些操作系统、版本号和网络软件升级到所需级别。
在确保软件(要将处理软件部署到该处)处于已测试为可与所述处理软件一起运行的正确版本级别之后,通过将所述处理软件安装到客户机和服务器上来完成集成。
对于此过程的高级描述,现在参考图8。起始块802开始处理软件的集成。首先判定是否存在任何将在一个或多个服务器上执行的处理软件程序(块804)。如果否,则集成前进到查询块806。如果是,则标识服务器地址(块808)。检查服务器以查看它们是否包含包括操作系统(OS)、应用和网络操作系统(NOS)连同它们的版本号(已与所述处理软件一起测试)的软件(块810)。还检查服务器以判定在块810中,是否缺失任何处理软件所需的软件。
判定版本号是否和已与所述处理软件一起测试的操作系统、应用和网络操作系统的版本号相匹配(块812)。如果所有版本都匹配并且没有缺失任何所需的软件,则集成在查询块806继续。
如果一个或多个版本号不匹配,则使用正确的版本在一个或多个服务器上更新不匹配的版本(块814)。此外,如果缺失所需的软件,则在块814示出的步骤中在一个或多个服务器上更新该软件。通过安装所述处理软件来完成服务器集成(块816)。
在查询块806中示出的步骤(其在块804、812或816中示出的步骤之后)判定是否存在任何将在客户机上执行的处理软件的程序。如果没有处理软件程序在客户机上执行,则集成前进到终止块818并退出。如果不是这种情况,则如块820中所示的那样标识客户机地址。
检查客户机以查看它们是否包含包括操作系统(OS)、应用和网络操作系统(NOS)连同它们的版本号(已与所述处理软件一起测试)的软件(块822)。还检查客户机以判定在块822描述的步骤中,是否缺失任何处理软件所需的软件。
判定版本号是否和已与所述处理软件一起测试的操作系统、应用和网络操作系统的版本号相匹配(查询块824)。如果所有版本都匹配并且没有缺失任何所需的软件,则集成前进到终止块818并退出。
如果一个或多个版本号不匹配,则使用正确的版本在客户机上更新不匹配的版本(块826)。此外,如果缺失所需的软件,则在客户机上更新该软件(也在块826)。通过在客户机上安装所述处理软件来完成客户机集成(块828)。集成前进到终止块818并退出。
共享所述处理软件,其以灵活和自动化的方式同时为多个客户服务。它是标准化的,几乎不需要定制,并且它是可伸缩的,以现买现付模式按需提供容量。
可以将处理软件存储在可从一个或多个服务器访问的共享文件系统上。通过事务来执行处理软件,所述事务包含数据和使用被访问服务器上的CPU单位的服务器处理请求。CPU单位是服务器的中央处理器上的诸如分、秒、小时之类的时间单位。此外,被访问的服务器可以做出对其他需要CPU单位的服务器的请求。CPU单位只是代表一个使用度量的实例。其他使用度量包括但不限于网络带宽、存储器使用率、存储装置使用率、分组传输、完整的事务等。
当多个客户使用同一处理软件应用时,通过包括在事务中的标识唯一客户及该客户的服务类型的参数来区分他们的事务。记录每个客户的服务使用的CPU单位和其他使用度量。当针对任何一个服务器的事务数达到开始影响该服务器的性能的数量时,访问其他服务器以增加容量并共享工作负荷。同样,当其他使用度量(例如,网络带宽、存储器使用率、存储装置使用率等)接近可以影响性能的容量时,将添加额外的网络带宽、存储器、存储装置等以共享工作负荷。
将用于每个服务和客户的使用度量发送到收集服务器,收集服务器将在服务器网络(提供处理软件的共享执行)中的任何位置处理的每个服务的每个客户的使用度量相加。将相加的使用度量单位定期乘以单位成本,并备选地将得到的总处理软件应用服务成本发送到客户和/或在由客户访问的Web站点上指示,然后客户向服务提供商付费。
在另一个实施例中,服务提供商从银行或金融机构处的客户账户直接请求支付。在再一个实施例中,如果服务提供商也是使用处理软件应用的客户的客户,则将欠服务提供商的款项与服务提供商的欠款相协调以最小化支付传输。
现在参考图9,起始块902开始按需过程。创建包含唯一客户标识、请求的服务类型和任何进一步指定服务类型的服务参数的事务(块904)。然后,将事务发送到主服务器(块906)。在按需环境下,主服务器可以最初是唯一的服务器,然后随着容量的消耗,可以将其他服务器添加到所述按需环境。
查询按需环境中的服务器中央处理单元(CPU)容量(块908)。估计事务的CPU需求,然后将按需环境中的服务器可用CPU容量与事务CPU需求相比较,以查看任何服务器中是否有足够的CPU可用容量来处理事务(查询块910)。如果没有足够的服务器CPU可用容量,则分配额外的服务器CPU容量来处理事务(块912)。如果已存在足够的可用CPU容量,则将事务发送到选定的服务器(块914)。
在执行事务之前,检查其余按需环境以判定所述环境是否具有足够的可用容量以便处理事务。此环境容量包括但不限于网络带宽、处理器存储器、存储装置等(块916)。如果没有足够的可用容量,则将容量添加到按需环境(块918)。接着,访问处理事务所需的软件,将其加载到存储器中,然后执行事务(块920)。
记录使用率度量(块922)。使用率度量包括按需环境中用于处理事务的那些功能的部分。记录了此类功能的使用率,包括但不限于网络带宽、处理器存储器、存储装置和CPU周期。将使用率度量相加,乘以单位成本,然后记录为对发出请求的客户的收费(块924)。
如果客户请求将按需费用发布到Web站点(查询块926),则将其发布(块928)。如果客户请求将按需费用通过电子邮件发送到客户地址(查询块930),则将这些费用发送到客户(块932)。如果客户请求直接从客户账户支付按需费用(查询块934),则直接从客户账户接收付款(块936)。然后在终止块938退出按需过程。
虽然参考优选实施例具体示出和描述了本发明,但是本领域的技术人员将理解,可以在不偏离本发明的精神和范围的情况下对其做出形式和细节上的各种更改。此外,如说明书和所附权利要求中使用的,术语“计算机”或“系统”或“计算机系统”或“计算设备”包括任何数据处理系统,包括但不限于,个人计算机、服务器、工作站、网络计算机、大型机、路由器、交换机、个人数字助理(PDA)、电话,以及任何其他能够处理、传输、接收、捕获和/或存储数据的系统。
权利要求
1.一种可计算机实现的方法,所述方法包括捕获与在第一测试过程期间和图形用户接口进行的多个用户交互对应的数据;生成与所述第一测试过程期间的所述用户交互对应的复合数据;处理所述复合数据并从其生成第二测试过程;捕获与在所述第二测试过程期间和所述图形用户接口进行的多个用户交互对应的数据;使用来自所述第二测试过程的所述捕获的数据来生成自适应过程以便进一步测试所述图形用户接口。
2.如权利要求1中所述的方法,还包括使用记录代理来捕获与所述第一和第二测试过程期间的所述多个用户交互对应的所述数据。
3.如权利要求2中所述的方法,其中所述第一测试过程包括第一组与先决条件相比的已知输入和与后置条件相比的相应预期输出。
4.如权利要求3中所述的方法,其中所述第一测试过程的所述第一组已知输入、先决条件、输出和后置条件由所述记录代理记录并分析以生成所述第二测试过程。
5.如权利要求4中所述的方法,其中所述第二测试过程包括第二组与先决条件相比的已知输入和与后置条件相比的相应预期输出。
6.如权利要求5中所述的方法,还包括执行所述第二测试过程;使用所述记录代理来捕获与所述第二组已知输入、先决条件、输出和后置条件对应的数据;以及使用来自所述第二测试过程的所述捕获的数据来生成所述图形用户接口的后续测试过程。
7.一种系统,所述系统包括处理器;连接到所述处理器的数据总线;以及包含计算机程序代码的计算机可用介质,所述计算机可用介质连接到所述数据总线,所述计算机程序代码包括可由所述处理器执行的指令,所述指令配置为执行以下操作捕获与在第一测试过程期间和图形用户接口进行的多个用户交互对应的数据;生成与所述第一测试过程期间的所述用户交互对应的复合数据;处理所述复合数据并从其生成第二测试过程;捕获与在所述第二测试过程期间和所述图形用户接口进行的多个用户交互对应的数据;使用来自所述第二测试过程的所述捕获的数据来生成自适应过程以便进一步测试所述图形用户接口。
8.如权利要求7中所述的系统,其中所述指令还配置为执行以下操作使用记录代理来捕获与所述第一和第二测试过程期间的所述多个用户交互对应的所述数据。
9.如权利要求8中所述的系统,其中所述第一测试过程包括第一组与先决条件相比的已知输入和与后置条件相比的相应预期输出。
10.如权利要求9中所述的系统,其中所述第一测试过程的所述第一组已知输入、先决条件、输出和后置条件由所述记录代理记录并分析以生成所述第二测试过程。
11.如权利要求10中所述的系统,其中所述第二测试过程包括第二组与先决条件相比的已知输入和与后置条件相比的相应预期输出。
12.如权利要求11中所述的系统,其中所述指令还配置为执行以下操作执行所述第二测试过程;使用所述记录代理来捕获与所述第二组已知输入、先决条件、输出和后置条件对应的数据;以及使用来自所述第二测试过程的所述捕获的数据来生成所述图形用户接口的后续测试过程。
全文摘要
一种通过实现记录代理来进行改进的和自动的测试软件应用的图形用户接口的方法、装置和计算机可用介质,该代理允许捕获一个或多个人工软件测试者的图形用户接口交互并将其结合到容错和自适应的自动化图形用户接口测试系统中。实现记录代理以捕获一个或多个人工软件测试者的图形用户接口交互。测试者制定多个预定测试用例或过程,其具有与先决条件相比的已知输入和与得到的后置条件相比的预期输出,它们被记录并编辑到聚集测试过程中。修改得到的聚集测试过程并将其配置为纠正和/或协调识别的异常,以创建在自动化的测试环境中实现的最终测试过程。将每个试运行的结果随后合并到自动化测试过程中,使其随试运行数的增加变得更加容错和自适应。
文档编号G06F11/36GK101089826SQ20071010899
公开日2007年12月19日 申请日期2007年6月11日 优先权日2006年6月12日
发明者J·D·吉洛尼, H·S·克洛维茨, W·D·哈于廷, S·A·施瓦茨曼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1