用于跨数据处理系统和平台使软件执行同步的系统和方法技术方案

技术编号:2863070 阅读:206 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了用于实现软件自动化的系统和方法。软件测试实例跨多个数据处理系统(相当于“计算机”或“主机”),这些数据处理系统可以包括多个平台(相当于“操作系统”)。测试实例可以作为一个或多个进程按阶段的顺序执行,在各种进程之间,在一个阶段内,执行是异步进行的。跨数据处理系统和平台的测试实例进程的同步可以受到管理一个事件的影响;在完成当前测试实例阶段时,测试实例进程在该事件中停止。每一台主机上的测试实例阶段执行服务处理同步事件。测试实例的定义可以包括元数据,该元数据为测试实例标识序列中的特定阶段(即,阶段名称);阶段名称向同步进程标识各个阶段,同步进程触发同步事件,而同步事件启动测试实例的每一个随后的阶段。

【技术实现步骤摘要】

本专利技术涉及数据处理系统中的软件自动化领域,具体来说,涉及跨多个数据处理系统和平台的测试实例进程的执行,并涉及这样的进程的同步。
技术介绍
现代企业数据处理环境中的软件应用程序通常包括成千上万行源代码并实现复杂的功能。例如,应用非常广泛的Apache Web服务器(一种源代码开放的Web服务器)至少包括80,000行源代码。Linux操作系统超过了160万行源代码。对这样的软件产品进行测试是一个非常费时的任务。对软件进行测试涉及对程序功能的调用,并且还要对该功能的结果的正确性进行验证。对软件的测试包括一个或多个测试实例的执行,这些测试实例是为了练习实现任务中的软件的功能的操作而设计的。运行测试实例是为了验证接受测试的软件在为测试实例设置的条件下不会发生故障,还验证生成的输出是否正确。一般来说,软件测试包括由软件开发小组的成员执行的活动,及其他自动执行的(即,由另一个软件程序执行的)活动。数据处理系统(特别是企业环境中的)通常包括一个网络数据处理系统,在该系统中,一组经常被访问的资源向连接到网络的多个用户提供服务。这些服务可以包括电子邮件服务、因特网访问、分布式计算服务、输入/输出服务(如打印等等)。此外,部署的用来提供这样的服务以及访问这些服务的软件可以跨多个平台(即,操作系统)地部署。对应于此,在软件产品的测试中,跨多个主机和平台地运行测试实例是人们所希望的。例如,在自动化多个图形用户界面(GUI)的并发导航中,可以由对应的进程导航每一个GUI。然而,使用一个以上测试实例进程的测试实例可能会产生竞争的状况。例如,一个测试实例进程可能会生成被第二个测试实例进程使用的输出。如此,必须使两个进程同步以避免第二个进程在第一个进程之前执行。因此,需要这样的系统和方法以将使用跨多个主机和平台部署的多个测试实例进程的软件测试实例的执行自动化。此外,还需要这样的系统和方法,以包括防止出现竞争状况的机制。
技术实现思路
本专利技术解决了如前所述的需要。在一个实施例中,可以实现执行分布式应用程序的方法。该方法包括在各个阶段按顺序执行测试实例。每一个阶段都具有对应的可执行代码集。跨多个进程地异步执行对应于每一个阶段的代码。该方法还包括响应于同步事件而启动多个阶段中的每一个阶段。同步事件包括从测试实例的外部触发和处理的事件。前面的内容相当广泛地概述了本专利技术的一个或多个实施例的特征和技术优点,以便可以更好地了解随后的本专利技术的具体实施方式。下文将描述本专利技术的其他特点和优点,这些都构成了本专利技术的权利要求的主题。附图说明为对本专利技术有一个比较完整的了解,现在将参考下面结合附图进行的详细说明,其中图1说明了根据本专利技术的原理自动化测试实例执行的体系结构;图2简要说明了可以与图1的体系结构结合使用的测试实例的定义;图3以流程图的形式说明了根据本专利技术的原理的测试实例的分阶段的执行服务方法;图4以流程图的形式说明了根据本专利技术的原理的测试实例代码执行方法。图5A和5B以流程图的形式说明了根据本专利技术的原理的同步化测试实例进程的方法;以及图6以方框图的形式说明了可以与包括本专利技术的原理的方法结合使用的数据处理系统。具体实施例方式本专利技术提供了用于实现软件自动化的系统和方法。软件测试实例是跨多个数据处理系统(相当于“计算机”或“主机”),这些数据处理系统可以包括多个平台(相当于“操作系统”)。测试实例可以作为一个或多个进程按阶段的顺序执行,在各种进程之间,在一个阶段内,执行是异步进行的。跨数据处理系统和平台的测试实例进程的同步可以受到管理一个事件的影响;在完成当前测试实例阶段时,测试实例进程应该事件而中止。每一台主机上的测试实例阶段执行服务负责处理同步事件。测试实例的定义可以包括元数据,该元数据为测试实例标识序列中的特定阶段(即,阶段名称);阶段名称向同步进程标识各个阶段,同步进程触发同步事件,而同步事件启动测试实例的每一个随后的阶段。在下面的说明中,阐述了许多具体的细节以提供对本专利技术的全面的了解。例如,可以引用特定的进程间通信(IPC)机制,本领域普通人员将知道,本专利技术可以不用这样的具体细节来实施,在其他实例中,以方框图的形式显示了已知的电路,以便不会以不必要的细节使本专利技术变得难以理解。请参看附图,所描述的元件不一定可以扩展,在几个视图中,类似的元件用相同的符号表示。图1概要说明了根据本专利技术的原理的用于跨多个数据处理硬件和平台执行测试实例的软件自动化体系结构。体系结构100包括多个数据处理系统102a-102d,这些系统可以是常规的工作站、服务器硬件或类似的设备。根据本专利技术的原理,数据处理系统102b-102d不必具有相同的操作系统(未显示)。(操作系统也可以称为平台)。换句话说,不同的操作系统可以部署在数据处理系统102b-102d中的每一个系统中,或者可以在这些数据处理系统中部署操作系统的不同的组合。同样,部署在数据处理系统102a上的操作系统可以不同于(也可以相同)部署在数据处理系统102b-102d上的任何数据处理系统。如此,图1中描述的测试实例作为测试实例代码104a-104c可以跨不同的平台和数据处理硬件地执行。跨这样的多主机、多平台体系结构的测试实例的执行由调度程序106来调停。下面将进一步讨论调度程序106的操作。具体来说,调度程序106可以对于测试实例的执行提供同步服务,如下面结合图3和图5A和5B所讨论的。此外,测试实例阶段执行服务108a-108c可以包括在数据处理系统102b-102d中的每一个系统中。测试实例阶段执行服务可以提供了测试实例软件本身的包装,并提供了测试实例代码和调度程序106之间的接口。换句话说,如下面所进一步讨论的,测试实例阶段执行服务提供了测试实例的执行的同步机制,以及可执行的测试实例和调度程序106之间的接口。具体来说,根据本专利技术的原理,可以分各个阶段执行测试实例。在任何特定阶段,执行操作可以是跨数据处理系统和/或平台异步进行。这可以根据图2中说明的本专利技术的原理使用测试实例定义结构200来进行。测试实例定义200包括代码202,该代码可以包括执行构成了要执行的测试的操作的可执行代码。此外,测试实例定义包括构成了要执行的测试的操作所需要的任何数据204。例如,数据库客户端/服务器应用程序的测试实例可以包括部署在相应的进程中的数据库上的客户端和服务器操作的代码。测试实例定义可以包括用于初始化数据库表的数据。此外,根据本专利技术的原理,测试实例定义200包括元数据206,该数据构成了有关测试实例本身的数据。此元数据可以包括测试实例的每一个阶段的名称(或其他类型的标识符)。换句话说,根据本专利技术的原理,可以作为由同步点打断的执行阶段的序列来查看运行的测试实例。如以前所指出的,在同步点之间,跨系统和/或平台的测试实例的执行可以是异步的。这可以通过参考图3-6来进一步地理解,这些图以流程图的形式说明了根据本专利技术的原理的测试实例执行和同步进程。这里所提供的流程图不一定表示在本专利技术的一个实施例中执行的操作的序列。这些流程图内所说明的步骤可以并行地执行。流程图表示产生自动化跨数据处理系统和/或平台执行测试实例可用的操作所要考虑的事项。需要进一步注意的是,这里所提供的顺序是说明性的,不一定意味着步骤必须按照这里所显示的顺序来本文档来自技高网
...

【技术保护点】
一种执行分布式应用程序的方法,包括:    按阶段的顺序执行分布式应用程序,每一个阶段都具有对应的可执行代码集,其中对应于每一个阶段的代码跨多个进程异步执行;以及    响应于同步事件而启动多个阶段中的每一个阶段,其中所述同步事件包括从所述分布式应用程序的外部触发和处理的事件。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:杰弗里O费希尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利