CN1755647A - 测试自动化的堆栈分层 - Google Patents

测试自动化的堆栈分层 Download PDF

Info

Publication number
CN1755647A
CN1755647A CNA2005100994520A CN200510099452A CN1755647A CN 1755647 A CN1755647 A CN 1755647A CN A2005100994520 A CNA2005100994520 A CN A2005100994520A CN 200510099452 A CN200510099452 A CN 200510099452A CN 1755647 A CN1755647 A CN 1755647A
Authority
CN
China
Prior art keywords
test case
test
execution
layer
storehouse
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.)
Granted
Application number
CNA2005100994520A
Other languages
English (en)
Other versions
CN100492316C (zh
Inventor
A·M·乌尔里希
M·D·加拉赫
M·J·亨特
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1755647A publication Critical patent/CN1755647A/zh
Application granted granted Critical
Publication of CN100492316C publication Critical patent/CN100492316C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Abstract

将自动化测试的各方面分成各体系结构层使得自动化测试能更早更快地进行并提供更综合性的测试。物理层提供应用程序用户界面上的对象模型。逻辑层提供围绕应用程序功能的对象模型。测试实例执行器可执行测试实例。数据管理器可确保测试数据中的可变性。行为管理器可确定适于特定测试实例的执行细节。验证管理器可在已执行测试实例之后执行验证处理。

Description

测试自动化的堆栈分层
相关申请
本申请涉及律师案号为MSFT-4148题为“System and Method for Selecting TestCase Execution Behaviors for Reproducible Test Automation”(“选择用于复验自动化的测试实例执行行为的系统和方法”)的与本申请一起提交的美国专利申请,以及律师案号为MSFT-4149题为“Automated Test Case Verification that is LooselyCoupled with Respect to Automated Test Case Execution”(“相对自动化测试实例的执行松散耦合的自动化测试实例验证”)的与本申请一起提交的美国专利申请。
技术领域
本发明涉及软件测试,尤其涉及使用分层体系结构来进行自动化软件测试。
背景技术
软件开发生命期中的主要阶段是设计阶段、编码阶段、代码完成阶段、α阶段、β阶段,以及最后向市场发行。在设计阶段期间,将解决软件产品的客户问题并定义软件产品的功能。通常,功能规范的完成标志着设计阶段的结束。编码阶段开始。当代码写成但尚未调试时则进入代码完成阶段。α阶段标记产品稳定的时间点;即,已发现了大部分的主要缺陷。在β阶段,产品几乎没有了所有的主要缺陷;即所剩的缺陷应基本上无害。当产品通过最终的质量保证检查列表时,它已准备就绪向市场发行。
因为没有人想要不工作的软件,测试是生命期的重要部分并可跨越若干阶段。软件测试包括设计一测试实例(或更可能是测试实例集)、以测试实例为输入运行该软件、并检查以测试实例为输入的软件的性能是否产生预期结果。软件测试可由人们手动引导,或通过程序来引导(称为自动化软件测试)。理想地,软件的测试在软件生命期的一开始就应开始。然而一般而言,不到完成了设计阶段软件根本不能测试,因为直到完成设计阶段才能确定期望结果。通常,在编码阶段,开发者在写代码时手动测试其代码。自动化软件测试通常在开发过程的较后期才会开始。
有时,所引导的唯一测试由开发者在他编写程序时手动测试来完成。测试自已工作的开发者可能会忽视在情绪上不那么投入代码的某些人会发现的缺陷。此外,开发者测试的范围通常限于其代码的功能以及其代码与有限数量的其它软件应用程序的结合。
为了解决这些缺点,许多软件开发机构具有常使用至少部分自动化的测试技术来测试软件的独立的软件测试组。通常,测试组通过编写和运行测试实例来测试各特征之间和应用程序之间的交互。使测试组及早地甚至在设计阶段就进入产品生命期能获得很多好处通常是无异议的,这些好处包括标识功能规范中的不一致、标识难以测试的区域及其它。然而一般而言,面对特征定义、实现和用户界面(UI)调整中的持续变化而保持每个测试实例最新所需的精力使该方法呈现为不实用。因此,编写并运行测试实例通常是在产品开发末期仓促发生的。因而测试特别是自动化测试总是落后于需求。如果有一种在一进入软件产品的生命期(理想地是在设计阶段期间)就能编写测试实例并采用自动化测试的方法将是有帮助的。
一整套测试实例的开发在任何时候都具挑战性。为了测试应用程序的特定特征,必需编写许多测试集。例如,应用程序可允许与一特征的许多交互模式:通过鼠标、键盘、数字化仪、可访问软件、通过程序等。因此,为了提供对该特征的综合性测试,一整套测试应包括通过鼠标与该特征交互(像用户一样键入文本)的一个测试集、通过键盘与该特征交互的一个集、通过数字化仪与该特征交互的一个集、通过可访问软件与该特征交互来调用缺省动作并以其它方式模拟可访问应用程序的一个集、通过应用程序的编码模型与该特征交互的一个集等。如果有一种确保一整套测试实例提供特征或应用程序的综合性测试,并进一步减少为了提供综合性测试而必需编写的测试实例的总量的方法,这将是有帮助的。
此外,这些测试集的每一个中的许多或全部逻辑都与其它测试集中的逻辑相同,且通常许多或全部的结果处理验证也相同。因此,许多测试是相同或非常接近的,仅仅在执行选项上有变化。例如,对于上述全部多种形式的输入,期望结果可能是相同的。因此,对这些输入源的每一个编写测试实例通常需要编写用于执行每个输入源的测试的独立方法,并复制大多数剩余的测试脚本。重复编写仅具有极小变化的相同测试是乏味并耗时的。如果有一种消除或大大减少这种重复编码并减少必需编写的测试实例的总量的方法将是有帮助的。
编写用来确定运行测试实例的实际结果是否与期望结果相一致(常称为结果验证或验证)的代码常包括在测试实例内。改变特定结果验证的细节或添加新的结果验证通常需要更改每个测试实例。如果验证代码独立于测试实例,使该测试实例更易于理解以及验证代码更易于重复使用和维护将是有帮助的。
执行细节常被硬编码到测试实例中,需要设计阶段在编写测试实例之前就完成。如果有一种根据用户动作而不根据特定执行细节来定义测试实例使得测试实例能在软件开发生命期的较早期编写的方法,这将是有帮助的。
在编写测试实例之后对执行细节和验证作出的改变通常需要为必须寻找并更改许多测试实例而付出的大量维护精力。如果维护精力可局部化从而使更改可在一个地方而不是每个测试实例中进行,这将是有帮助的。
发明内容
利用自动化堆栈的自动化测试系统可使测试实例能早在软件开发的设计阶段就进行编写和编译了。一旦编写了实现要测试特征的代码就可执行测试实例。
自动化测试系统可包括以下的一个或多个:测试实例执行器、数据管理器、行为管理器和行为数据库、验证管理器、以及自动化堆栈。测试实例执行器可执行一测试实例。数据管理器可确保测试数据中的可变性。行为管理器可确定适于特定测试实例的执行细节。验证管理器可在测试实例已执行之后执行验证处理。自动化堆栈可提供使测试实例执行分成对象层或集的体系结构。自动化堆栈可包括逻辑层和物理层,而测试实例层可建立在逻辑层上。测试实例可根据特征或用户动作而不根据特定执行细节/用户界面细节而定义,因而使测试实例能在软件开发生命期中的较早期编写,并使执行细节和用户界面细节的改变去耦并与测试实例细节分开。
测试实例执行和测试实例验证可通过分成执行行为层和验证层而去耦。结果处理的验证可与测试实例分开,从而使从实施例更可理解并便于验证代码的再使用。通过定位到自动化堆栈内或验证或行为层内的单个变化点可简化维护,从而使该测试实例能基本上免维护。
将如何执行测试实例中各个步骤的细节分到它自己的对象层或集中使这些因素的每一个能独立变化。每个层可将可变性引入该层或其下各层,从而较少必须编写的测试数量。例如,写入较高层的运行5次的一个测试可与写入较低层的5个、10个甚至50个测试具有相同的功效。组织到各层中可使测试本身更简单并更易于理解,并在减少覆盖执行路径集必须编写的测试实例数量之外还可减少编写测试实例所需的时间。
逻辑层可基于可采取的动作(例如“打开文档”的动作)而不是用户界面的特定细节(例如诸如“打开File菜单并点击Open、等待File Open对话框打开、输入要打开的文件名、点击OK、等待File Open对话框消失、等待应用程序打开文档并为进一步的输入作好准备”的具体细节)来提供应用程序的视图。逻辑层还可提取尽可能多的用户界面实际的知识,从而当用户界面改变时无需编辑写入该层的测试。逻辑层还可将可变性引入执行的各个物理方法,从而可通过鼠标或键盘执行写入该层的单个测试实例而无需对该测试实例有任何改变。
物理层将测试从与特定控制通信的高度特定细节中隔离开,包括诸如特定控制的标识代码、以及访问该控制的方法(通过鼠标、键盘、可存取性、书写板等)的细节。物理层可提供围绕应用程序的用户界面的对象模型从而测试具有对该用户界面的强类型化访问。物理层还可使执行方法能独立于控制定义,从而无论执行方法有多少都只需单个对象模型。
验证层可独立于测试实例并与测试实例的直接联系相隔离,从而对验证细节的改变无需对测试有任何改变。
执行行为层可独立于测试实例并与测试实例的直接联系相隔离,从而无需对测试实例作改变或仅需对其作最少改变就可改变可用的执行行为或任何特定行为实现。
当测试实例需要测试数据时,数据管理层可由测试实例使用。数据管理层可提供所有测试数据的集中存储,并无需对测试实例作改变或仅需对其作最少改变就可改变测试数据或产生测试数据的方式。
每个层可提供对其下层的(直接)访问但测试实例可按需调用任何层。例如显式验证菜单行为的测试实例可使用逻辑层来创建包含各种形状的绘图,然后使用该物理层来直接操作菜单。测试实例可到物理层下获取用于结果验证的操作系统服务。因而测试实例可利用较高层的全部能力同时还利用由较低层提供的全部控制。
附图说明
结合附图阅读时,前面的发明内容和以下说明性实施例的详细描述能得到更好的理解。为了说明本发明各实施例,在附图中示出本发明的示例性结构;然而,本发明并不限于所揭示的特定方法和装置。在附图中:
图1是示出其中可实现本发明各方面的实例计算环境的示图;
图2是根据本发明一实施例用于使用分层体系结构的自动化软件测试的示例性系统的框图;
图3是根据本发明一实施例的图2系统的一部分的更详细框图;
图4是根据本发明一实施例用于使用图2的自动化软件测试系统的示例性方法的流程图。
具体实施方法
纵览
测试实例的开发中的一个挑战是要准备提供综合性测试的测试实例集。较大比例的测试实例实施较小比例的测试中的用户动作。为了理解为什么这会发生,考虑通常可通过若干不同的用户动作来执行单个操作。例如,在微软Word中创建一新文档可通过以下动作来完成:
点击File(文件)菜单,点击New(新)子菜单,再点击New Document(新文档)菜单项。
按下Alt+F键调用File菜单,按下N键来调用New子菜单,然后按下N键来调用New Document菜单项。
按下Alt键调用主菜单并重复按向左箭头键直到选中File菜单,重复按向下箭头键直到选中New子菜单项,按向左箭头键一次以扩展New子菜单,重复按向下箭头键直到选中New Document菜单项,然后按下Enter键以调用New Document菜单项。
通过可访问API来调用New Document菜单项。
点击New Document工具栏按键。
通过可访问API调用New Document工具栏按键。
按下Ctl+N。
执行创建新文档的脚本对象模型方法。
应当测试这些打开文档的每一个不同方法,每一个都可能调用不同的代码路径。根据本发明某些实施例,实施所有可能的执行路径和数据值。
因为多个执行路径是普通的,验证处理在集内许多测试实例中都完全相同。常常,验证代码将被复制-粘贴到每个测试实例中。除了冗长且耗时外,还因此造成维护问题。例如,如果在执行或验证处理中进行随后的改变,必须找到并修改整个受影响测试实例集。根据本发明某些实施例,测试实例的维护定位于自动化堆栈中的单个位置,使得测试实例能几乎免于维护。
在典型的测试实例中,涉及测试实例执行的代码和涉及确定执行结果的代码(验证代码)被硬编码到测试实例本身。执行代码常常与验证代码相混和。根据本发明某些实施例,验证处理和执行处理的细节彼此分开并与测试实例分开。
通常测试实例并不区分测试操作和用来调用那些动作的步骤。对于每个执行方法常编写显式测试。例如每个测试可包括必须重复以调用要测试的操作的每个序列的鼠标移动、按键点击和键击的代码。对于UI测试,每个测试不得不跟踪由每个UI组件使用的那类控制、标识所使用的特定控制、并指定可在UI分层结构中的哪儿找到该控制。根据本发明的某些实施例,测试实例根据用户动作而不是根据执行细节来编写。因而用户界面细节与用户动作细节分开。
自动化测试实例通常极紧密地限于测试中的特定软件,即典型测试实例直接根据所测试的对象进行编码。例如,应用程序通过测试实例的自动化测试常常直接操纵该应用程序的状态。用于用户界面(UI)的自动化测试的测试实例常常被直接写入该UI的一个或多个控件,并通过显式编码测试实例中控制的名字或唯一标识符来标识控制。如果控制改变(例如从按键到列表框,甚至从一按键(例如按键36)变成另一按键(42)),则该UI的所有测试实例必须改变。
为了解决这些和其它问题,可创建从脚本测试实例、基于模型的测试和单元测试可使用的多层库。该库可包括物理层、逻辑层、验证层、执行行为管理层以及数据管理层的一个或多个层。物理层、逻辑层和测试实例可包括自动化堆栈,而验证、执行行为和数据管理层可分开但与逻辑层在同一层上。
逻辑层可基于可采取的动作(例如“打开文档”的动作)而不是用户界面的特定细节(例如诸如“打开File菜单并点击Open、等待File Open对话框打开、输入要打开的文件名、点击OK、等待File Open对话框消失、等待应用程序打开文档并为进一步的输入作好准备”的具体细节)来提供应用程序的视图。逻辑层还可提取尽可能多的用户界面实际的知识,从而当用户界面改变时无需编辑写入该层的测试。逻辑层还可将可变性引入执行的各个物理方法,从而可通过鼠标或键盘等执行写入该层的单个测试实例而无需对该测试实例有任何改变。
物理层将测试从与特定控制通信的高度特定细节中隔离开,包括诸如什么是特定控制的标识代码、以及如何访问该控制(通过鼠标、键盘等)的细节。物理层可提供围绕应用程序的用户界面的对象模型从而测试具有对该用户界面的强类型化访问。物理层还可使执行方法能独立于控制定义,从而无论执行方法有多少都只需单个对象模型。
验证层可独立于测试实例并与测试实例的直接联系隔离,从而对验证细节的改变无需对测试实例有任何改变。验证层可比较实际状态和期望状态以确定测试实例结果是否象期望的一样。
执行行为管理层可独立于测试实例并与测试实例的直接联系隔离,从而无需对测试实例作改变或仅需对其作最少改变就可改变执行行为的可用性或任何特定行为的实现。执行行为层可选择可应用于测试实例的一个或多个适当行为。执行行为层可确保实施所有可能的执行路径。
当测试实例需要测试数据时,数据管理层可由测试实例使用。数据管理层可提供所有测试数据的集中存储,并无需对测试实例作改变或仅需对其作最少改变就可改变测试数据或产生测试数据的方式。数据管理可确保实施所有可能数据值。
每个层可提供对其下层的(直接)访问但测试实例可按需调用任何层。例如显式验证菜单行为的测试实例可使用逻辑层来创建包含各种形状的绘图,然后使用该物理层来直接操作菜单,并去到用于结果验证的操作系统服务。可隐藏执行方法细节。写到逻辑层的测试在执行方法之间切换时可不需要变化。如果测试实例与执行方法完全隔离,则在测试实例外部并于之分开的机制可在编译时或运行时使用以指定应当对测试的特定运行使用哪种执行方法。
示例计算环境
图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。
计算机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相连。诸如“North-bridge”的图形接口182也可连接至系统总线121。“North-bridge”是与CPU或主机处理单元120通信的芯片组,并承担与加速图形端口(AGP)通信的责任。一个或多个图形处理单元184(GPU)184可与图形接口182通信。在这方面GPU 184一般包括诸如寄存器存储的芯片内存储器存储,且GPU 194与视频存储器186通信。然而,GPU 184仅是协处理器的一个示例,因而在计算机110中可包括各种协处理装置。监视器或其它类型的显示装置也可通过诸如视频接口190的接口与系统总线121相连,该接口还与视频存储器186通信。除监视器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通过用户输入接口160或其它适当机制与系统总线121连接。在网络化环境中,与计算机110相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图1示出了驻留于存储器装置181中的远程应用程序185。应当理解,所示网络连接是示例性的,且也可以使用其它用于在计算机间建立通信连接的方法。
本领域技术人员可理解,计算机110或其它客户机装置可用作计算机网络的一部分。这样,本发明适合具有任何数量存储器或存储单元的任何计算机系统、以及在任何数量存储单元或存储体上发生的任何数量的应用程序和进程。本发明可应用于带有可用于网络环境的具有远程或本地存储器的服务器计算机和客户计算机的环境。本发明还可应用于具有编程语言功能、编译和执行功能的独立计算装置。
自动化堆栈分层
在本发明某些实施例中,通过对应用程序采取与对象模型视图或其它类型视图相反的用户中心视图的逻辑功能模型来定义应用程序。不断重复使用的代码可用用户中心方式来组件化。例如,动作可按逻辑层中的目标来分组,SceneElements可包含影响活动景物上诸如创建、选择、取消选择、剪切、复制、粘贴、删除元素的元素集的方法。变换方法组可具有旋转、缩放、并以其它方式将变换应用于景物元素的方法。路径可包含操纵是路径的景物元素的方法等。在大多数应用程序中,大多数用户动作可用多种不同方法来执行。不同执行方法所需的基础结构通常是相同的。因此,在本发明的某些实施例中,执行行为管理器在各测试实例上共享,并为测试实例选择适当的行为(逻辑功能模型方法)。在本发明某些实施例中,在测试实例或逻辑功能模型方法执行一种操作之前,通知验证管理器。验证管理器可存储应用程序的完全当前状态的一个副本。该副本形成操作完成时的期望状态的基础。在本发明某些实施例中,测试实例执行一序列的动作而不知道如何执行或验证这些动作。
图2是根据本发明一实施例示出使用分层体系结构的示例性自动化测试系统的框图。图2的自动化测试系统可使能测试实例创建和维护中的效率从而可使用较少的测试实例来完成更综合性的测试。测试实例更易于创建、更易于维护并更易于理解。
自动化测试系统250可驻留于一个或多个计算机上,诸如参照图1所述的示例性计算机110。自动化测试系统250可包括一个或多个测试执行器252、数据管理器254、行为管理器256以及相关联的行为数据库(未示出)、验证管理器258和自动化堆栈200。测试执行器252可根据应用程序262来执行测试实例260。数据管理器262在本发明某些实施例中可提供测试实例260所需的测试数据。数据管理器可提供对集中存储的所有测试数据的访问,并允许测试数据或对产生测试数据的方式进行改变而无需改变测试实例或只需测试实例的极少改变。
行为管理器256可从行为数据库中选择测试实例260的适当行为。验证管理器258可提供对执行测试实例260的结果的验证。
图3是根据本发明一实施例示出自动化测试系统的自动化堆栈的示例性分层体系结构的框图。图3是图2系统一部分的更详细框图。在图3中,自动化库200可包括一个或多个层。自动化库200的每个层可包括一个或多个对象集。自动化库200的层可包括以下的一个或多个:物理层202、逻辑层204、测试实例层206中的一个或多个测试实例、综合性验证层208、行为层210以及数据管理层213。行为层210可包括执行行为管理器212和执行行为数据库214。或者,执行行为可驻留在逻辑层204中。
自动化库200可包括一个或多个物理层202、逻辑层204、以及测试实例层206中的一个或多个测试实例,而执行行为层210、综合性验证层208以及数据管理器层213可存在于自动化体系结构堆栈230之外。在本发明某些实施例中,执行行为层210、综合性验证层208、以及数据管理层213尽管与逻辑层204分开却都被结合到逻辑层204中。因为执行行为层210、综合性验证层208、以及数据管理层213都与逻辑层204分开,可从体系结构堆栈外部访问执行行为层210、综合性验证层208、以及数据管理层213。
自动化库200可代表系统库上的包括一个或多个组件的一个层,例如以下的一个或多个:操作系统、外部工具、图形动画子系统等。在图2中,示例性系统库240包括内部测试自动化模块216、可存取性模块218、UI自动化模块222、图形动画子系统228(包括图形动画对象模型220和图形动画应用程序224)、以及系统层应用程序226。
自动化库200可包括图形动画子系统228的布局和控件。自动化库200的布局部分可包括图形动画子系统228的每个视觉元素实例的类。即,布局部分可包括表示图形子系统228的“顶层”视觉元素的所有类,这些“顶层”视觉元素诸如但不限于:新项目对话框、一个或多个工具箱窗格、以及主菜单。控件部分可包括每种视觉元素的类。即,控件部分可包括用于图形动画子系统的所有系统和定制控件的类,这些控件诸如但不限于:按键类、组合框类、文本框类、以及色彩选择器类。这些控件仅可通过顶层元素(例如通过主菜单、工具箱窗格、或新项目对话框)访问。自动化库200的控件部分中的每个控件可包括访问和操纵控件所需的所有方法和属性,包括所有输入方法的实现(例如通过键盘、鼠标、可存取性软件等)。
自动化库200可用于引导任何类型的测试,包括基于模型、集成、性能、载入、压力、接受、单元、建立验证、基本功能、退出标准、综合性/扩展功能、局部化、全局化、可访问性以及其它测试。自动化库200可通过已写成脚本的测试实例来访问或包括这些测试实例。或者,访问或包括在自动化库200中的测试实例可用XML、编译语言、字节代码、数据库、文本、表格等来表示。
自动化库200的每个层可直接访问(或调用)下面的层。即,测试实例层206可直接访问逻辑层204。逻辑层204可直接访问物理层202等。在本发明某些实施例中,向一个层提供了访问或调用更深一层的装置,即,例如在需要时测试实例直接访问内部测试自动化层216、物理层202等是可能的。
测试实例层206可包括应用于要测试的应用程序或模块、特征或功能的一个或多个测试实例。可将测试实例写成脚本。写到逻辑层204的示例性测试实例可以是,例如:
Start Graphics Animation Subsystem
Add a new Project
Draw a rectangle from 0,0 to 4,4
Set the color of the rectangle to red
Save the project
Shut down the Graphics Animation Subsystem
可以理解,以上示例性测试实例所缺少的是涉及结果验证的代码、涉及执行选项的代码、涉及标识诸如控件的特定UI元素的代码等。由于封装了应用程序的逻辑操作,测试实例层206的写到逻辑层204的测试实例因此应当几乎不需要随自动化库200中的变化而改变。
在本发明某些实施例中,逻辑层202涉及应用程序期望执行的功能而不是每个功能的操作如何实现。逻辑层202可封装或包装图形动画子系统228的逻辑操作,提取逻辑操作的实现特性。在本发明的某些实施例中,逻辑层202提取掉UI的所有知识并提供在测试实例层206、验证层208、行为层210和数据管理器层213的测试实例之间的接口。逻辑层202还可提供图形动画对象模型220(图形动画应用程序224的内部状态)以及测试实例之间的接口。逻辑层可提供用来执行单个用户动作的一序列动作的可变性。
物理层202提取执行方法使得写入物理层的测试实例不必说明执行细节,诸如控件是否通过使用鼠标、或键盘、可存取性软件等来调用。物理层可提供用来与特定控件交互的方法的可变性。物理层202还可提供围绕UI的对象模型,即物理层202可提供与UI的接口。因此,当应用程序或UI中的元素改变时,可在物理层中而不是在所有测试实例中作出改变。
写入物理层的另一示例性测试实例可以是,例如:
Start Graphics Animation Subsystem
Invoke the File menu
Invoke the New submenu
Invoke the New Project menu item
Type the name to give the new project
Close the New Project dialog box
Wait for the Graphics Animation Subsystem to finish creating the new project
Activate the rectangle shape tool
Drag the mouse from 0,0 to 4,4
Select“Red”from the list of possible stroke colors in the color-properties pane
Invoke the File menu
Invoke the Save menu item
Wait for the Graphics Animation Subsystem to finish saving the project
Invoke the File menu
Invoke the Exit menu item
Wait for the Graphics Animation Subsystem to shut down
可以理解,以上示例性测试实例没有指定动作(例如“Invoke the File Menu”(“调用菜单项”))如何实现(即未指定执行路径)。因为执行管理器从全体可能执行路径中选择,运行测试实例多次将执行所有可用的执行路径多次。因为所有的验证代码驻留于测试实例之外,可更完整地进行验证处理而无需改变测试实例。类似地,如果任一动作的期望结果包括变化,测试实例也无需改变。可以理解,测试实例并不包含对任何UI的引用。因此,如果UI改变则测试实例无需改变。可以理解,测试实例集中于用户可能采取的动作上。
测试实例写入的物理层中的相应代码可如下:
    class UIPane

          {

              UIButton Minimize{return new UIButton(“idOfTheMinimizeButton”);}

              UIButton Restore{return new UIButton(“idOfTheRestoreButton”);}

              UIButton Close{return new UIButton(“idOfTheCloseButton”);}

          }

          class UIColorPane derives from class UIPane

          {

                UIComboBox AvailableColorsForFill{return new UIComboBox
(“idOfTheAvailableFillColorsComboBox”);}

                UIColorPicker CustomColorsForFill{return new UIColorPicker
(“idOfTheCustomFillColorColorPicker”);}

                UIComboBox AvailableColorsForStroke{return new UIComboBox
(“idOfTheAvailableStrokeColorsComboBox”);}

                UIColorPicker CustomColorsForStroke{return new UIColorPicker
(“idOfTheCustomStrokeColorColorPicker”);}

          }

          class UIButton

          {

               Area boundingBox;

               UIButton(identifier)

               {

                   GraphicsSubsystem.Control control=GraphicsSubsystem.FindControl(identifier);

                   boundingBox=contro1.BoundingBox;

               }

               Invoke()

               {

                   ScreenCoordinate clickPoint;

                   clickPoint.x=boundingBox.Left+(boundingBox.Width/2);

                   clickPoint.y=boundingBox.Top+(boundingBox.Height/2);

                   Mouse.Move(clickPoint);

                   Mouse.Click();

               }

          }
因为逻辑层204仅与功能相关而与实现细节无关,且因为大多数测试实例被写入逻辑层204,所以测试实例可在软件生命期中前期编写。一旦代码完成,可运行测试实例,因而可更早更快地进行更多的测试。
综合性的验证层208在本发明的某些实施例中封装验证处理。逻辑层204在本发明某些实施例中在逻辑层204执行测试实例之前通知验证层208以使验证层208能取得测试前状态的抽点打印。在执行测试实例之后,逻辑层204通知验证层208已执行测试实例。然后验证层208可确定实际结果是否与期望结果一致。其它有关验证层的信息可在相关的律师案号为MSFT-4149题为“Automated Test CaseVerification that is Loosely Coupled with Respect to Automated Test Case Execution”(“相对自动化测试实例的执行松散耦合的自动化测试实例验证”)的美国专利申请中找到。
逻辑层204在某些实施例中对每种实现逻辑操作的方法实现(执行行为214的)特定行为。例如,在本发明某些实施例中,对于CreateNewProject行为,这将包括实现应用程序的对象模型、发送一序列键击、通过可存取性模块调用菜单项、使用鼠标调用菜单项、使用箭头键在菜单上导航来调用菜单项、并使用助记字符导航菜单来调用菜单项。执行行为层可确定哪些行为与逻辑操作相关。
在本发明某些实施例中,对每种实现逻辑操作的方法可实现一独立行为(存储在执行行为数据库214、逻辑层202或其它地方)。行为的使用使得编写少得多的测试实例同时仍然提供同样程度综合性的测试成为可能。执行行为层210的执行行为管理器212在本发明某些实施例中确定各执行行为214中的哪些行为与考虑中的逻辑操作相关。在本发明某些实施例中,加权因子和其它设置可用来选择一特定行为。有关行为层210的其它信息可在相关的律师案号为MSFT-4148的题为“System and Method for Selecting Test Case Execution Behaviors for ReproducibleTest Automation”(“选择用于复验自动化的测试实例执行行为的系统和方法”)的美国专利申请中找到。
然后逻辑层204可使用选定行为来执行操作。在本发明某些实施例中选择机制可在运行时配置。该特征使测试行为能更改而无需更改测试实例本身。例如,如果制作菜单机制最近已重新编写,则可能需要使用制作菜单机制来执行动作,一般给予新代码好的测试。或者,如果在快捷键处理中有一已知缺陷,则在修复缺陷之前需要对使用快捷键的方法避免使用。该改变可通过行为层而不在测试实例本身中进行。
图4是在自动化测试中使用体系结构堆栈的方法的流程图。在步骤402,接收写入体系结构堆栈的测试实例。该测试实例可被写入逻辑层。或者,测试实例可被写入堆栈中的较深层。在步骤404,可向验证层发送将执行测试实例的通知。在本发明某些实施例中,取得应用程序的测试前期望状态的抽点打印。在步骤406,解析测试实例的语句。在本发明某些实施例中,测试实例的每个语句表示一逻辑操作。在步骤408,确定与逻辑操作相关的行为。测试实例本身并不实现每个步骤的细节,而是向执行行为管理器询问适当的行为。在本发明某些实施例中,执行行为层的执行行为管理器确定在执行行为数据库中的哪些行为与考虑中的逻辑操作相关。执行行为管理器可浏览用于实现测试实例中步骤的各个行为之间的关系集并作出选择。加权因子和其它设置可用来选择一特定行为。在步骤410可使用选定行为来执行操作。对测试实例中的每个语句可重复步骤406到410。在步骤412可通知验证层已执行测试实例。验证层可确定实际结果是否与期望结果一致。或者,验证处理可在执行测试实例中每个语句之后进行。
在此所述的各种技术可用硬件、软件、或在适当时用两者的组合来实现。因而,本发明的方法和装置或其某些方面或部分可采取包括在诸如软盘、CD-ROM、硬盘、或任何其它机器可读的存储介质的有形介质中的程序代码(即指令)的形式,其中当程序代码由诸如计算机的机器载入并执行时,该机器变成实践本发明的装置。程序代码在可编程计算机上执行的情形中,计算装置通常包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储单元)、至少一个输入装置、以及至少一个输出装置。可例如通过使用数据处理API等利用本发明的领域专用编程模型方面的创建和/或实现的一个或多个程序,最好用高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,如果需要程序也可用汇编或机器语言来实现。在任何情形中,语言可以是编译或解释语言,并可与硬件实现相组合。
尽管本发明已结合各附图的优选实施例进行了描述,可以理解可使用其它实施例或可对所述实施例作更改和添加来执行本发明的相同功能而不从其背离。因此,本发明应不限于任一单个实施例,而应根据所附权利要求在宽度和范围内作解释。

Claims (25)

1.一种自动化测试系统,其特征在于,包括:
一体系结构的测试自动化堆栈,包括:
一对象集,包括逻辑层、与要测试的应用程序的用户动作集相关联的所述逻辑层的对象集、可直接访问物理层的对象集的所述逻辑层的对象集;以及
所述物理层的对象集,所述物理层的对象集包括指向与所述用户动作集相关联的执行选项的对象集。
2.如权利要求1所述的系统,其特征在于,还包括一测试实例,所述测试实例涉及所述逻辑层的对象集中的对象。
3.如权利要求1所述的系统,其特征在于,还包括一测试实例,所述测试实例不引用所述物理层的对象集中的对象。
4.如权利要求2所述的系统,其特征在于,所述测试实例不包括验证代码。
5.如权利要求2所述的系统,其特征在于,所述测试实例不包括执行选项。
6.如权利要求2所述的系统,其特征在于,所述测试实例驻留于所述测试自动化堆栈的测试实例层中。
7.如权利要求1所述的系统,其特征在于,还包括一数据管理器,所述数据管理器提供测试实例所需的可变测试数据。
8.如权利要求1所述的系统,其特征在于,与测试数据选择相关联的对象存储于不在所述测试自动化堆栈中的第二逻辑层。
9.如权利要求1所述的系统,其特征在于,还包括一行为管理器,所述行为管理器选择测试实例的执行选项。
10.如权利要求1所述的系统,其特征在于,与要测试的所述应用程序的用户动作集的用户动作的执行路径相关联的对象存储于不在所述自动化堆栈中的执行行为逻辑层。
11.如权利要求1所述的系统,其特征在于,与要测试的所述应用程序的用户动作集的用户动作的执行路径相关联的对象存储于所述自动化堆栈的逻辑层中。
12.如权利要求1所述的系统,其特征在于,还包括一验证管理器,所述验证管理器确定测试实例的执行结果。
13.如权利要求1所述的系统,其特征在于,与测试结果的验证相关联的对象存储于不在所述自动化堆栈中的验证层。
14.如权利要求1所述的系统,其特征在于,与测试结果的验证相关联的对象存储于所述自动化堆栈的逻辑层。
15.如权利要求1所述的系统,其特征在于,所述验证管理器比较所述测试实例执行的实际结果和所述测试实例执行的期望结果。
16.一种用于建立测试实例创建和维护中效率的方法,其特征在于,包括:
接收一测试实例,所述测试实例包括至少一个语句,所述至少一个语句涉及多层库中逻辑层中的对象,所述对象与用户动作相关联;
选择与所述用户动作相关联的行为,所述行为与所述用户动作的特定执行路径相关联;以及
使用所述选定的特定执行路径来执行所述测试实例,所述特定执行路径涉及所述多层库的物理层中的对象。
17.如权利要求16所述的方法,其特征在于,还包括:
发送将执行所述测试实例的通知。
18.如权利要求16所述的方法,其特征在于,还包括:
存储所述测试实例的执行所导致的测试前期望状态。
19.如权利要求18所述的方法,其特征在于,还包括:
比较所述测试实例的执行所导致的测试前期望状态和所述测试实例的执行所导致的测试后实际状态。
20.如权利要求16所述的方法,其特征在于,关联于测试结果的验证的对象与关联于执行选项的对象分开。
21.一种包括计算机可执行指令的计算机可读介质,其特征在于,所述指令用于:
接收一测试实例,所述测试实例包括至少一个语句,所述至少一个语句涉及多层库中逻辑层中的对象,所述对象与用户动作相关联;
发送将执行所述测试实例的通知;
选择与所述用户动作相关联的行为,所述行为与所述用户动作的特定执行路径相关联;
使用所述选定的特定执行路径来执行所述测试实例,所述特定执行路径涉及所述多层库的物理层中的对象;以及
比较测试前期望状态和测试后的实际状态。
22.如权利要求21所述的计算机可读介质,其特征在于,还包括其它指令用于:
存储所述测试实例的执行所导致的测试前期望状态。
23.如权利要求21所述的计算机可读介质,其特征在于,还包括其它指令用于:
比较所述测试实例的执行所导致的测试前期望状态和所述测试实例的执行所导致的测试后实际状态。
24.如权利要求21所述的计算机可读介质,其特征在于,还包括其它指令用于:
解析所述测试实例。
25.如权利要求21所述的计算机可读介质,其特征在于,还包括其它指令用于:
发送已执行所述测试实例的通知。
CNB2005100994520A 2004-09-29 2005-08-29 测试自动化的系统和方法 Expired - Fee Related CN100492316C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/953,402 2004-09-29
US10/953,402 US7398514B2 (en) 2004-09-29 2004-09-29 Test automation stack layering

Publications (2)

Publication Number Publication Date
CN1755647A true CN1755647A (zh) 2006-04-05
CN100492316C CN100492316C (zh) 2009-05-27

Family

ID=35759393

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100994520A Expired - Fee Related CN100492316C (zh) 2004-09-29 2005-08-29 测试自动化的系统和方法

Country Status (10)

Country Link
US (1) US7398514B2 (zh)
EP (1) EP1650663A3 (zh)
JP (1) JP4950454B2 (zh)
KR (1) KR101122862B1 (zh)
CN (1) CN100492316C (zh)
AU (1) AU2005203386B2 (zh)
BR (1) BRPI0503373A (zh)
CA (1) CA2517323A1 (zh)
MX (1) MXPA05009209A (zh)
RU (1) RU2390830C2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929632A (zh) * 2012-11-06 2013-02-13 苏州懿源宏达知识产权代理有限公司 控件动作执行方法
WO2017148376A1 (zh) * 2016-03-02 2017-09-08 平安科技(深圳)有限公司 应用程序用户界面自动化测试方法、电子设备、系统及存储介质
CN107390111A (zh) * 2017-06-22 2017-11-24 芯海科技(深圳)股份有限公司 一种ICNewProject自动化测试方法
CN108231129A (zh) * 2016-12-15 2018-06-29 北京兆易创新科技股份有限公司 一种emmc测试方法及装置
CN108255729A (zh) * 2018-01-24 2018-07-06 珠海金山网络游戏科技有限公司 一种基于Unity平台的手机游戏自动化测试方法和系统
CN108292282A (zh) * 2015-12-24 2018-07-17 英特尔公司 分解块存储控制器堆栈

Families Citing this family (38)

* Cited by examiner, † Cited by third party
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
US7600169B2 (en) * 2004-11-12 2009-10-06 Hewlett-Packard Development Company, L.P. Systems and methods of test case generation with feedback
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US8196104B2 (en) * 2005-08-31 2012-06-05 Sap Ag Systems and methods for testing application accessibility
JP5894724B2 (ja) 2006-08-10 2016-03-30 アビニシオ テクノロジー エルエルシー グラフ型計算の分散サービス
US7823130B2 (en) * 2006-09-22 2010-10-26 Sap Ag Testing machine-readable instructions
US20080115114A1 (en) * 2006-11-10 2008-05-15 Sashank Palaparthi Automated software unit testing
US7631227B2 (en) * 2006-11-21 2009-12-08 Etaliq Inc. Automated testing and control of networked devices
US7979846B2 (en) * 2007-04-05 2011-07-12 Accenture Global Services Limited Automatic test generation for reference testing
US8086902B2 (en) * 2007-04-16 2011-12-27 Microsoft Corporation Method and apparatus for testing media player software applications
KR101758670B1 (ko) * 2007-07-26 2017-07-18 아브 이니티오 테크놀로지 엘엘시 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
US20090106764A1 (en) * 2007-10-22 2009-04-23 Microsoft Corporation Support for globalization in test automation
JP5192055B2 (ja) * 2008-03-04 2013-05-08 コードエスイー カンパニー リミテッド 3次元応用プログラムフレームワーク構造及びこれを基盤とするアプリケーション具現方法、並びに3次元応用ソフトウェアフレームワーク基盤の自動テストシステム及びその方法
KR100949875B1 (ko) * 2008-05-19 2010-03-25 정병수 3차원 응용소프트웨어 프레임워크 기반의 자동 테스트시스템 및 그 방법
US8266592B2 (en) * 2008-04-21 2012-09-11 Microsoft Corporation Ranking and optimizing automated test scripts
CN102317911B (zh) 2009-02-13 2016-04-06 起元技术有限责任公司 管理任务执行
US8245080B2 (en) * 2009-03-19 2012-08-14 International Business Machines Corporation Model-based testing of an application program under test
US8381185B2 (en) * 2009-03-31 2013-02-19 International Business Machines Corporation Apparatus, system, and method for dynamic module flow analysis
US20100333073A1 (en) * 2009-06-29 2010-12-30 Honeywell International Inc. Systems and methods for automated generation of software tests based on modeling the software test domain
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
CN101833507B (zh) * 2010-05-04 2011-12-07 王轶辰 一种基于测试框架的软件测试方法
AU2011268459B2 (en) 2010-06-15 2014-09-18 Ab Initio Technology Llc Dynamically loading graph-based computations
US20120124558A1 (en) * 2010-11-17 2012-05-17 Microsoft Corporation Scenario testing composability across multiple components
GB2503893A (en) 2012-07-10 2014-01-15 Ibm Selecting data from a database using data representing a sequence of operations
CN104246715A (zh) * 2012-07-31 2014-12-24 惠普发展公司,有限责任合伙企业 构造应用的测试中心模型
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
CA3128713C (en) 2013-12-05 2022-06-21 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
EP3779674B1 (en) 2015-12-21 2023-02-01 AB Initio Technology LLC Sub-graph interface generation
US10623276B2 (en) * 2015-12-29 2020-04-14 International Business Machines Corporation Monitoring and management of software as a service in micro cloud environments
CN106815146A (zh) * 2016-12-27 2017-06-09 甘肃万维信息技术有限责任公司 一种基于VBScript的软件自动化测试系统
WO2020160477A1 (en) 2019-01-31 2020-08-06 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
US11940483B2 (en) 2019-01-31 2024-03-26 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
CN110457201A (zh) * 2019-06-20 2019-11-15 口碑(上海)信息技术有限公司 一种接口测试用例生成方法以及装置
CN110633216A (zh) * 2019-09-20 2019-12-31 北京首汽智行科技有限公司 一种app性能测试方法
CN116745630A (zh) 2020-11-24 2023-09-12 特克特朗尼克公司 用于高速输入/输出裕量测试的系统、方法和设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600789A (en) * 1992-11-19 1997-02-04 Segue Software, Inc. Automated GUI interface testing
US6023580A (en) * 1996-07-03 2000-02-08 Objectswitch Corporation Apparatus and method for testing computer systems
US6041330A (en) 1997-07-24 2000-03-21 Telecordia Technologies, Inc. System and method for generating year 2000 test cases
US6128759A (en) * 1998-03-20 2000-10-03 Teradyne, Inc. Flexible test environment for automatic test equipment
US6941546B2 (en) 2001-08-01 2005-09-06 International Business Machines Corporation Method and apparatus for testing a software component using an abstraction matrix
US6986125B2 (en) * 2001-08-01 2006-01-10 International Business Machines Corporation Method and apparatus for testing and evaluating a software component using an abstraction matrix
JP2003108405A (ja) * 2001-09-27 2003-04-11 Toshiba Corp 試験仕様の作成支援装置及びプログラム
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
US8225152B2 (en) 2002-05-09 2012-07-17 Agilent Technologies, Inc. Method and apparatus for generating electronic test and data structure
US7730461B2 (en) * 2002-12-30 2010-06-01 International Business Machines Corporation Software tool configured to generate test cases characterized by a linear range of integral values

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929632A (zh) * 2012-11-06 2013-02-13 苏州懿源宏达知识产权代理有限公司 控件动作执行方法
CN102929632B (zh) * 2012-11-06 2017-02-15 丁黄香 控件动作执行方法
CN108292282A (zh) * 2015-12-24 2018-07-17 英特尔公司 分解块存储控制器堆栈
CN108292282B (zh) * 2015-12-24 2022-08-05 英特尔公司 块存储堆栈装置、介质及其操作方法
WO2017148376A1 (zh) * 2016-03-02 2017-09-08 平安科技(深圳)有限公司 应用程序用户界面自动化测试方法、电子设备、系统及存储介质
US10061686B2 (en) 2016-03-02 2018-08-28 Ping An Technology (Shenzhen) Co., Ltd. Method, electronic apparatus, system, and storage medium for automated testing of application user interface
CN108231129A (zh) * 2016-12-15 2018-06-29 北京兆易创新科技股份有限公司 一种emmc测试方法及装置
CN107390111A (zh) * 2017-06-22 2017-11-24 芯海科技(深圳)股份有限公司 一种ICNewProject自动化测试方法
CN108255729A (zh) * 2018-01-24 2018-07-06 珠海金山网络游戏科技有限公司 一种基于Unity平台的手机游戏自动化测试方法和系统

Also Published As

Publication number Publication date
US20060070035A1 (en) 2006-03-30
EP1650663A3 (en) 2008-03-26
JP2006099737A (ja) 2006-04-13
AU2005203386B2 (en) 2010-09-16
BRPI0503373A (pt) 2006-05-09
JP4950454B2 (ja) 2012-06-13
CA2517323A1 (en) 2006-03-29
KR101122862B1 (ko) 2012-03-21
KR20060050378A (ko) 2006-05-19
CN100492316C (zh) 2009-05-27
US7398514B2 (en) 2008-07-08
RU2390830C2 (ru) 2010-05-27
MXPA05009209A (es) 2006-04-03
RU2005127030A (ru) 2007-03-10
AU2005203386A1 (en) 2006-04-13
EP1650663A2 (en) 2006-04-26

Similar Documents

Publication Publication Date Title
CN1755647A (zh) 测试自动化的堆栈分层
US10481875B2 (en) Generation of an application from template
US10162612B2 (en) Method and apparatus for inventory analysis
CN108292231B (zh) 从数据生成应用的方法和系统
Kaliszyk et al. Holstep: A machine learning dataset for higher-order logic theorem proving
US9477581B2 (en) Integrated system and method for validating the functionality and performance of software applications
CN1755645A (zh) 选择用于复验自动化的测试实例执行行为的系统和方法
US8694967B2 (en) User interface inventory
Ludäscher et al. Scientific Process Automation and Workflow Management.
US8745592B1 (en) Input selection for automatic test suite generation
US10592211B2 (en) Generation of application behaviors
CN1815440A (zh) 用于数字设备菜单编辑器的方法和系统
US9710355B2 (en) Selective loading of code elements for code analysis
CN102667730A (zh) 设计时调试
CN106446019A (zh) 一种软件功能处理方法和装置
CN113010168B (zh) 一种基于场景树的用户界面生成方法
Ulrich et al. Operator timing of task level primitives for use in computation-based human reliability analysis
US11947441B2 (en) Visual testing of implemented product code from a codified user experience design
CN114115885A (zh) 一种内容验证方法、装置和存储介质
Liang et al. AG3: Automated Game GUI Text Glitch Detection Based on Computer Vision
JPWO2011114478A1 (ja) 生成方法、スケジューリング方法、生成プログラム、スケジューリングプログラム、生成装置、および情報処理装置
Ying-Dar Automatic Functionality and Stability Testing Through GUI of Handheld Devices

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090527

Termination date: 20200829