CN1755645A - 选择用于复验自动化的测试实例执行行为的系统和方法 - Google Patents
选择用于复验自动化的测试实例执行行为的系统和方法 Download PDFInfo
- Publication number
- CN1755645A CN1755645A CNA2005100994501A CN200510099450A CN1755645A CN 1755645 A CN1755645 A CN 1755645A CN A2005100994501 A CNA2005100994501 A CN A2005100994501A CN 200510099450 A CN200510099450 A CN 200510099450A CN 1755645 A CN1755645 A CN 1755645A
- Authority
- CN
- China
- Prior art keywords
- execution
- act
- behavior
- test case
- test
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一种用于将执行行为从测试实例中分开并用包括执行行为库或与其通信的执行行为管理器来合并执行行为的系统和方法。该方法包括选择用于执行测试实例中的步骤或动作的执行行为,并将该执行行为发送给测试实例以便执行。此外,该系统和方法提供将全局和局部加权应用于执行行为选择过程,并允许用先前执行的行为来重新进行测试实例。
Description
相关申请
本申请涉及律师案号为MSFT-4149题为“Automated Test Case Verification thatis Loosely Coupled with Respect to Automated Test Case Execution”(“相对自动化测试实例的松散耦合的自动化测试实例校验”)的与本申请一起提交的美国专利申请,以及律师案号为MSFT-4150题为“Test Automation Stack Layering”(“测试自动化堆栈分层”)的与本申请一起提交的美国专利申请。
技术领域
本发明涉及测试用于应用的软件,尤其涉及从测试实例中提取执行行为。
背景技术
软件开发生命期中的几个主要阶段是设计阶段、编码阶段、代码完成阶段、α阶段、β阶段,以及最后向市场发行。在设计阶段期间,将解决软件产品的客户问题并定义软件产品的功能。通常,功能规范的完成标志着设计阶段的结束。编码阶段可能已开始。当代码写成但尚未调试时则进入代码完成阶段。α阶段标记产品稳定的时间点;即,已发现了大部分的主要缺陷。在β阶段,产品理想地没有了所有的主要缺陷;即所剩的缺陷应基本上无害。当产品通过最终的质量保证检查列表时,它已准备就绪向市场发行。
因为没有人想要不工作的软件,所以测试是生命期的重要部分并可跨越若干阶段。软件测试包括设计一测试实例(或更可能是测试实例集)、以测试实例为输入运行该软件、并检查以测试实例为输入的软件的性能是否产生预期结果。软件测试可由人手动进行,或通过程序来进行(称为自动化软件测试)。理想地,软件的测试在软件生命期的一开始就应开始。然而一般而言,不到完成了设计阶段软件根本不能测试,因为直到完成设计阶段才能确定期望结果。通常,在编码阶段,开发者在写代码时手动测试其代码。自动化软件测试通常在开发过程的较后期才会开始。
有时,所进行的唯一测试由开发者在他编写代码时手动测试来完成。然而测试自己工作的开发者可能会看不出在情绪上不那么投入代码的某些人会发现的缺陷。此外,开发者测试的范围通常限于其代码的功能以及其代码与有限数量的其它软件应用程序的结合。
针对这些缺点,许多软件开发机构具有常使用至少部分自动化的测试技术来测试软件的独立的软件测试组。通常,测试组通过编写和运行测试实例来测试各特征之间和应用程序之间的交互。使测试组及早地甚至在设计阶段就进入产品生命期能获得很多好处通常是无异议的,这些好处包括标识功能规范中的不一致、标识难以测试的区域及其它。然而一般而言,面对特征定义、实现和用户界面(UI)调整中的持续变化而保持每个测试实例通行所需的精力使该方法表现为不实用。因此,编写并运行测试实例通常是在产品开发末期仓促发生的。因而测试特别是自动化测试总是落后于进度曲线。如果有一种在一进入软件产品的生命期(理想地是在设计阶段期间)就能编写测试实例并采用自动化测试的方法将是有帮助的。
一整套测试实例的开发在任何时候都具挑战性。为了测试应用程序的特定特征,必需编写许多测试集。例如,应用程序可允许与一特征的许多交互模式:通过鼠标、键盘、数字化仪、可访问软件、通过程序等。因此,为了提供对该特征的综合性测试,一整套测试应包括通过鼠标与该特征交互(像用户一样键入文本)的一个测试集、通过键盘与该特征交互的一个集、通过数字化仪与该特征交互的一个集、通过可访问软件与该特征交互来调用缺省动作并以其它方式模拟可访问应用程序的一个集、通过应用程序的编码模型与该特征交互的一个集等。如果有一种确保一整套测试实例能提供特征或应用程序的综合性测试,并进一步减少为了提供综合性测试而必需编写的测试实例的总量的方法,这将是有帮助的。
此外,这些测试集的每一个中的许多或全部逻辑都与其它测试集中的逻辑相同,且通常许多或全部的结果处理校验也相同。因此,许多测试是相同或非常接近的,仅仅在执行选项上有变化。例如,对于上述全部多种形式的输入,期望结果可能是相同的。因此,对这些输入源的每一个编写测试实例通常需要编写用于执行每个输入源的测试的独立方法,并复制大多数剩余的测试脚本。重复编写仅具有极小变化的相同测试是乏味并耗时的。如果有一种消除或大大减少这种重复编码并减少必需编写的测试实例的总量的方法将是有帮助的。
编写用来确定运行测试实例的实际结果是否与期望结果相一致(常称为结果校验或校验)的代码常包括在测试实例内。改变特定结果校验的细节或添加新的结果校验通常需要更改每个测试实例。如果校验代码独立于测试实例,使该测试实例更易于理解以及校验代码更易于重复使用和维护将是有帮助的。
执行细节常难以被编码到测试实例中,需要设计阶段在编写测试实例之前就完成。如果有一种根据用户动作而不根据特定执行细节来定义测试实例使得测试实例能在软件开发生命期的较早期编写的方法,这将是有帮助的。
测试软件应用程序是应用程序的初始开发以及对该应用程序的更改的实现中的重要步骤。软件应用程序开发者在应用程序开发的测试阶段投入了大量精力。这样的测试有助于确保应用程序以期望方式响应于特定动作。
通常,专门为测试某一应用程序的某一组件而编码一测试实例。例如,用户界面(UI)测试实例可包含表示文本框、按键、菜单等的标识的代码,而应用程序编程接口(API)测试实例可直接与测试中的API通信。为这些执行方法的每一个编写一测试实例可能需要主要编写同一测试实例,而在各测试实例之间只有执行方式的变化。即,一测试实例可指定使用按键来测试应用程序的组件,另一个则指定使用一对象模型来测试组件,而又一个可使用键盘输入。除执行方法之外,这些测试实例及其实现的期望结果可能是相同的。
此外,测试实例可能需执行多个操作,其中每个操作能够使用众多执行方法的任一种来完成(例如用鼠标调用按键或菜单、用键盘来调用按键或菜单、用鼠标调用菜单以及用键盘调用按键等)。即使对于相对简单的应用程序,测试用于完成应用程序的多个操作的执行方法的全部可能组合所需的测试实例数量可能会很大。
开发这样的大量测试实例通过所有的执行方法测试应用程序是令人畏惧的。这样的任务可能需要编写众多的几乎相同的测试实例而只在执行方法上有变化。还有,测试实例维护可能比测试实例创建更为劳动强度大和耗时。当改变应用程序时,可应用测试实例可能需要更新以确保持续的兼容性。更新这么大量的为每个执行方法编写的测试实例会是令人畏惧的任务。
此外,某些执行方法在一测试实例上可能根本没有测试。测试实例可设计成确定应用程序是否做了特定动作而未导致非期望结果。测试实例可能并不关心看起来与测试实例的目的无甚关系的动作的执行方法。然而,如果即使测试的焦点是应用程序的某个其它方面但测试实例的无甚关系步骤仍由各种执行方法来测试,这是有利的。如果测试实例主要旨在例如测试应用程序画一蓝色长方形的能力,则测试实例可包括用于打开新文档的步骤。由于打开新文档与测试实例的目的无甚关系,测试实例可仅提供使用鼠标来完成的动作。然而,测试用于打开新文档的所有执行方法是有用的,因为例如可能发现使用键盘打开新文档会使蓝色长方形实际上变成红色、创建为圆、或以其它方式与期望结果不同。
因此,需要使用各种执行方法但实质上不需要为每种执行方法或可能的执行方法的每个组合编写相同的测试实例来测试应用程序。
发明内容
本发明使单个测试实例能由许多执行方法或执行方法的组合来执行。这些执行方法称为“执行行为”。本发明使单个测试实例能由各种执行行为来执行而不需要麻烦的、详细的测试实例代码来说明执行行为的众多组合。
本发明将执行行为与测试实例分开,并将执行行为的选择留给称为“执行行为管理器”的单独装置。测试实例或测试实例中的步骤可调用该执行行为管理器。执行行为管理器可选择执行行为并将该执行行为发送回去用于由测试实例执行。该执行行为管理器可基于为测试实例的先前调用发送的先前执行行为来选择一执行行为。执行行为管理器可跟踪先前提供的执行行为并遍历所有可用执行行为。这可提供用所有可用执行行为来测试应用程序的平衡。
此外,“全局”加权可由执行行为管理器应用于有关对适当执行行为的选择的所有判定中。例如,如果应用程序中的菜单已经重组,则可应用全局加权,告诉执行行为管理器80%的时间使用菜单而20%的时间使用工具栏按键。该全局加权可撤销执行行为管理器的选择每个执行行为相等次数的正常操作。
此外,通过“局部”加权测试实例可撤销全局加权并告诉执行行为管理器例如使用工具栏按键来执行测试实例的“打开新文档”步骤。如果例如工具栏最近已经重组且测试者想要确保它在特定测试实例中正常工作,则该撤销较为重要。或者局部加权可与全局加权合作地使用或与之无关地使用,从而在执行一行为时可考虑两种加权。
附图说明
结合附图阅读时,前面的发明内容和以下说明性实施例的详细描述能得到更好的理解。为了说明本发明各实施例,在附图中示出本发明的示例性结构;然而,本发明并不限于所揭示的特定方法和装置。在附图中:
图1是示出可实现执行行为从测试实例提取的测试实例实现的各方面的实例计算环境的框图;
图2示出用于对执行行为提取的测试实例实现的系统的示例实施例的框图;
图3示出示例执行行为的框图;
图4示出用于执行行为从测试实例提取的测试实例实现的方法的流程图;
图5A-5B示出用于执行行为从测试实例提取的测试实例实现的可选方法的流程图。
具体实施方式
纵览
将执行行为从测试实例中分开并将各执行行为合并在执行行为管理器中使应用程序能进行更完全的测试。本发明通过使单个测试实例能通过使用全部执行行为以及执行行为的组合来执行而提供更全面的测试。随着执行行为从测试实例的分离,执行行为管理器可继续对测试实例的每个步骤遍历全部执行行为。这样,可对每个步骤测试各个执行方法的众多组合,从而提供更大的综合性。本发明可对测试实例的每个步骤使能从执行方法的特定组合测试缺陷,其中该缺陷先前未受到注意。此外,本发明提供用准确的执行行为来重新进行该测试实例以确定该缺陷是否已修复。
示例计算环境
图1和以下讨论旨在提供一种本发明的示例实施例可在其中实现的适当计算环境的简要一般说明。然而,应当理解手持式、便携式以及所有类型的其它计算装置可预期用于本发明。尽管以下所述为通用计算机,但仅是一个示例。本发明还可在与网络服务器互操作并交互的瘦客户机上操作。因而,本发明的示例实施例可在其中仅含极少或最少客户机资源的网络化主机服务的环境中实现,例如其中客户机装置仅用作万维网的浏览器或接口的网络化环境。
尽管不是必需的,本发明可通过由开发者或测试者使用和/或包括在网络浏览软件中的应用程序编程接口(API)来实现,它将在诸如程序模块的由一个或多个计算机(例如客户机工作站、服务器、或其它装置)执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现具体抽象数据类型的例程、程序、组件、数据结构、以及其它类型的结构。通常,程序模块的功能可按需在各个实施例中组合或分布。此外,本领域技术人员将理解本发明可在其它计算机系统配置中实践。适用于本发明的其它众所周知的计算系统、环境和/或配置包括,但不限于,个人计算机(PC)、自动取款机(ATM)、服务器计算机、手持式或膝上型装置、多处理器系统、基于微处理器的系统、或可编程的电子消费品、网络PC、小型计算机、大型计算机等等。本发明的实施例还可在任务由经通信网络或其它数据传输介质链接的远程处理装置执行的分布式计算环境中实践。在分布式计算环境中,程序模块可置于包括存储器存储装置的本地和远程计算机存储介质中。
因而图1示出本发明可在其上实现的适当计算系统环境100的示例,尽管如上阐明的,该计算系统环境100仅是适当计算环境的一个示例,并非旨在提出对本发明使用或功能性范围作任何限制。计算环境100也不应被解释为对示例性操作环境100中所示的任一组件或其组合有任何依赖性或任何需求。
参照图1,用于实现本发明的示例系统包括以计算机110形式的通用计算装置。计算机110的组件可包括,但不限于,处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线架构的任一种的本地总线。作为示例,而非限制,这些架构包括工业标准架构(ISA)总线、微信道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为Mezzanine总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化多功能光盘(DVD)或其它光学存储技术、磁盒、磁带、磁盘存储器或其它磁性存储设备、或任何其它可用于存储所需信息并可由计算机110访问的介质。通信介质通常在诸如载波或其它传输机制的已调制数据信号中体现计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语“已调制数据信号”意指以在信号中编码信息的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直接连线的有线介质,和诸如声学、射频(RF)、红外线和其它无线介质的无线介质。以上任何介质的组合也应包括在计算机可读介质的范围中。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机可读介质。包含有助于如起动时在计算机110内元件间传送信息的基本例程的基本输入/输出系统(BIOS)133通常存储在ROM 131中。RAM 132通常包含可被处理单元120立即访问和/或当时正被操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136、和程序数据137。RAM 132可包含其它数据和/或程序模块。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图1示出了读取和写入不可移动、非易失性磁性介质的硬盘驱动器141,读取和写入可移动、非易失性磁盘152的磁盘驱动器151,读取和写入可移动、非易失性光盘156,诸如CD-ROM或其它光学介质的光盘驱动器155。其它也在示例性计算环境中使用的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,如磁带、闪存卡、数字化多功能光盘、数字化录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140的不可移动存储器接口与系统总线121连接,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150的可移动存储器接口与系统总线121连接。
如上所述并如图1所示的驱动器及其相关联的计算机存储介质为计算机110提供计算机可读指令、数据结构、程序模块、和其它数据的存储。在图1中,例如,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146、和程序数据147。注意这些组件可以与操作系统134、应用程序135、其它程序模块136、和程序数据137相同或不同。在此给予操作系统144、应用程序145、其它程序模块146、和程序数据147的编号不同至少说明他们是不同的副本。用户可通过诸如键盘162、以及通常称为鼠标、跟踪球或触摸板等的定位装置161的输入装置向计算机110输入命令和信息。其它输入装置(未示出)可包括话筒、游戏杆、游戏垫、卫星接收天线、扫描仪等等。这些和其它输入设备常常通过与系统总线121耦合的用户输入接口160与处理单元120相连,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口和总线结构连接。
监视器191或其它类型的显示设备也可通过诸如视频接口190的接口与系统总线121相连。除监视器191以外,计算机还可包括诸如扬声器197和打印机196的其它输出设备,它们通过输出外围接口195相连。
计算机110可以在使用与一台或多台远程计算机,诸如远程计算机180的逻辑连接的网络化环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,而且通常包括上述与个人计算机110相关的许多或全部组件,尽管在图1中仅图示了存储器存储设备181。图1中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这样的网络化环境在办公室、企业范围计算机网络、内联网和因特网上是常见的。
当用于LAN网络化环境中时,计算机110通过网络接口或适配器170与LAN171连接。当用于WAN网络化环境中时,计算机110通常包括调制解调器172或其它用于在诸如因特网的广域网173中建立通信的装置。可以是内置式或外置式的调制解调器172与系统总线121通过用户输入接口160或其它适当机制连接。在网络化环境中,与计算机110相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图1示出了驻留于远程计算机180中的远程应用程序185。应当理解,所示网络连接是示例性的,且也可以使用其它用于在计算机间建立通信连接的方法。
本领域技术人员可理解,计算机110或其它客户机装置可用作计算机网络的一部分。这样,本发明适合具有任何数量存储器或存储单元的任何计算机系统、以及在任何数量存储单元或存储体上发生的任何数量的应用程序和进程。本发明一实施例可应用于带有可用于网络环境的具有远程或本地存储器的服务器计算机和客户计算机的环境。本发明还可应用于具有编程语言功能、编译和执行功能的单机计算装置。
通过执行行为提取来测试应用程序的系统和方法
图2示出根据本发明一实施例用于对执行行为提取的测试实例实现的系统5的框图。系统5可包括以下的一个或多个:测试执行器50、测试实例20、行为管理器30、寄存器31、以及行为自动化库40。
测试执行器50可以是一个测试执行器50a或可以是多个测试执行器50a-c等。每个测试执行器都驻留于一个或多个计算机上,每个计算机可以是参照图1所述的计算机110。测试执行器50a可以都运行诸如测试实例20的同一测试实例或可各自运行不同的测试实例。此外,测试执行器50a-c可与一行为管理器30通信或可各自与相应行为管理器(未示出)通信。测试执行器50a-c可通过用户(未示出)例如在测试执行器上按压按键来执行测试实例20。或者,测试执行器50a-c可以是调用开始事件来执行测试实例20的实验室测试自动化项目的一部分。该测试执行器50a-c也可通过其它方式来执行测试实例20。
测试实例20可测试应用程序的一个或多个组件或属性。应用程序可以是任何进程、机器、制造品、合成品、程序、软件、硬件、装置、机制、或材料或其任何改进。例如,应用程序可以是在任何计算系统或环境上运行的软件程序。还有例如,应用程序可以是计算机硬件。相反,应用程序可以是一种门测试机制,其中大槌在门把手上敲打以测试门把手、附在门上的铰链的强度、弹性、或可操作性。应用程序可以是在首次开发中、先前应用程序的更新版本、终端用户已经用某些方法更改的先前发行的应用程序等。
测试实例20可执行应用程序的功能、集成、或其它测试。功能测试可包括对应用程序的特定功能组件的测试。在功能级别上,组件可包括每个都需要测试的众多行为。此外,对组件的执行行为的每个组合可能都需要测试以确保所有可能组合的测试并覆盖所有不同可能。集成测试对两个或多个交互组件组合、一起工作、并互相影响的方式加以测试。
测试实例20可包括或需要一个或多个执行行为的执行。“执行行为”是根据应用程序或要由应用程序执行的动作的描述。执行行为可以是例如“打开新文档”或“画出一蓝色长方形”或“用大槌敲门把手”。可有不同类型的执行行为。
一类执行行为只能具有一种可能执行方法。例如,这样一种执行行为可能需要应用程序通过按压键盘上的空格键来调用文本框上的按键。由于只能用一种方式执行该行为,该执行行为可标记为“实施”(“do it”)行为。在执行之前无需任何其它信息或动作就可执行“实施”行为。“实施”行为包括在系统5中作为测试实例20的“实施”行为。执行行为可以是由其它子执行行为组成的父执行行为。因为父执行行为由可对其作选择的多个子执行行为组成,这样的父执行行为可称为“选择任一”(“choose any”)行为。该父执行行为可以是“选择任一”行为并可使用其它执行行为来执行。
测试实例20可包括对“选择任一”行为21的调用,该行为请求执行行为管理器从行为自动化库40中选择一行为。测试实例20还可包括对“实施”行为22的调用,该行为启动存储在行为自动化库40中的“实施”行为的执行。
图3是示出几个实例执行行为并示出实例执行行为之间关系的框图200。“选择任一”行为210可用来打开新文档。打开新文档的“选择任一”行为可通过三个子执行行为的任一个来完成。“选择任一”行为210的一个子执行行为是使用鼠标打开新文档的另一个“选择任一”行为215。“选择任一”行为210的另一个子执行行为可以是“实施”行为220,它可通过按压键盘上的空格键调用文本框上的按键来打开新文档。“选择任一”行为210的第三个子执行行为是如下所述的“以任何顺序执行”(“execute in any sequence”)行为230。如下所述,执行行为管理器30可选择子执行行为215、220、230之一用于执行“选择任一”行为210。
如上所述,“选择任一”行为210的第一个子执行行为本身是使用鼠标打开新文档的“选择任一”行为215。该“选择任一”行为215可包括两个子行为。一个子行为是使用鼠标点击某一按键来打开新文档的“实施”行为217。如果执行行为管理器30选择“实施”行为217,则该行为被发送回“选择任一”行为210以便执行。或者,执行行为管理器30可查看“选择另一”行为215的另一个子行为,它可以是使用鼠标调用菜单来打开新文档的“选择另一”行为216。
“选择另一”行为216还可包括两个子行为。一个子行为可以是使用鼠标调用菜单并点击菜单上的“新文件”按键来打开新文档的“实施”行为218。第二子行为可以是使用鼠标调用菜单并使用直接调用应用程序菜单项的键盘“热键”或记忆快捷键来打开新文档的“实施”行为219。热键可调用菜单上的“新文件”按键。因此“实施”行为219可以是“选择任一”行为210的“曾孙”,并可以是选择执行“选择任一”行为210的“实施”行为。
除了“实施”和“选择任一”行为之外,还可以有其它执行行为。可以有选择所有子行为以任何顺序执行的“以任何顺序执行”行为230。例如,如果“以任何顺序执行”行为包括三个子行为-“实施”行为231、“实施”行为232和“实施”行为233,则执行行为管理器30可将每个子“实施”行为231、232和233发送到“选择任一”行为210以便以任何顺序执行。
此外,还可以有未在图3中示出的其它执行行为。可有一种需要选择子行为按要求的顺序执行的“按顺序执行”(“execute in sequence”)行为。还有需要满足某些条件才能执行一个或多个执行行为的“条件实施”(“do until”)行为。例如“条件实施”行为可要求它执行了20次后才执行子行为。应理解,在此所述的执行行为是执行行为的示例,且本领域技术人员将理解可有其它在本发明实施例中使用的执行行为。
每个执行行为可包含特性或属性。这些特性或属性可用例如C#或.NET特性机制来编写。该机制可将各种属性应用于这些行为,包括用于这些行为的这些方法。例如,一属性可指定使用鼠标来执行执行行为,而另一属性可指定使用键盘来执行。
执行行为可以不“知道”它们是诸如“选择任一”行为的更大父行为的一部分。然而,执行行为可知道它们的子行为。这也可通过例如C#或.NET特性来定义。即,可将特性赋予将其标记为“选择任一”行为的执行行为。该特性还可提供带有其子行为的“选择任一”行为。
再参看图2,如上所述,测试示例20可包括多个执行行为。例如,用于图形应用程序的测试示例20可调用在文档的特定位置绘制蓝色长方形。这种测试示例20可包括打开新文档、在特定位置画一长方形、以及将该长方形涂成蓝色的步骤。该测试实例的每个步骤可以是“选择任一”行为21、“实施”行为22、或任何其它类型的执行行为。例如,打开新文档的步骤可以是包含诸如使用鼠标调用菜单来打开新文档、或使用鼠标调用工具栏上工具来打开新文档、或使用键盘调用菜单来打开新文档的“实施”行为的“选择任一”行为21。绘制并涂色长方形的步骤都可以是需要由各个子“实施”行为调用项目模板或菜单的“选择任一”行为21。可由例如观看计算机屏幕有困难的用户使用菜单、键盘、对象或可访问应用程序编程接口来调用菜单。可使用键盘来发出“热键”或箭头键以在菜单上导航。
在执行测试实例20之后,如果步骤包括“实施”行为22,则测试实例20可执行该行为。如果例如只有一种完成该步骤的执行方法则测试实例可包含一“实施”行为步骤。例如,步骤需要通过按压键盘上的“enter”键来调用一按键。因为只有一种执行该行为的方法,测试实例20无需调用执行行为管理器就可执行该“实施”行为。
然而,如果步骤包括例如“选择任一”行为21,则执行行为管理器30可选择“选择任一”行为21的子执行行为并将选定的行为发送给父“选择任一”行为以便执行。
执行行为管理器30可驻留于参照图1所述的计算机110上。执行行为管理器30可包含执行行为的寄存器31。执行行为寄存器31可包括诸如“选择任一”行为21的父执行行为以及相关子行为的列表。使用寄存器31,执行行为管理器30可确定哪个或哪些子行为属于例如父“选择任一”行为21。
每个执行行为或每个执行行为的编码可位于与执行行为管理器30通信的行为自动化库40中。执行行为管理器30可负责处理来自测试实例20的“选择任一”行为21的对选择用于执行的子行为的请求。
如所述,例如在执行包含“选择任一”行为21的测试实例20之后,“选择任一”行为21可调用执行行为管理器30以便该管理器30选择一子(或孙等)“实施”行为并向“选择任一”行为21将其送回。该行为管理器可审查与父“选择任一”执行行为相关联的子行为列表并选择一个子执行行为。在完成该操作的过程中,执行行为管理器30可使用例如反射(reflection)方法。反射方法可包括使能动态编程并涉及通过程序查看诸如执行行为的对象的特性的一种方法。通过该方法,执行行为管理器30可查看诸如执行行为的对象并确定其名字、执行行为所支持的方法、以及其属性或特性。执行行为管理器30然后可确定例如“选择任一”行为21的子执行行为的属性或特性,并选择子行为便于执行(假设子行为是“实施”行为)。通过使用反射方法,可例示子行为并将其传回“选择任一”行为21以便执行。如果子执行行为本身也是“选择任一”行为,则重复该顺序直到选择与“选择任一”行为21相关的“实施”行为。或者,如果寄存器是数据库或其它数据存储器,则如果寄存器用一功能指针集初始化,那么反射方法就无需执行一执行方法了。此外,本领域技术人员将理解,寄存器在测试实例执行之前就全部初始化了,而不是在测试实例执行期间按要求初始化。
执行行为管理器30可选择在队列中下一个要为“选择任一”行为21执行的子执行行为。例如,包含“选择任一”行为21的测试实例20第一次运行时,执行行为管理器30可选择需要例如使用鼠标来调用菜单来打开新文档的“实施”行为。当测试实例20再次运行时,执行行为管理器30可接着选择需要使用键盘热键来打开新文档的“实施”行为。这样执行行为管理器30可自动地交替变化父“选择任一”行为21的执行方法而无需测试实例20指定执行方法。执行行为从测试实例20的提取允许等量地测试每种执行方法而无需编写不同的测试实例20以说明执行测试实例20的不同方法。当然也可构想各种其它选择算法。
应注意,即使父行为是测试实例20的“选择任一”行为21,子执行行为并不总是被启用且可由执行行为管理器30选择。例如,“选择任一”行为21有5个不同的绘制长方形的子“实施”行为。一个子“实施”行为是用鼠标徒手画长方形。如果测试实例20需要画精确尺寸的长方形,则如果执行行为管理器30在查看行为的属性或特性时确定该子执行行为并非被设计用于画精确尺寸的长方形,不启用徒手画长方形的子“实施”行为。因此,执行行为管理器可通过查看执行行为的属性或特性来确定不应启用哪个“实施”行为。或者,执行行为管理器30可通过例示“实施”行为并确定该子执行行为是否能画精确尺寸的长方形(沿用上例)来确定不应启用哪个“实施”行为。或者,执行行为管理器可检查附于子行为的属性或在其它地方查找以找到用来确定启用哪个行为的方法。
可独立向执行行为管理器30提供全局加权因子,从而作执行行为管理器30可更经常地选择一子“实施”行为或排除其它子“实施”行为。执行行为管理器30可基于与每个行为相关联的权重来判定向测试示例20的“选择任一”行为21发送哪些行为。执行行为管理器可基于这些权重考虑来构建一个动作的全矩阵。这样,测试者可按需比其它执行行为更经常地测试某些执行行为。如果例如在应用程序中已更改了键盘操作,则这些加权是有用的。当“选择任一”行为具有指向鼠标输入和键盘输入的子“实施”行为时,可应用全局加权以便执行行为管理器可选择例如80%的时间、100%的时间、或96.3%的时间调用键盘输入的子行为。这样,键盘输入可比未应用加权得到更全面的测试。此外,如果热键在应用程序中不工作,则可应用全局加权来告诉执行行为管理器30对任何测试实例都不要使用热键。这样,可执行测试实例而不会产生由不工作的热键所导致的失败。
局部加权可用来撤销全局加权。局部加权可包括为测试实例20的一部分,并可应用于特定行为而不是应用于行为自动化库40中的所有行为。例如,如果全局加权排除使用热键,且测试者想要在测试实例的一个步骤期间使用热键,则可在测试实例20内使用局部加权来告诉执行行为管理器30选择包括使用热键的子“实施”行为。这样,局部加权撤销了任何可应用的全局加权。
在本发明的另一实施例中,执行行为管理器30可允许测试实例20执行的“可重新进行性”(replayability)。这样,可执行回归(regression)测试-以同样的方法测试先前导致失败或缺陷的应用程序以确定该问题是否已解决。执行行为管理器30可记忆或记录在测试实例20期间执行的执行行为。这样,在被调用时,执行行为管理器30就能够完全像先前执行地一样来重新进行测试实例20。如果测试实例导致失败,并且已作改变来修复问题,测试者想要执行回归测试以确保已解决了该问题。为了确保已解决了该问题,测试实例20的“选择任一”行为21可能想要使用由执行行为管理器30发送的在导致失败的测试实例运行期间的同一子“实施”行为来执行。因此执行行为管理器30可记录在先前测试实例执行期间由执行行为管理器30发送的每个“实施”行为,并还记录执行这些“实施”行为的顺序。
此外,应注意执行行为管理器30可在多个客户机上运行的多个测试实例上工作。例如,在测试应用程序时,一次可有每个运行5000个对于该应用程序的测试实例的20个计算机。在本发明一实施例中,可有一执行行为管理器与执行测试实例的所有客户机通信。在一可选实施例中,每个客户机可包括一个执行行为管理器30。
图4示出根据本发明一实施例用于执行行为从测试实例中提取的测试实例实现的方法250的流程图。在步骤251,测试实例20的“选择任一”行为21可通知执行行为管理器30。可请求执行行为管理器选择一子执行行为—“实施”行为,并将该子执行行为发送给“选择任一”行为21。在步骤252,执行行为管理器30可查看“选择任一”行为21的子行为。在步骤253,执行行为管理器30可选择一子行为并将该选定子行为发送给父“选择任一”行为以便执行。
图5A-5B示出根据本发明另一实施例用于执行行为从测试实例中提取的测试实例实现的方法300的流程图。方法300可从具有测试实例开始事件的步骤305开始。开始事件可以是测试者按压诸如图2测试执行器50a的客户计算机上按键,这可向测试执行器50a发送信号以运行测试实例20。或者开始事件可以是例如监视运行测试实例20或多个测试实例的诸如测试执行器50a-c的一个或多个客户计算机的实验室自动化过程。该实验室自动化过程还可创建或初始化执行行为管理器30,从而执行行为管理器30准备好遵照来自测试实例20或多个测试实例的请求行事。
在开始事件之后,可在步骤310执行测试实例20。测试实例可例如指向图形应用程序并可包括例如打开新文档、在新文档上绘制长方形、以及将该长方形涂成蓝色的步骤。应用于测试实例20的每个步骤(即打开新文档、绘制长方形、以及将该长方形涂成蓝色)的方法300都相同。在步骤315,执行测试实例的步骤。
如果测试实例20的步骤是“实施”行为22,则测试实例20可在步骤320执行该执行行为而不涉及执行行为管理器30。如果该步骤是例如“选择任一”行为21,则该“选择任一”行为21可在步骤325请求执行行为管理器30选择一子“实施”行为以便执行。例如,测试实例20的用于创建新文档的步骤可以是具有两个子“实施”行为的“选择任一”行为,一个子行为用于使用鼠标调用菜单来创建新文档而另一个用于使用键盘调用菜单来创建新文档。
在步骤330,执行行为管理器30可在行为寄存器31上搜索该“选择任一”行为。在一可选实施例中,执行行为管理器30可通过查看执行行为的图形或属性来确定“选择任一”行为21的子行为。
在步骤335-350,执行行为管理器30可确定应向“选择任一”行为21发送哪个子行为以便执行。执行行为管理器在决定的过程中可考虑众多因素。执行行为管理器可在步骤335确定是否不应允许任一子行为。即,如果测试实例的该步骤是通过执行“选择任一”行为的子行为之一而不能满足“选择任一”行为的,则执行行为管理器可确定不应允许该子行为。如上所释,这种情形的一个示例是包括5个子“实施”行为的用于绘制长方形的“选择任一”行为21。子“实施”行为之一是用鼠标徒手画长方形。如果测试实例20想要画精确尺寸的长方形,则如果执行行为管理器30确定该子执行行为并非被设计用于画精确尺寸的长方形,不启用徒手画长方形的子“实施”行为。
然后,在步骤340,执行行为管理器30可确定测试实例20或任何其它机制是否已向选择子“实施”行为施加了一局部加权。如果有局部加权,则执行行为管理器可应用该加权。在步骤345,执行行为管理器30可确定在选择子行为之前是否应该应用任一全局加权。如果局部和全局加权都应用于执行行为的同一属性,则执行行为管理器30可在选择子行为时考虑两种加权。例如,全局加权可要求20%的时间使用鼠标。同时局部加权可要求50%的时间使用鼠标。执行行为管理器30在选择子行为时可组合或考虑两种加权。此外,应理解全局和局部加权可以是互不相关的。即,全局加权可要求不使用鼠标而局部加权可要求不使用键盘。执行行为管理器30可在选择子行为时考虑互不相关的加权。
在应用适当权重之后或者如果没有可应用的全局加权,则执行行为管理器可在步骤350选择一子行为。该选择可基于先前的选择。例如,如果先前选定的子行为是使用鼠标调用菜单来打开一新文档,则执行行为管理器30可选择使用键盘调用菜单来打开新文档的不同子行为。这样,执行行为管理器30可提供所有执行行为的测试而无需将各个执行行为写入每个测试实例。此外,测试实例甚至可不知道使用哪种执行方法来打开新文档而只知道新文档被打开。
然而,如果对执行行为管理器30对子行为的选择施加了全局加权,则执行行为管理器30可将该加权应用于它对适当子行为的选择中。例如,如果全局加权提供80%的时间应选择使用鼠标的执行行为而20%的时间应选择使用键盘的执行行为则执行行为管理器30应遵从该全局加权进行它的选择。
在步骤350确定应选择哪个子行为之后,执行行为管理器30然后可在步骤355查看行为自动化库40以确定是否先前已创建了选定子行为。或者,执行行为管理器30可在行为自动化库40中查找编译时可创建子执行行为的功能指针。如果还未创建子执行行为或者没有功能指针,则在步骤360执行行为管理器可创建选定的子执行行为。例如,如果在步骤350执行行为管理器选择使用鼠标调用菜单来打开新文档的子行为,且在步骤355执行行为管理器确定使用鼠标调用菜单来打开新文档的该子执行行为不存在,则在步骤360执行行为管理器30可创建该子行为。如上所释,执行行为管理器30可通过使用执行行为的概况文件或特性并例示存储在行为自动化库中的代码来创建“实施”执行行为。如果在步骤355,执行行为管理器30确定该子行为存在,则执行行为管理器可忽略步骤360。或者,应理解为步骤355是不必要的。如果从外部数据存储器来填充寄存器31,则步骤355是必要的。然而,如果寄存器31在测试实例执行之前或期间动态填充,则执行行为管理器30可假设寄存器31不包括不存在的任何行为。
在选择存在的或新创建的子行为之后,执行行为管理器30可在步骤365记录对子行为的选择。如上所释,这样,执行行为管理器30能够在需要时完全向先前执行一样地重新执行测试实例20。这在测试应用程序以确定是否消除缺陷时是重要的。
在步骤370,执行行为管理器可将选定的子“实施”行为发回测试实例20的父“选择任一”行为21以便执行。在步骤375,测试实例20的“选择任一”行为21可执行由执行行为管理器30发送的行为。或者,测试实例20剩下的步骤也可以方法300步骤315-375中所示的相似方式来执行。
在此所述的各种技术可用硬件、软件、或在适当时用两者的组合来实现。因而,本发明的方法和装置或其某些方面或部分可采取包括在诸如软盘、CD-ROM、硬盘、或任何其它机器可读的存储介质的有形介质中的程序代码(即指令)的形式,其中当程序代码由诸如计算机的机器载入并执行时,该机器变成实践本发明的装置。程序代码在可编程计算机上执行的情形中,计算装置通常包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储单元)、至少一个输入装置、以及至少一个输出装置。可例如通过使用数据处理API等利用本发明的领域专用编程模型方面的创建和/或实现的一个或多个程序,最好用高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,如果需要程序也可用汇编或机器语言来实现。在任何情形中,语言可以是编译或解释语言,并可与硬件实现相结合。
尽管本发明已结合各附图的优选实施例进行了描述,可以理解可使用其它实施例或可对所述实施例作更改和添加来执行本发明的相同功能而不从其背离。在说明书中,提供了处理蓝色长方形的主要示例。该示例和任何其它示例是为加强理解而提供的。本发明决不限于在此提供的示例中。此外,本发明一实施例可包括在涉及任何应用程序的涉及任何进程、机器、制造、合成品、程序、软件、硬件、装置、机制、或材料、或其任何改进的任何测试中因此,本发明应不限于任一单个实施例,而应根据所附权利要求在宽度和范围内作解释。
Claims (31)
1.一种用于选择用于执行一动作的执行行为的系统,其特征在于,包括:
一执行行为管理器,用于选择所述执行行为;以及
一行为自动化库,用于向所述执行行为管理器提供有关所述执行行为的数据。
2.如权利要求1所述的系统,其特征在于,还包括一行为寄存器,所述行为寄存器包括多个执行行为的列表。
3.如权利要求2所述的系统,其特征在于,所述执行行为管理器确定用于执行来自所述行为寄存器的所述动作的可能执行行为。
4.如权利要求1所述的系统,其特征在于,所述动作由多个执行行为之一执行。
5.如权利要求1所述的系统,其特征在于,所述动作通过执行多个执行行为的序列来执行。
6.如权利要求5所述的系统,其特征在于,所述执行行为管理器以任何顺序执行所述序列。
7.如权利要求1所述的系统,其特征在于,所述执行行为管理器基于全局加权和局部加权的至少之一选择所述执行行为。
8.如权利要求7所述的系统,其特征在于,所述局部加权撤销所述全局加权。
9.如权利要求1所述的系统,其特征在于,所述执行行为管理器基于先前选定的执行行为选择所述执行行为。
10.如权利要求1所述的系统,其特征在于,所述执行行为管理器选择被允许的所述执行行为。
11.如权利要求1所述的系统,其特征在于,所述动作是功能测试、功能测试中的步骤、集成测试、以及集成测试中的步骤的至少之一。
12.如权利要求1所述的系统,其特征在于,所述执行行为管理器例示由所述行为自动化库所提供的数据以创建所述选定执行行为。
13.如权利要求1所述的系统,其特征在于,所述执行行为包括若干属性。
14.如权利要求1所述的系统,其特征在于,所述执行行为管理器记录一选定的执行行为。
15.如权利要求14所述的系统,其特征在于,所述执行行为管理器重新进行所述选定的执行行为。
16.如权利要求1所述的系统,其特征在于,所述执行行为包括通过鼠标、键盘、可访问应用程序编程接口、以及对象模型的至少之一的输入。
17.一种具有存储其上的数据结构的计算机可读介质,其特征在于,包括:
存储在行为自动化库中的一数据字段,包括表示多个执行行为的数据,其中每个执行行为执行由测试实例应用的动作。
18.如权利要求17所述的计算机可读介质,其特征在于,所述数据结构向执行行为管理器提供表示执行行为的数据。
19.一种用于选择执行一动作的执行行为的方法,其特征在于,包括:
接收所述动作;
查看用于执行所述动作的多个执行行为;以及
从所述多个执行行为中选择一个执行行为。
20.如权利要求19的方法,其特征在于,所述多个执行行为由行为寄存器提供。
21.如权利要求19的方法,其特征在于,所述动作是测试实例中的一个步骤。
22.如权利要求21的方法,其特征在于,还包括将所述选定的执行行为发送给所述测试实例。
23.如权利要求19的方法,其特征在于,所述选择步骤基于局部加权和全局加权的至少之一。
24.如权利要求19的方法,其特征在于,还包括创建所述选定执行行为。
25.一种用于选择执行一动作的执行行为的方法,其特征在于,包括:
接收所述动作;
查看用于执行所述动作的多个执行行为;以及
选择执行行为预定序列的每一个。
26.如权利要求25的方法,其特征在于,所述执行行为系列中的每个执行行为按预定顺序选择。
27.一种具有用于执行各步骤的计算机可执行指令的计算机可读介质,其特征在于,所述步骤包括:
接收来自测试实例的一动作;
查看能够执行所述动作的多个执行行为。
28.如权利要求27所述的计算机可读介质,其特征在于,还具有用于执行从所述多个执行行为中选择一个执行行为的步骤的计算机可执行指令。
29.如权利要求28所述的计算机可读介质,其特征在于,还具有用于执行将所述选定执行行为发送到所述测试实例的步骤的计算机可执行指令。
30.如权利要求27所述的计算机可读介质,其特征在于,还具有用于执行选择执行行为预定系列的每一个的步骤的计算机可执行指令。
31.如权利要求30所述的计算机可读介质,其特征在于,所述执行行为系列中的每个执行行为按预定顺序选择。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/953,238 | 2004-09-29 | ||
US10/953,238 US7457989B2 (en) | 2004-09-29 | 2004-09-29 | System and method for selecting test case execution behaviors for reproducible test automation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1755645A true CN1755645A (zh) | 2006-04-05 |
Family
ID=35448217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005100994501A Pending CN1755645A (zh) | 2004-09-29 | 2005-08-29 | 选择用于复验自动化的测试实例执行行为的系统和方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7457989B2 (zh) |
EP (1) | EP1643369A3 (zh) |
JP (1) | JP5258152B2 (zh) |
KR (1) | KR101153028B1 (zh) |
CN (1) | CN1755645A (zh) |
AU (1) | AU2005203508B2 (zh) |
CA (1) | CA2517206A1 (zh) |
MX (1) | MXPA05009208A (zh) |
RU (1) | RU2390829C2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105431821A (zh) * | 2013-07-30 | 2016-03-23 | 苹果公司 | 撤销系统 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7823132B2 (en) * | 2004-09-29 | 2010-10-26 | Microsoft Corporation | Automated test case verification that is loosely coupled with respect to automated test case execution |
US7555549B1 (en) * | 2004-11-07 | 2009-06-30 | Qlogic, Corporation | Clustered computing model and display |
US7698691B2 (en) * | 2005-09-20 | 2010-04-13 | Microsoft Corporation | Server application state |
US9064038B2 (en) * | 2006-08-29 | 2015-06-23 | International Business Machines Corporation | Method and system for combining multiple benchmarks |
US7823130B2 (en) * | 2006-09-22 | 2010-10-26 | Sap Ag | Testing machine-readable instructions |
US7779303B2 (en) * | 2007-02-27 | 2010-08-17 | Cisco Technology, Inc. | Targeted regression testing |
US7788057B2 (en) | 2008-01-23 | 2010-08-31 | International Business Machines Corporation | Test apparatus and methods thereof |
US8332825B2 (en) * | 2008-06-26 | 2012-12-11 | Microsoft Corporation | Dynamically monitoring application behavior |
US7966521B2 (en) * | 2008-07-14 | 2011-06-21 | International Business Machines Corporation | Light weight and high throughput test case generation methodology for testing cache/TLB intervention and diagnostics |
JP5513263B2 (ja) * | 2010-06-03 | 2014-06-04 | キヤノン株式会社 | 情報処理装置及びその制御方法、プログラム |
US8856749B2 (en) * | 2010-09-28 | 2014-10-07 | Microsoft Corporation | Multi-path brokered test automation execution |
US8930761B2 (en) | 2012-08-30 | 2015-01-06 | International Business Machines Corporation | Test case result processing |
US8861284B2 (en) | 2012-09-18 | 2014-10-14 | International Business Machines Corporation | Increasing memory operating frequency |
KR101410099B1 (ko) * | 2012-12-05 | 2014-06-25 | 경북대학교 산학협력단 | 단위 테스트 케이스 재사용 기반의 함수 테스트 장치 및 그 함수 테스트 방법 |
JP6102448B2 (ja) * | 2013-04-10 | 2017-03-29 | 富士通株式会社 | 検証支援プログラム、検証支援装置、および検証支援方法 |
US9311223B2 (en) * | 2013-05-21 | 2016-04-12 | International Business Machines Corporation | Prioritizing test cases using multiple variables |
RU2611961C2 (ru) * | 2014-11-14 | 2017-03-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система регрессионного тестирования функциональности веб-страницы, машиночитаемый носитель информации |
US10649740B2 (en) * | 2015-01-15 | 2020-05-12 | International Business Machines Corporation | Predicting and using utility of script execution in functional web crawling and other crawling |
US9703683B2 (en) * | 2015-11-24 | 2017-07-11 | International Business Machines Corporation | Software testing coverage |
US10037263B1 (en) * | 2016-07-27 | 2018-07-31 | Intuit Inc. | Methods, systems, and articles of manufacture for implementing end-to-end automation of software services |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5335342A (en) * | 1991-05-31 | 1994-08-02 | Tiburon Systems, Inc. | Automated software testing system |
JPH06149618A (ja) * | 1992-11-10 | 1994-05-31 | Matsushita Electric Ind Co Ltd | 自動実行装置および自動実行方法 |
US5513315A (en) * | 1992-12-22 | 1996-04-30 | Microsoft Corporation | System and method for automatic testing of computer software |
US6067639A (en) * | 1995-11-09 | 2000-05-23 | Microsoft Corporation | Method for integrating automated software testing with software development |
JP2624226B2 (ja) * | 1996-04-12 | 1997-06-25 | 日本電気株式会社 | 割込みコントローラ |
JPH10301809A (ja) * | 1997-04-23 | 1998-11-13 | Nippon Telegr & Teleph Corp <Ntt> | Gui操作手順の自動生成方法 |
JPH1165888A (ja) * | 1997-08-19 | 1999-03-09 | Casio Comput Co Ltd | ソフトウェア試験装置および記憶媒体 |
US6587969B1 (en) * | 1998-06-22 | 2003-07-01 | Mercury Interactive Corporation | Software system and methods for testing the functionality of a transactional server |
JP2001229047A (ja) * | 2000-02-14 | 2001-08-24 | Toshiba Corp | サーバプロセス試験システム、サーバプロセス試験フレームワークを記録したコンピュータ読み取り可能な記録媒体、およびサーバプロセス試験プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6505324B1 (en) * | 2000-10-05 | 2003-01-07 | International Business Machines Corporation | Automated fuse blow software system |
US7117411B2 (en) * | 2000-10-27 | 2006-10-03 | Tekelec | Methods and systems for testing communications network components |
US6986026B2 (en) | 2000-12-15 | 2006-01-10 | Intel Corporation | Single-step processing and selecting debugging modes |
JP2002259159A (ja) | 2001-02-27 | 2002-09-13 | Hitachi Kokusai Electric Inc | Guiソフトウエアのテストツール用シナリオデータの生成方法 |
CA2358563A1 (en) * | 2001-10-05 | 2003-04-05 | Ibm Canada Limited - Ibm Canada Limitee | Method and system for managing software testing |
US6993748B2 (en) * | 2001-10-26 | 2006-01-31 | Capital One Financial Corporation | Systems and methods for table driven automation testing of software programs |
US6871327B2 (en) * | 2002-03-04 | 2005-03-22 | Sun Microsystems, Inc. | Method and apparatus for extending coverage of GUI tests |
JP2004005399A (ja) * | 2002-04-05 | 2004-01-08 | Sharp Corp | ソフトウェアのテスト方法および装置 |
US7159021B2 (en) * | 2002-06-27 | 2007-01-02 | Microsoft Corporation | System and method for testing peer-to-peer network applications |
US7165191B1 (en) * | 2004-01-29 | 2007-01-16 | Sun Microsystems, Inc. | Automated verification of user interface tests on low-end emulators and devices |
-
2004
- 2004-09-29 US US10/953,238 patent/US7457989B2/en not_active Expired - Fee Related
-
2005
- 2005-08-05 AU AU2005203508A patent/AU2005203508B2/en not_active Ceased
- 2005-08-10 KR KR1020050073232A patent/KR101153028B1/ko active IP Right Grant
- 2005-08-12 JP JP2005234741A patent/JP5258152B2/ja not_active Expired - Fee Related
- 2005-08-23 RU RU2005126695/09A patent/RU2390829C2/ru not_active IP Right Cessation
- 2005-08-25 CA CA002517206A patent/CA2517206A1/en not_active Abandoned
- 2005-08-29 CN CNA2005100994501A patent/CN1755645A/zh active Pending
- 2005-08-29 MX MXPA05009208A patent/MXPA05009208A/es active IP Right Grant
- 2005-09-14 EP EP05108418A patent/EP1643369A3/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105431821A (zh) * | 2013-07-30 | 2016-03-23 | 苹果公司 | 撤销系统 |
CN105431821B (zh) * | 2013-07-30 | 2019-01-18 | 苹果公司 | 撤销系统 |
Also Published As
Publication number | Publication date |
---|---|
EP1643369A3 (en) | 2006-05-03 |
US20060075302A1 (en) | 2006-04-06 |
US7457989B2 (en) | 2008-11-25 |
JP5258152B2 (ja) | 2013-08-07 |
KR101153028B1 (ko) | 2012-06-04 |
AU2005203508A1 (en) | 2006-04-13 |
EP1643369A2 (en) | 2006-04-05 |
CA2517206A1 (en) | 2006-03-29 |
JP2006099743A (ja) | 2006-04-13 |
RU2390829C2 (ru) | 2010-05-27 |
RU2005126695A (ru) | 2007-02-27 |
KR20060050370A (ko) | 2006-05-19 |
AU2005203508B2 (en) | 2010-07-22 |
MXPA05009208A (es) | 2006-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1755645A (zh) | 选择用于复验自动化的测试实例执行行为的系统和方法 | |
CN100492316C (zh) | 测试自动化的系统和方法 | |
US11042471B2 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
US8694967B2 (en) | User interface inventory | |
US8504803B2 (en) | System and method for creating and executing portable software | |
US20170193437A1 (en) | Method and apparatus for inventory analysis | |
US20180181376A1 (en) | Generation of an application from template | |
CN1658157A (zh) | 在整个开发周期内自动确定用户界面的差异的方法和系统 | |
CN110941467A (zh) | 数据处理方法、装置及系统 | |
WO2022142896A1 (zh) | 可视化模板的生成方法、装置、设备及存储介质 | |
CN102306117B (zh) | 一种硬件检测自动报警的方法及装置 | |
CN1755646A (zh) | 关于自动测试用例执行的松散耦合的自动测试用例验证 | |
US20130283100A1 (en) | Testing device | |
CN1758219A (zh) | 要求事件的对象克隆 | |
US20130346992A1 (en) | Computing system, method for controlling thereof, and computer-readable recording medium having computer program for controlling thereof | |
US11669332B1 (en) | Systems and methods for modernizing legacy applications | |
CN114297056A (zh) | 一种自动化测试方法及系统 | |
CN107368407B (zh) | 信息处理方法和装置 | |
Anwar et al. | Should energy consumption influence the choice of android third-party http libraries? | |
CN114238048B (zh) | 一种Web前端性能自动化测试方法及系统 | |
Průcha | Aspect optimalization of robotic process automation | |
da Silva et al. | Comparing Mobile Testing Tools Using Documentary Analysis | |
CN113392014A (zh) | 测试用例生成方法、装置、电子设备和介质 | |
JP4925514B2 (ja) | 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 | |
Baumgartner et al. | Large Experiment and Evaluation Tool for WEKA Classifiers. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20060405 |