CN1282080C - 用于跨数据处理系统和平台使软件执行同步的系统和方法 - Google Patents

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

Info

Publication number
CN1282080C
CN1282080C CN200410058897.XA CN200410058897A CN1282080C CN 1282080 C CN1282080 C CN 1282080C CN 200410058897 A CN200410058897 A CN 200410058897A CN 1282080 C CN1282080 C CN 1282080C
Authority
CN
China
Prior art keywords
stage
synchronous event
data handling
operationally
test case
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200410058897.XA
Other languages
English (en)
Other versions
CN1619500A (zh
Inventor
杰弗里·O·费希尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1619500A publication Critical patent/CN1619500A/zh
Application granted granted Critical
Publication of CN1282080C publication Critical patent/CN1282080C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

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

Description

用于跨数据处理系统和平台 使软件执行同步的系统和方法
技术领域
本发明涉及数据处理系统中的软件自动化领域,具体来说,涉及跨多个数据处理系统和平台的测试实例进程的执行,并涉及这样的进程的同步。
背景技术
现代企业数据处理环境中的软件应用程序通常包括成千上万行源代码并实现复杂的功能。例如,应用非常广泛的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来进一步地理解,这些图以流程图的形式说明了根据本发明的原理的测试实例执行和同步进程。这里所提供的流程图不一定表示在本发明的一个实施例中执行的操作的序列。这些流程图内所说明的步骤可以并行地执行。流程图表示产生自动化跨数据处理系统和/或平台执行测试实例可用的操作所要考虑的事项。需要进一步注意的是,这里所提供的顺序是说明性的,不一定意味着步骤必须按照这里所显示的顺序来执行。
现在参考图3,该图说明了根据本发明的原理的测试实例阶段执行服务进程300。测试实例阶段执行服务进程300可以由测试实例阶段执行服务(如图1中的测试实例阶段执行服务108a-108c)执行。此外,测试实例阶段执行服务300可以由图1中的调度程序106来调用。测试阶段执行服务300的调用可以使用进程间通信(IPC)协议来实施,或者,具体来说,由部署在诸如图1中的系统102b-102d之类的测试实例数据处理系统的特定操作系统支持的远程过程调用(RPC)来实施。
或者,在本发明的实施例中远程过程调用和进程间通信可以通过使用高级别的进程调用和监视服务来实施。软件测试自动化框架(STAF)提供了使用这样的服务的机制。STAF是一个开放式源代码,多平台框架,该框架提供了诸如进程调用、资源管理、日志记录和监视之类的服务。STAF软件和文档通过SourceForge.net以电子方式分发。SourceForge.net是开放源代码开发人员控制和管理开放源代码软件开发的集中位置。SourceForge.net托管了开放源代码软件开发项目。位于SourceForge.net的STAF主页的统一资源定位器地址是:<http://staf.sourceforge.net/index.php>。例如,在这样的实施例中,测试实例阶段执行服务可以使用STAFE进程服务来启动。
回到图3,在步骤302中从测试实例定义元数据获取阶段名称序列。如上面参考图5所讨论的,,测试实例定义元数据可以包括要运行的特定测试实例的各个阶段的阶段名称(不同的标识符)的列表。响应调度程序(如图1中的调度程序106)提供的数据,测试实例阶段执行服务300访问测试实例定义。
测试实例阶段执行服务300在步骤304中进入序列中的各个阶段的循环。在步骤306中,从测试实例元数据中获取要执行的命令。
在步骤308中,测试实例阶段执行服务在阶段同步事件中停止。如此,本发明的原理可以使得测试实例本身不必跨测试实例进程地处理测试实例的同步。请注意,同步事件可以唯一地与每一个测试实例阶段关联。如下面所进一步讨论的,在使用STAF的实施例中,可以使用STAF信号服务来提供同步事件。对此,将结合图5A和5B进行进一步的讨论。在本发明的这样的实施例中,这可以通过将对应的事件名称与每一个阶段名称关联来实现。(STAF信号是为命名的事件和互斥信号而提供的)。下面将结合图5讨论使用STAF信号服务来张贴同步事件。
在步骤308中,触发同步事件触发器时,测试实例阶段执行服务300离开循环。在步骤310中调用测试实例定义代码,并运行到结束。然后,测试实例阶段执行服务300通过返回到步骤304在下一个事件中停止。
在完成最后的阶段时,测试实例阶段执行进程300在步骤304离开各个阶段的循环,并在步骤312结束。
测试实例执行可以与测试实例阶段执行服务(如图3中的测试实例阶段执行服务300)根据图4以流程图的形式所说明的测试实例执行方法400一起实施。在步骤404中,获取当前阶段的阶段名称。这可以从通过IPC机制传递的命令行参数中提取。可以在本发明的一个实施例中使用的另一个机制是以环境变量传递阶段名称。本领域普通人员将知道,用于传递阶段名称的特定技术并不涉及本发明的原理,任何通常使用的参数传递机制都可以与本发明一起使用。在步骤406中,测试实例代码转到具有在步骤404中获取的阶段名称的阶段的逻辑。即,代码可以转到可执行代码的对应于当前阶段的那一部分。这样的转移可以以测试实例代码来执行,例如,通过“开关”语句来执行(即,转移可以用源代码的形式由类似于C语言的“开关”语句;本领域普通人员将知道,可执行代码对应于实现“开关”语句的一组机器指令)。(请注意,旧式测试实例可能被设计为异步执行到结束。本领域普通人员将知道,这样的测试实例在本发明中是作为单阶段测试实例来运行的)。此代码可以代表本机机器指令、虚拟机字节代码,或脚本,具体情况取决于用于编写测试实例的特定开发系统而定。这些备选方案与本发明的原理不相矛盾,两者都在本发明的精神和范围内。在步骤408中,执行测试实例阶段代码。当前阶段的测试实例执行在步骤410结束,控制返回到测试实例阶段执行进程(如图3所示的阶段执行进程300)。
现在参考图5A和5B,这些图形(在局部图中)以流程图的形式说明了根据本发明的原理的同步进程500。注意,同步进程500在根据图1中的体系结构100中可以由调度程序106来执行。然而,同步进程500可以作为独立的进程来实施。
在步骤502中,阶段名称序列是从测试实例定义元数据中获取的(类似于图3中步骤302)。此外,可以从元数据中获取阈值。在步骤504中,进程500进入特定测试实例的各个阶段的循环。注意,同步点是测试实例中的预先确定的点,这些点打断测试实例的执行,以使跨多个系统和平台的执行同步。通常,由测试实例设计人员指定一个阶段,以避免潜在的竞争状况的出现。然而,对于此目的,各个阶段由特定的测试实例的设计预先确定就够了。对于每一个这样的阶段,进程500持续到步骤508,在该步骤中,就在与当前阶段关联的事件中停止的测试实例进程的数量是否满足或超过预先选定的阈值进行判断。换句话说,等待事件的测试实例进程的数量是否获得“临界质量”。阈值或“临界质量”值可以包括在测试实例元数据中,借此,可以根据特定的测试实例选择根据被阻塞的进程的数量触发同步事件。
如果获得了临界质量,在步骤510中,触发对应于当前阶段的事件。在同步进程500的另一个实施例中,可以使用结合图3的测试实例阶段服务进程300所讨论的STAF信号服务。现在参考图5B,该图说明了根据这样的实施例的其他步骤508和510。
在步骤552中,轮询同步事件信号(可以使用STAF事件查询来影响步骤552)。根据STAF规范,响应包括正在等待事件的数量。在步骤554中,检索等待事件的数量,并在步骤556中,将等待事件的数量与阈值进行比较。如果等待的数量小于阈值,则步骤504返回到步骤552(步骤554的“否”分支)。
如果正在等待的进程的数量满足或超过阈值,则在步骤510中触发同步事件。注意,在本实施例中,事件名称可以与阶段序列中的每一个阶段关联。如此,在步骤510中,将触发与当前阶段关联的命名的事件。
返回到图5A,进程500返回到步骤504,并对测试实例的阶段序列中的剩余的各个阶段循环,重复步骤506-510,直到所有测试实例阶段被执行。在完成最后阶段时,同步进程500在步骤504中中止循环,并在步骤512中止。
现在参考图6,该图说明了根据本发明的数据处理系统600的示范性硬件配置。在一个实施例中,此系统与图1中的体系结构100关联,包括数据处理系统102a-102d,并与图3-5中的用于自动化、跨平台多进程软件自动化的方法对应。数据处理系统600包括中央处理单元(CPU)610,诸如常规微处理器,以及通过系统总线612互连的其他单元。数据处理系统600还包括随机存取存储器(RAM)614、只读存储器(ROM)616和用于连接诸如磁盘单元620之类的外围设备与总线612的输入/输出(I/O)适配器618、用于连接键盘624、鼠标626、跟踪球632和/或诸如触摸屏设备(未显示)之类的其他用户界面与总线612的其他用户接口设备。系统600还包括通信适配器634,用于将数据处理系统600连接到数据处理网络,以使系统与其他系统进行通信,以及显示适配器636,用于将总线612连接到显示设备638。CPU 610可以包括这里未显示的其他电路,这将包括微处理器中常有的电路,例如,执行单元、总线接口单元、算术逻辑单元等,CPU还可以位于同一个集成电路上。
本发明的优选的实施例包括被编程为执行这里所描述的方法的计算机系统以及作为计算机程序产品的实施例。根据计算机系统实施例,用于执行这些方法的指令集驻留通常按如上方法配置的一个或多个计算机系统的随机存取存储器614中。在一个实施例中,这些指令集与执行它们的系统组件一起,可能会影响测试实例阶段的执行,如参考图3和4所描述的。在另一个实施例中,根据本发明的原理,这些指令集与执行它们的系统组件一起,可能会影响同步进程,如参考图5所讨论的。在计算机系统需要之前,指令集可以作为计算机程序产品存储在另一台计算机的存储器中,例如,存储在磁盘驱动器620(可以包括诸如光盘或软盘之类的可移动存储器中,以供在磁盘驱动器620中最后使用)。此外,计算机程序产品还可以存储在另一台计算机中,并可以通过网络或通过诸如因特网之类的外部网络传输到用户工作站中。那些精通本技术的可以看出,指令集的物理存储器可以在物理上改变在其中存储了这些指令集的介质,以便介质携带计算机可读取的信息。改变可以是电的、磁性、化学的、生物学、或某些其他物理变化。尽管以指令、符号、字符等等来描述本发明是方便的,读者应该记住,所有这些类似的符号都应该与适当的物理元件相关联。
请注意,本发明可能描述了诸如比较、验证、选择、标识之类的术语,或其他可能与操作员关联的其他术语。然而,对于构成了至少一个实施例的一部分的这里描述的许多操作,不需要操作员进行任何操作。这里所描述的操作在很大程度上是处理电信号以生成其他电信号的机器操作。
尽管是在相应地跨多个测试实例进程分布的多主机、多平台测试实例的上下文中对本发明的原理进行描述的,但是,那些精通本技术的普通人员将认识到,这样的测试实例只是可扩展分布式应用程序的示例。本领域普通人员还将进一步认识到,可以根据本发明的原理执行任何这样的分布式应用程序,这样的实施例将在本发明的精神和范围内。
虽然详细描述了本发明以及其优点,但是应该理解,在不偏离如所附的权利要求所定义的本发明的精神和范围的情况下,可以进行各种更改、替换和变更。

Claims (18)

1.一种执行分布式应用程序的方法,包括:
按阶段的顺序执行分布式应用程序,每一个阶段都具有对应的可执行代码集,其中对应于每一个阶段的代码跨多个进程异步执行;以及
响应于同步事件而启动多个阶段中的每一个阶段,其中所述同步事件包括从所述分布式应用程序的外部触发和处理的事件。
2.根据权利要求1所述的方法,其中所述多个进程中的至少两个进程部署在具有不同操作系统的主机上。
3.根据权利要求1所述的方法,其中所述启动多个阶段中的每一个阶段的步骤包括:
调用分布式应用程序的可执行代码;以及
响应于所述可执行代码的执行而获取当前阶段的名称。
4.根据权利要求3所述的方法,进一步包括:在所述可执行代码中,响应于当前阶段的名称而转到所述可执行代码的对应于所述当前阶段的那一部分。
5.根据权利要求1所述的方法,进一步包括:
如果当前阶段已跨多个数据处理系统完成,则触发下一个同步事件。
6.根据权利要求5所述的方法,进一步包括在所述同步事件中停止。
7.根据权利要求1所述的方法,进一步包括:
从分布式应用程序的元数据中提取阶段名称的序列;以及
对于所述阶段名称序列中的每一个阶段名称,响应于当前阶段的同步事件,调用对应于每一个阶段名称的分布式应用程序的可执行代码。
8.根据权利要求6所述的方法,其中,响应于满足或超过预先选定的阈值的、在所述同步事件中停止的多个进程,触发所述同步事件。
9.根据权利要求8所述的方法,进一步包括:
轮询对应于所述同步事件的信号;以及
检索在所述同步事件中等待的多个进程。
10.一种数据处理系统,包括:
可操作地用于按阶段的顺序执行分布式应用程序的电路,其中每一个阶段都具有对应的可执行代码集,并且对应于每一个阶段的代码跨多个进程异步执行;以及
可操作地用于响应于同步事件而启动多个阶段中的每一个阶段的电路,其中所述同步事件包括从分布式应用程序的外部触发和处理的事件。
11.根据权利要求10所述的数据处理系统,其中所述多个进程中的至少两个进程部署在具有不同操作系统的主机上。
12.根据权利要求10所述的数据处理系统,其中所述可操作地用于启动多个阶段中的每一个阶段的电路包括:
可操作地用于调用分布式应用程序的可执行代码的电路;以及
可操作地用于响应于所述可执行代码的执行而获取当前阶段的名称的电路。
13.根据权利要求12所述的数据处理系统,进一步包括:可操作地响应于当前阶段的名称而转到所述可执行代码的对应于当前阶段的那一部分的电路。
14.根据权利要求10所述的数据处理系统,进一步包括:
可操作地用于在当前阶段已跨多个数据处理系统完成时,触发下一个同步事件的电路。
15.根据权利要求14所述的数据处理系统,进一步包括可操作地用于在所述同步事件中停止的电路。
16.根据权利要求10所述的数据处理系统,进一步包括:
可操作地用于从分布式应用程序的元数据中提取阶段名称的序列的电路;以及
可操作地对于所述阶段名称序列中的每一个阶段名称,响应于当前阶段的同步事件,调用对应于每一个阶段名称的分布式应用程序的可执行代码的电路。
17.根据权利要求12所述的数据处理系统,其中,响应于满足或超过预先选定的阈值的、在所述同步事件中停止的多个进程,触发所述同步事件。
18.根据权利要求17所述的数据处理系统,进一步包括:
可操作地用于轮询对应于所述同步事件的信号的电路;以及
可操作地用于检索在所述同步事件中等待的多个进程的电路。
CN200410058897.XA 2003-08-07 2004-08-03 用于跨数据处理系统和平台使软件执行同步的系统和方法 Active CN1282080C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/636,985 2003-08-07
US10/636,985 US7984427B2 (en) 2003-08-07 2003-08-07 System and methods for synchronizing software execution across data processing systems and platforms

Publications (2)

Publication Number Publication Date
CN1619500A CN1619500A (zh) 2005-05-25
CN1282080C true CN1282080C (zh) 2006-10-25

Family

ID=34104623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410058897.XA Active CN1282080C (zh) 2003-08-07 2004-08-03 用于跨数据处理系统和平台使软件执行同步的系统和方法

Country Status (3)

Country Link
US (2) US7984427B2 (zh)
EP (1) EP1510919A3 (zh)
CN (1) CN1282080C (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9053239B2 (en) 2003-08-07 2015-06-09 International Business Machines Corporation Systems and methods for synchronizing software execution across data processing systems and platforms
US7752633B1 (en) * 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US7437546B2 (en) 2005-08-03 2008-10-14 Intel Corporation Multiple, cooperating operating systems (OS) platform system and method
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
US20070294246A1 (en) * 2006-06-16 2007-12-20 Microsoft Corporation Associating metadata on a per-user basis
US20090199047A1 (en) * 2008-01-31 2009-08-06 Yahoo! Inc. Executing software performance test jobs in a clustered system
US9378120B2 (en) * 2011-11-09 2016-06-28 Tata Consultancy Services Limited Automated test execution plan derivation system and method
CN104487935B (zh) * 2012-07-27 2018-04-24 慧与发展有限责任合伙企业 记录外部过程
CN103905495B (zh) 2012-12-27 2019-04-23 腾讯科技(深圳)有限公司 一种应用的同步方法及后台服务器
CN104850491B (zh) * 2014-02-19 2018-09-25 深圳中兴网信科技有限公司 一种软件测试方法、设备及系统
US9448903B2 (en) * 2014-08-16 2016-09-20 Vmware, Inc. Multiple test type analysis for a test case using test case metadata
CN104572472B (zh) * 2015-01-28 2018-03-06 中国农业银行股份有限公司 一种程序执行顺序诊断方法与系统
CN109542641A (zh) * 2018-11-14 2019-03-29 中国联合网络通信集团有限公司 服务调用方法、装置及系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4318182A (en) * 1974-04-19 1982-03-02 Honeywell Information Systems Inc. Deadlock detection and prevention mechanism for a computer system
US5214780A (en) * 1990-03-23 1993-05-25 Sun Microsystems, Inc. Synchronized journaling system
US5511185A (en) * 1990-11-27 1996-04-23 Mercury Interactive Corporation System for automatic testing of computer software having output synchronization and capable of responding to asynchronous events
JP2772304B2 (ja) 1992-04-10 1998-07-02 富士通株式会社 並列処理の負荷均一化方法
US5535438A (en) * 1994-05-10 1996-07-09 Panasonic Technologies, Inc. Phase linear class E amplifier for a satellite communication terminal which communicates with a low earth orbiting satellite
US5623599A (en) * 1994-07-29 1997-04-22 International Business Machines Corporation Method and apparatus for processing a synchronizing marker for an asynchronous remote data copy
US5634010A (en) * 1994-10-21 1997-05-27 Modulus Technologies, Inc. Managing and distributing data objects of different types between computers connected to a network
US5623670A (en) * 1995-02-17 1997-04-22 Lucent Technologies Inc. Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
DE69625751T2 (de) * 1995-07-07 2003-10-02 Sun Microsystems Inc Verfahren und System zur Ausführungssynchronisation von Ereignissen beim Testen von Software
US6067639A (en) * 1995-11-09 2000-05-23 Microsoft Corporation Method for integrating automated software testing with software development
US6279124B1 (en) * 1996-06-17 2001-08-21 Qwest Communications International Inc. Method and system for testing hardware and/or software applications
US5958019A (en) 1996-07-01 1999-09-28 Sun Microsystems, Inc. Multiprocessing system configured to perform synchronization operations
US6023580A (en) * 1996-07-03 2000-02-08 Objectswitch Corporation Apparatus and method for testing computer systems
WO1998010347A1 (de) 1996-09-04 1998-03-12 Siemens Nixdorf Informationssysteme Ag Synchronisationsverfahren
US6002869A (en) * 1997-02-26 1999-12-14 Novell, Inc. System and method for automatically testing software programs
US6185701B1 (en) * 1997-11-21 2001-02-06 International Business Machines Corporation Automated client-based web application URL link extraction tool for use in testing and verification of internet web servers and associated applications executing thereon
US6157940A (en) * 1997-11-21 2000-12-05 International Business Machines Corporation Automated client-based web server stress tool simulating simultaneous multiple user server accesses
US6757847B1 (en) * 1998-12-29 2004-06-29 International Business Machines Corporation Synchronization for system analysis
US6343371B1 (en) * 1999-01-14 2002-01-29 Compaq Computer Corporation System and method for statically detecting potential race conditions in multi-threaded computer programs
US6594820B1 (en) * 1999-09-28 2003-07-15 Sun Microsystems, Inc. Method and apparatus for testing a process in a computer system
US6775824B1 (en) * 2000-01-12 2004-08-10 Empirix Inc. Method and system for software object testing
US6959433B1 (en) * 2000-04-14 2005-10-25 International Business Machines Corporation Data processing system, method, and program for automatically testing software applications
US6751711B1 (en) * 2000-10-27 2004-06-15 Nortel Networks Limited Methods and systems for process rollback in a shared memory parallel processor computing environment
US6971084B2 (en) * 2001-03-02 2005-11-29 National Instruments Corporation System and method for synchronizing execution of a batch of threads
US7210105B2 (en) * 2001-03-02 2007-04-24 National Instruments Corporation System and method for synchronizing software execution
US6754850B2 (en) * 2001-03-02 2004-06-22 National Instruments Corporation System and method for performing batch synchronization for a test sequence
US7089556B2 (en) * 2001-03-26 2006-08-08 International Business Machines Corporation System and method for dynamic self-determining asynchronous event-driven computation
US6910158B2 (en) * 2001-10-01 2005-06-21 International Business Machines Corporation Test tool and methods for facilitating testing of duplexed computer functions
US7055137B2 (en) * 2001-11-29 2006-05-30 I2 Technologies Us, Inc. Distributed automated software graphical user interface (GUI) testing
US6851075B2 (en) * 2002-01-04 2005-02-01 International Business Machines Corporation Race detection for parallel software
US7089534B2 (en) * 2002-05-01 2006-08-08 International Business Machines Corporation Model based test generation for validation of parallel and concurrent software
US7159021B2 (en) * 2002-06-27 2007-01-02 Microsoft Corporation System and method for testing peer-to-peer network applications
US7174554B2 (en) * 2002-12-20 2007-02-06 Microsoft Corporation Tools and methods for discovering race condition errors

Also Published As

Publication number Publication date
US8407672B2 (en) 2013-03-26
EP1510919A3 (en) 2007-07-18
EP1510919A2 (en) 2005-03-02
US20120291013A1 (en) 2012-11-15
CN1619500A (zh) 2005-05-25
US20050044136A1 (en) 2005-02-24
US7984427B2 (en) 2011-07-19

Similar Documents

Publication Publication Date Title
US8407672B2 (en) Systems and methods for synchronizing software execution across data processing systems and platforms
CN1109965C (zh) 通过分布式编程对象进行主机信息访问的方法
CN111026470B (zh) 用于输入数据的验证和转换的系统和方法
AU759260B2 (en) Object oriented method of structuring a software step program
US6938250B2 (en) Image-based software installation
US8219987B1 (en) Optimized virtual machine specification for provisioning application specific runtime environment
US8799893B2 (en) Method, system and computer program product for solution replication
CN109388376B (zh) 软件开发风险评估方法、装置、设备及可读存储介质
US7870169B2 (en) Method for enabling traceability and recovery from errors during migration of software applications
US20080098387A1 (en) Automation tool for application installations
JP2006244195A (ja) プログラムテスト支援装置およびその方法
US11714625B2 (en) Generating applications for versatile platform deployment
RU2568294C2 (ru) Способ автоматической установки приложения без участия человека
WO2016111673A1 (en) Multi-tenant upgrading
US6289503B1 (en) System and method for trace verification
CN111679976A (zh) 一种页面对象的查找方法及装置
US7100039B2 (en) Systems and methods for a bootstrap mechanism for software execution
CN116244186A (zh) 一种操作系统测试管理方法、装置与计算设备
CN114579461A (zh) 浏览器兼容性检测方法及相关设备
US20110040852A1 (en) Obtaining and providing cached settings within a development platform
CN112612469A (zh) 一种界面元素的处理方法、装置和电子设备
US9053239B2 (en) Systems and methods for synchronizing software execution across data processing systems and platforms
JP7182044B2 (ja) テスト管理サーバおよびシステム
EP4254171A1 (en) Generation program, generation method, and information processing device
CN115421785B (zh) 应用程序的移植处理方法、装置和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant