CN102841842A - 用于下一代测试系统的自动化控制器 - Google Patents
用于下一代测试系统的自动化控制器 Download PDFInfo
- Publication number
- CN102841842A CN102841842A CN2012101270102A CN201210127010A CN102841842A CN 102841842 A CN102841842 A CN 102841842A CN 2012101270102 A CN2012101270102 A CN 2012101270102A CN 201210127010 A CN201210127010 A CN 201210127010A CN 102841842 A CN102841842 A CN 102841842A
- Authority
- CN
- China
- Prior art keywords
- script
- module
- robotization
- next script
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种用于下一代测试系统的自动化控制器,包括数据库,其包括多个脚本和模块,商业层组件、以及自动化组件。自动化组件包括自动化代理和自动化工作器。商业层组件可操作用于从多个脚本和模块确定下一脚本,并且响应于由自动化组件发送的获得下一脚本的请求,向自动化组件发送下一脚本。自动化代理可操作用于向商业层发送获得下一脚本的请求,从商业层接收下一脚本,并且向自动化工作器发送下一脚本以便执行。自动化工作器可操作用于执行下一脚本或其段,获得结果,并且向自动化代理发送状态更新、发送生命证据通知以及执行的结果。
Description
相关申请的交叉引用
本申请要求2011年4月18日提交的美国临时专利申请序列号61/476,623的权益,在此通过引用包含其整体内容。
技术领域
本公开涉及软件测试,并且特别地,本公开涉及用于开发、调试以及执行测试以确保软件系统的完整性和功能性的集成平台的自动化控制器。
背景技术
计算机软件的开发涉及严格的测试过程以确保软件如计划的那样运行。在测试过程中,测试者编写各种测试脚本或者软件测试模块以执行确保计算机软件如设计那样运行所必需的不同类型测试。测试者还设置以及运行测试脚本同时跟踪结果,并且将测试结果报告给适当的人员。该过程是低效且耗时的,并且需要可观的测试者参与。
另外,随着商业继续依赖于计算机软件和复杂的软件包,越来越多的高度复杂的计算机软件已经被开发出来以满足商业需求。由于持续增加的复杂度和规模,这些软件程序需要大规模的测试过程,涉及远远多于之前所需要的测试者和测试脚本。这种增长与将他们的测试集中化并转向外包式测试模型的组织有关。传统地,测试“嵌入”在每个项目的软件开发生命周期中,但是现在,集中的“离散”测试功能存在于组织内,其跨多个项目和版本进行测试。
测试工具已经被开发出来以辅助测试者执行测试过程的各个步骤。然而,现存的测试工具不能提供所需的功能性和效率以克服大规模测试过程带来的挑战。
各种产品和/或软件产品的测试在复杂度和范围上都有所增加。过去,相对小的设计者和开发者群组,可能10-30人,开发各种测试以测试和验证软件模块或者代码段的功能。这种个人的小群组已经是可管理的。然而,由于贡献于项目的个人数目变得很大,冗余度和复杂度增加,这带来了增加的成本和错误数目的增加。因此,存在解决上述问题的需要。
发明内容
用于下一代测试系统的自动化控制器包括数据库,其包括多个脚本和模块、商业层组件以及自动化组件。自动化组件包括自动化代理和自动化工作器。商业层组件可操作用于从多个脚本和模块确定下一脚本,并且响应于由自动化组件发送的获得下一脚本的请求,向自动化组件发送下一脚本。自动化代理可操作用于向商业层发送获得下一脚本的请求,从商业层接收下一脚本,并且向自动化工作器发送下一脚本以便执行。自动化工作器可操作用于执行下一脚本或其段,获得结果,并且向自动化代理发送状态更新、生命证据的通知以及执行的结果。
在审查下面的附图和详细的描述后,系统、方法和特征的其它实施方式,以及它们的相应优势对于本领域技术人员来说将是明显的或将变得明显。旨在使得所有此类的附加系统、方法、特征以及优势包括在本说明书中,在本发明的范围内,并且由后续的权利要求的保护。
附图说明
参考下面的附图和描述,以及包括在附件的报告页(其整体内容包含于此),本系统可以获得更好理解。附图中的部件不一定是按比例的,相反重点在于例示本发明的原理。此外,在图中,相似的参考标号指明各不同视图中的相应的部分。
图1示了下一代测试(“NGT”)系统的一个实施方式。
图2是示出使用NGT系统的整体测试过程的示图。
图3是NGT系统的关键组件的示图。
图4是NGT系统的一个实施方式的高层硬件框图。
图5是自动化控制器(“AC”)的逻辑示图。
图6示出自动化控制器的一个实施方式中的关键数据库表的示例。
图7是NGT系统的一个实施方式的概念示图。
图8是NGT系统的一个实施方式的逻辑示图。
图9是NGT系统的另一个实施方式的高层硬件框图。
具体实施方式
如图1所示,使用自动化控制器的下一代测试系统(“NGT系统”)100提供了允许提高测试计算机软件的效率和功能性的平台。系统100可以实现为与计算机硬件组件协作的系统和/或实现为计算机实现的方法。
NGT系统100可以包括统一的桌面102,其包括测试计划工具104、模块化脚本设计器106、执行工具栏108、以及缺陷管理组件110。NGT系统100还可以包括优先区分和分配管理器112、自动化控制器114、数据供应链控制器116、集成层118以及报告门户120。集成层可以链接到现有测试工具130(诸如Hewlett Packard的HPQuality CenterTM)、现有测试管理和质量管理工具140(诸如IBM理性质量管理器),以及数据库或者服务器150(具有SQL集成服务和、SQL分析服务的Microsoft SQL服务器)。NGT还可以包括虚拟机160,其与自动化控制器114接口连接。虚拟机160可以运行功能测试自动化工具162,例如惠普(Hewlett Packard)的HPQuickTest Professional(QTP),其是商业上可获得的功能和回归测试软件。自动化控制器114、自动化工作器和自动化代理可以驻留于虚拟机160内(“VM”)。虚拟机160可以运行功能测试自动化工具、例如功能和回归测试软件162、例如惠普的HP QuickTest Professional(QTP)。也可以使用其它类型的测试工具。
NGT系统100提供一套用于测试过程的“打包”工具。NGT系统100可以包含一组工具,该组工具与现有测试工具相结合,并拓展了它们的功能性。NGT系统100通过提供工具减少测试努力并增加测试质量来允许更大规模的功能测试。NGT系统100可以减少测试劳动。进一步,NGT系统100可以被扩展以跨客户端使用并且可以被构建为跨客户端使用的一组内部资产,并且设计成允许通过配置和扩展来处理客户端特定功能性。
图2是示出了使用NGT系统100的整个测试过程的示图。测试过程可以包括测试计划阶段202、测试准备阶段204以及测试执行阶段206。NGT系统100可以提供跨所有测试领域的增加的效率和功能性。从测试计划阶段202到测试准备阶段204、以及从测试准备阶段204到测试执行阶段206的过渡可以涉及工作分配208。测试计划阶段202可以包括制定范围210、估计212和配置资源214。测试准备阶段204可以包括设计新脚本222、优化回归包224、准备测试数据226、开发和开发自动化测试228。测试执行阶段206可以包括分配测试数据232、执行手动测试234、执行自动化测试236以及缺陷管理238。下一代测试系统100还可以包括贯穿测试过程的所有阶段的报告能力240。
图3示出了NGT系统100的关键组件的示图。关键组件可以包括测试计划工具104、模块化脚本设计器106、优先区分分配管理器112、测试执行工具栏108、自动化控制器114、测试数据供应链116、报告门户120以及缺陷管理工具110。
NGT系统100可以实现为与计算机硬件组件协作的系统和/或实现为计算机实现的方法。NGT系统100可以包括多个软件组件或子系统。例如模块化脚本设计器106和自动化控制器114的组件或子系统可以以硬件、软件、固件,或是硬件、软件、固件的任意组合来实现,并且可以或可以不驻留在单个物理或逻辑空间内。在该文档中所提及的并且可以或可以不在附图中示出的模块或子系统可以彼此远程地定位并且可以通过通信网络来耦合。
图4是NGT系统100的一个实施方式的高级硬件框图。NGT系统100可以包括计算机系统402、其可以是个人计算机并且可以包括各种硬件组件,诸如RAM 414、ROM 416、硬盘存储器418、高速缓冲存储器420、数据库存储422以及其它(也称为“存储器子系统426”)。计算机402可以包括任何适当的处理设备428,诸如计算机、微处理器、RISC处理器(精简指令集计算机)、CISC处理器(复杂指令集计算机)、大型计算机、工作站、单片计算机、分布式处理器、服务器、控制器、微控制器、离散逻辑计算机以及其它,如现有技术中已知的那样。例如,处理设备428可以是微处理器、x86兼容微处理器或者等效设备,并且可以集成到服务器、个人计算机或者任何适当的计算平台中。
存储器子系统426可以包括任何适当的存储组件,诸如RAM、EPROM(电子可编程ROM)、闪存存储器、动态存储器、静态存储器、FIFO(先入先出)存储器、LIFO(后入先出)存储器、循环存储器、半导体存储器、磁盘存储器、缓冲存储器、磁盘存储器、光存储器、高速缓冲存储器以及其它。任何适当形式的存储器都可以被使用,不管是磁介质上的固定存储、半导体设备中的存储还是通过通信链路可存取的远程存储。用户或者系统接口430可以耦合到计算机402并且可以包括各种输入设备436,诸如可由系统管理器选择的开关和/或键盘。用户接口还可以包括适当的输出设备440,诸如LCD显示器、CRT、各种LED指示器、打印机和/或语音输出设备,如现有技术中已知的那样。
为了促进计算机402和外部源之间的通信,通信接口442可操作地耦合到计算机系统。通信接口442可以例如是局域网,例如以太网、内联网、因特网或其它合适的网络444。通信接口442也可以连接到公共交换电话网(PSTN)446或POTS(普通老式电话系统),其可以经由因特网444来促进通信。任何适当的商业可用的通信设备或者网络都可以使用。
模块化脚本设计器106的描述如下。模块化脚本设计器106使用连同许可框架的模块化方式来组合简单的或促进脚本创建。模块化是将测试步骤分组为描述一块功能性的小型模块的过程。这些模块组合在一起形成测试脚本或者案例。MSD 106提供用于开发测试脚本的智能模块建议。测试脚本可以包括一个或者多个模块。当一个模块被添加到脚本中时,将可能的“下面模块”的列表显示给用户。因此,MSD 106可以改进知识管理并减少创建模块的重复性工作。用户还能够利用内嵌的(in-line)搜索功能来搜索模块。
模块化脚本设计器106还允许在模块中的元标签和指示参数。元数据被添加到模块中以便系统能够理解模块如何以及在何处使用。规定输入和输出参数以使得能够再利用模块和数据驱动方法。模块化脚本设计器106还允许规定与模块相关联的技能和必要先决条件。将技能分配给测试以便系统知道谁将能够或者可胜任执行脚本。规定先决条件(包括数据)以跟踪测试准备就绪可执行。模块化脚本设计器106还提供自动化批准工作流。集中化工作流系统用于使得模块能够被批准或被拒绝。在创建或者修改模块后,通知批准者。批准者可以批准该模块在所有脚本中使用、针对脚本子集使用或者针对单个脚本使用。
下面描述测试执行工具栏108。测试执行工具栏108可以是并入了测试者需要的所有工具的统一工具栏。测试执行工具栏108可以提供内嵌的测试执行。测试脚本可以是在工具栏内直接打开的,这节约测试者桌面空间并且避免屏幕间的某些键击,诸如ALT-Tab切换。缺陷提升(defect raising)和屏幕捕获可以是该过程的部分。测试执行工具栏108还可以提供嵌入批准列表。所有的模块/脚本批准都可以显示在工具栏中,并且批准者可以快速地打开相关脚本/模块以便批准。测试执行工具栏108还允许快速访问所有的NGT工具。可以提供快速启动栏来使得测试者能够快速访问所有的NGT工具。工具栏还可以处理关于NGT的登录管理。用户配置文件部分可用于改变用户信息。测试执行工具栏108还可以是可停驻的,具有自动隐藏功能。测试执行工具栏108可以停靠在屏幕的左手侧、并且其可以选择为可见的或者自动隐藏的。可扩展框架允许将额外的面板添加到工具栏。
下面描述优先区分和分配管理器(“PAM”)112。PAM 112利用实时分配逻辑提供对测试脚本的集中自动化优先区分。PAM 112提供可配置的优先区分因子。测试脚本基于一组集中的因子区分优先次序,并且这些因子可以集中地进行配置以影响整个测试操作(例如,为了针对约定关键性能指示符(“KPI”)改进性能)。PAM 112还提供基于技能的分配——这提供拉而非推的方法。测试者可以经由用户接口点击“获得下一个”来获得分配下一脚本以执行。基于加权的分配因子实时选择最佳脚本。管理者可以控制与他们团队成员的技能相比较的技能。PAM 112还可以提供管理者超权。给予管理者关于计划由其团队执行的脚本的概览。他们能够改变特定脚本的因子(例如,商业优先权)以重新区分队列的优先次序并迫使脚本被分配给特定的个人。PAM 112还可以提供对于新因子的可插框架。可以通过定义新因子类来增加新决策因子。可以通过用户接口来呈现因子并且在决策逻辑中赋予其权重。这可被用于实现增强的“应用统计”决策模型。
下面描述自动化控制器114。自动化控制器114可以是针对虚拟场上的弹性离线自动化的自动化框架,诸如“云环境”下的计算机器。自动化控制器114提供测试脚本的远程执行。自动化控制器代理可以运行在虚拟机(“VM”)上以管理测试脚本的执行。使用日志框架来支持执行。自动化控制器114还可以与PAM 112通信以获得下一脚本。这允许将集中化的因子应用到手动和自动化执行。
自动化控制器114提供测试模块的智能选择,以最大化与自动运行的每个测试脚本关联的“投资回报”或“ROI”。自动化控制器114为自动化统一选择提供最大ROI的测试脚本。关于是否使用自动化控制器114来使一个特定测试脚本自动化的选择可以基于与该测试脚本相关联的ROI。例如,特定测试脚本可以是处理用户的最初登录的测试脚本。因为处理用户最初登录的测试脚本可以在不变化的情况下由上百个不同测试脚本来使用,这样的测试脚本提供了高ROI,并且由此可以作为自动化的良好候选。ROI是对测试脚本自动化所达到的效率提高的测量。优先区分工作流辅助自动化团队来评估将被自动化的下一模块。用户接口430允许自动化团队来“登入”和“升级”自动化模块。
在某些实施方式中,自动化控制器114进一步提供模块化设计和部分自动化。自动化脚本可以开发为模块,并且每个自动化模块可以具有针对其映射的一个或多个手动模块。部分自动化支持脚本的自动化部分的快速执行。自动化控制器114用于可适用于将测试脚本的执行自动化的场合。
下面描述报告门户120。报告门户120提供可通过一个集中的在线门户访问的自动化报告能力。报告门户120可以包括完整的MicrosoftTM商业智能(“BI”)套组。该解决方案利用了SQL服务器集成服务、SQL服务器分析服务和SQL服务器报告服务,这些可以从Microsoft公司获得。定制的SQL服务器集成服务(SSIS)组件与外部测试工具130(诸如HP Quality CenterTM,其可从惠普公司获得)直接通信。
报告门户120还包括离线数据仓库以避免测试工具降级。可以维护离线数据仓库以避免对外部测试工具的直接询问。将基于维度的数据模型用于简化的报告。另外,将数据预聚集在多维在线分析处理(“MOLAP”)数据库中以提供快速分析。
报告门户120还提供基于立方的度量和KPI(关键过程指示符)。使用SS分析服务,测量和目标可以是已经被预定义好的,其可以包含在报告中。PowerPivot,可从Microsoft公司获得的电子制表软件插件允许数据在电子制表软件程序(诸如用于ad-hoc报告的Microsoft ExcelTM)中被快速地分析。另外,报告门户120提供与诸如Microsoft SharePointTM之类的解决方案的集成。在需要来自除HPQuality CenterTM之外系统的数据(例如,财务/生产数据)的情况下,该解决方案可以从诸如Microsoft SharePointTM之类的解决方案接收数据。SSIS组件允许解决方案在需要的情况下可容易地扩展到直接数据资源。
下面描述缺陷管理工具110。缺陷管理工具110可以简化用于提升、跟踪和更新缺陷的过程。缺陷管理工具110可以提供缺陷查看列表。可以给基于工具栏的缺陷列表提供实时的红黄绿(RAG)状态指示符。红色状态指示高风险或者严重项目问题、黄色状态指示中等风险并且绿色状态指示低风险。缺陷管理工具110可以允许快速访问缺陷的完整信息以查看最新状态。缺陷管理工具110还可以为内嵌缺陷提升提供测试历史。当通过工具栏执行测试时,可以捕获屏幕快照和测试步骤。当提升缺陷时,该信息预填充在缺陷中。可以直接上传屏幕快照和其他附件。缺陷管理工具110还减少“alt-tab”操作。通过在工具栏中包括核心缺陷管理,缺陷管理工具110能够降低“alt-tab”进入诸如HP Quality CenterTM的外部测试系统130的需求。缺陷管理工具110还使得能够自动化解锁脚本,以进一步避免在外部测试系统中花费的时间。缺陷管理工具110还提供基于团队的视图。管理者具有“团队视图”,从而他们能够查看当前影响他们团队的缺陷的相关大小尺寸和状态。
下面描述测试规划工具104。测试计划工具104提供用于估计、计划、选择回归和分配准备工作的智能接口。测试计划工具104提供辅助的估计。使用三个阶段过程来提供精确性水平更高的估计。使用来自之前测试版本的信息来改进估计。可以使用可插架构用于特定于客户端的计算。测试计划工具104还将要求的解构提供到测试中。测试计划工具104辅助用户将要求拆散成可管理数目的测试。协作工作能力允许“分步解决”的方法。测试计划工具104还提供通过技能来进行资源预测。对支持测试行为所需的技能进行早期预见成为可能,并且可以在用户接口上呈现可用性相对需求的图形显示。测试计划工具104还帮助通过提升交叉技能来塑造测试组织性。测试计划工具104还提供回归包建议。使用元数据驱动方法,系统将建议适当的回归包。基于风险的测试分数可以被用于相应地确定包的大小。
下面描述测试数据供应链116。测试数据供应链116自动化需求管理和测试数据的供应。测试数据供应链116可以提供数据目录。对数据类型进行建模并将其存储在数据库中。测试数据团队可以登入或者登出数据目录。同样,可以规定规则以实现基本的数据挖掘。测试数据供应链116还提供将数据映射到测试脚本。在准备过程中,针对脚本选择所需的数据类型。同样,利用模块化脚本设计器106,可以将数据参数直接映射到脚本参数,以允许在运行时自动化分配。测试数据供应链116还提供对“库存水平”的监视以及重订购。测试数据供应链116可以监视所有类型数据的需求相对容量的比较,并且当数据获得测试脚本的“使用”时,更新该水平。测试数据供应链116可以从数据团队或者经由自动化供应来订购额外的数据。测试数据供应链116还可以与PAM 112集成在一起。在区分优先次序过程中可以使用库存水平来避免运行不具有可用测试数据或者库存水平低的脚本。
例如,如果50个特定测试脚本需要输入数据类型“A”,27个特定测试脚本需要输入数据类型“B”,则测试数据供应链116为每个脚本组织所需数据类型并以“适时制(just in time)”方式将数据提供给测试脚本以避免冗余并减少复杂度。另外,这种测试数据可以基于特定测试的结果在测试过程的整个生命周期中发生改变。相应地,测试数据供应链116跟踪需要的改变并更新相应测试脚本需要的数据集,从而当测试脚本正在被执行时,最新的测试数据可用于测试脚本。
图5示出自动化控制器(“AC”)114的一个实施方式的逻辑图。自动化控制器114可以与商业层502交互,该商业层502也与用户接口(“UI”)层504交互。用户接口层504可以包括自动化脚本开发用户接口(“UI”)506和自动化脚本执行UI 508。商业层502可以包括自动化开发服务510、运行实例状态服务512、通知服务514、认证/授权服务516、获得下一服务518和公共服务520。自动化开发服务510可以用于搜索、创建、维持、配置、留存(persisting)和队列延迟自动化脚本。运行实例状态服务512可以是应用服务,其配置成支持执行状态示图、搜索和留存。通知服务514可以是远程应用服务用以当发生异常时警示用户。认证/授权服务516可以是应用服务用以根据用户的配置文件认证用户并且提供隔离。获得下一服务518可以是基于下面的规则提供用于执行的下一候选脚本的服务:立即执行,以及延迟直到执行(如果在请求的时间已经超过延迟时间,则脚本变成高优先级)。公共服务520可以包括一组公共服务,例如异常处理、日志记录、电子邮件发送等。商业层502和自动化控制器114可以与NGT数据库150交互。用户或NGT客户端521可以使用UI层来搜索自动化脚本或观察实例状态。
自动化控制器114可以包括两个组件,自动化代理522和自动化工作器524。自动化代理522可以使用Windows Workflow
FoundationTM 4.0来开发。自动化代理522可以使得PAM 130来管理和主控工作流运行时、控制、管理和报告自动化工作器524的运行实例。自动化代理522可以与NGT应用数据库或服务器526通信,以通过调用NGT获得下一服务来获得用于执行的下一脚本。NGT获得下一服务清除PC状态、获得自动化脚本路径、获得自动化数据以及向自动化工作器传送工作。自动化代理522可以与NGT应用数据库或服务器526通信,以监视实例状态,包括完成、空闲、中止和运行状态。也可以监视其它的状态。
通过监视包含执行状态和跟踪的文件系统中的功能测试自动化工具162输出的日志,自动化代理522可以监视实例状态。自动化代理522也可以解析日志文件以确定将要执行的下一块或模块。自动化代理522可以发送延迟指令并且将延迟指令留存在存储在NGT数据库526上的自动化队列中。延迟指令可以是这样的消息,其指示自动化控制器114来暂停测试脚本的执行、存储关于执行暂停处的块的信息、对于预定的时间延迟段将测试脚本转发回优先区分和分配管理器,并且在时间延迟到期后,允许从中止执行的块继续执行测试脚本。当测试脚本的执行被中止时,可以执行另一个测试脚本。通过自动化工作器以及功能性测试自动化工具162,解析过程可以贯穿自动化脚本的执行而发生,或在自动化脚本的执行的完成处发生。通过留存或存储或维护NGT数据库526的日志文件的相关内容,自动化代理522也可以管理留存和书签并且更新NGT数据库526状态日志。附加地,自动化代理522可以提出告警,例如当经由自动化工作器524日志或者在运行时环境本身中捕获异常时,通过经由NGT应用服务向自动化支持员工528发送告警消息。
自动化工作器524可以具有多个作用,包括等待来自于自动化代理114的指令。例如,接着自动化工作器524接收来自于自动化代理522的执行指令和细节,自动化工作器524可以启动功能测试自动化工具162、经由来自于测试管理工具130的功能测试自动化工具打开脚本、向功能测试自动化工具162数据表添加(如果准确,当提及时也在其它位置添加)数据,并且运行脚本和选择结果路径。当异常发生时,自动化工作器524也可以捕获异常并且通知自动化代理522。通过提出内部事件,自动化工作器524也可以通知自动化代理522何时脚本执行完成、故障、删除或另一状态,这有助于自动化代理522确定何时执行下一获得下一动作。
自动化控制器114的操作支持可以包括部署和重新启动虚拟机。自动化控制器522可以使用.msi文件手动地部署在虚拟机上,该.msi文件使用微软的可视化工作室团队系统2010(其是商业上可获得的计算机应用)生成。用于部署的该选项可能不需要附加的配置,但更新需要增加的支持。自动化控制器522也可以使用微软的ClickOnce(其是另一个商业上可获得的计算机应用)来部署。通过在第一次安装后实现自动化的更新,用于部署的该选项减少了支持要求。客户端可能需要允许自动化的更新,其可能需要用户作为管理用户来登录。
重启虚拟机160可以涉及操作在客户端处的基于虚拟网络计算(“VNC”)的配置,以最大化硬件使用。例如,每个虚拟机可以分配给分别登录的三个管理用户。当由于操作或维护需求重启虚拟机时,自动化控制器114可以在重启期间、在控制台会话的启动处实例化自动化代理522、或创建自动化代理522的实际实例;在启动处远程地登录进两个额外的会话;并且在远端机器上的启动处开始自动化代理522的实例。
自动化控制器114中的组件使用功能测试自动化工具162传递到自动化代理工作流,其可以是预定义的平面文件格式,用于在功能测试自动化工具会话和工作流之间传递信息。文件格式可以包括例如要运行的下一会话和直到下一执行的延迟时间的信息。
图6示出可以由自动化控制器114所使用的关键数据库表。由自动化控制器114所使用的关键数据库表可以包括:执行队列数据表602、执行历史数据表604、段历史数据表606、段历史日志数据表608、生命证据数据表610和代码数据表612。下表包括可以存储在关键数据库表中的数据、数据类型或格式以及数据的描述。自动化控制器114的其它实现可以使用不同的、附加的或其它数据或变量。
用于自动化控制器执行队列的变量的表
用于自动化控制器执行历史的变量的表
用于自动化控制器段历史的变量的表
用于自动化控制器段历史日志的变量的表
用于自动化控制器生命证据的变量的表
由自动化控制器114所提供的测试自动化可以发生在虚拟机(“VM”)上。每个VM 160可以具有功能测试自动化工具162的实例,其连同基于小型服务的应用来安装,以轮询将执行的下一任务。服务将调用PAM 112以获得将要执行的下一测试,在功能测试自动化工具162中加载该测试,运行该测试,记录结果并且接着要求下一次测试。自动化控制器114可以包括四种类型的特征,“获得下一脚本”、“脚本生成”、“脚本执行”以及“复原(resilience)”。获得下一脚本特征允许向VM部署服务并且调用中央Web服务来获得下一脚本,其返回一组输入变量和将要执行的模块列表。脚本生成特征创建将要加载进功能测试自动化工具162以用于执行的脚本。脚本执行特征运行功能测试自动化工具162中的脚本并且记录结果。复原特征允许服务对于在执行期间发生的错误(例如,功能测试自动化工具162冻结等)复原并且自动地从这些情况恢复。
自动化控制器114可以自动化在模块化层的脚本设计,在模块化层中手动模块和自动化模块之间存在一对一映射。例如,测试脚本“X”可以包括一个或多个模块。当脚本“X”具有都可自动化的模块时,NGT系统100向自动化控制器114发送脚本以进行测试。自动化控制器114可以接着向VM提供脚本以运行未附接的脚本。
NGT系统100可以包括可以提供工具栏中模块的内嵌自动化的UI。例如,当脚本具有手动模块和自动化模块的组合时,NGT系统100可以向测试者分配脚本。自动化控制器114可以在工具栏中包括用于指示模块是自动化模块的图标。测试者可以点击图标,以在测试者的桌面上自动化该模块。
自动化控制器114可以提供特征以获得当被自动化时将产生最高投资回报(“RoI”)的脚本。通过分析系统中的模块,NGT系统100可以确定如何可以实现高的RoI。例如,系统100可以寻找包括在多数脚本中的模块,或寻找包括最高数目的自动化模块的脚本。基于这些和其它因素,系统100可以确定当由自动化控制器114自动化和运行时哪些脚本或模块将返回最高RoI。
图7示出NGT系统100的一个实施方式的概念性示图。如图7中所示,NGT系统100可以包括呈现层710、商业组件层720、集成层118和数据层740。呈现层710包括用户接口(UI)组件712,其表达和格式化数据以便显示给用户702,包括项目管理者、测试者、测试领导,并且获得和验证用户702输入的数据。呈现层710还包括UI过程组件714,其驱动使用单独用户过程组件的过程以避免对过程流进行硬编码,并且阐明在UI元素自身中的管理逻辑。商业组件层720实现商业逻辑和工作流。商业组件层720包括实现应用的商业逻辑的商业组件722。商业组件层720还包括商业实体724和商业工作流726。商业实体是商业组件层720中的数据传递对象。这些是可以跨多层(包括呈现层710)使用的公共对象,用以传递数据。
集成层118向上游层(商业组件层720和呈现层710)提供后端不可知访问(backend agnostic access),并实现经由一个公共接口到一个或者多个后端系统诸如QC、理性和团队基础服务器的可插入性。集成层118实现以下设计模式:抽象基本类从ProvideBase(其为Microsoft的.Net框架可用的类)中继承;每个具体实现者依次从上面的抽象类中继承;基于.config文件中的类型定义加载适当的提供者。集成层118还包括集成外观(integration facade)。集成外观向商业组件层720暴露简化的接口,并从来自一个或者多个后端库或高速缓存(R2)的数据传递对象的组合中读取数据,并将它们合并为一个公共的超级数据传递对象以返回给商业组件层720。集成层118还包括NGT组件734,其对接在集成外观732和数据层740之间,并且可以在需要时为集成层118提供映射功能性。集成层118还包括高速缓存组件736和测试工具组件738。测试工具组件738是用于从测试工具704读取/写入数据的请求的提供者。
数据层740包括数据访问组件742,其集中化访问下层NGT数据存储所必需的逻辑,暴露用以允许更简单和更透明的访问数据库的方法。其还包括数据帮助器/实用工具744,其用于集中化一般数据访问功能性,诸如管理数据库连接。数据层740还包括服务代理736,其提供用于与应用服务器服务对话的窗口通信基础(WindowsCommunication Foundation)服务代理。数据层740可以是企业库数据访问应用块(Enterprise Library Data Access Application Block)或者定制设计的数据层。替代地,可以使用对象相关映射工具,诸如Entity Spaces(可从EntitySpaces有限责任合伙公司获得)、Genome(可从TechTalk股份有限公司获得)、LINQ-to-SQL(可从Microsoft公司获得)、Entity Framework(也可从Microsoft公司获得)或者LLBLGen Pro(可从Solutions Design获得),来生成数据层740组件。
NGT 100中的交叉切割功能705可以例如包括安全、异常处理、锁定和通信。NGT 100还可以包括本地高速缓存706。从NGT 100的输出例如可以包括电子邮件功能性707或者其它信息通信功能性。电子邮件可以包括对测试者的有关脚本拒绝或者批准的通知,对批准者的有关脚本准备好被审核的通知以及有关安全考虑、系统异常和审计的通知。NGT 100还可以将信息传送给测试工具130和NGT数据库150。
图8示出了NGT系统100的一个实施方式的逻辑示图。在该实施方式中,呈现层710可以包括多个UI组件712和UI过程714,包括管理接口811、执行工具栏812、脚本模块设计器813、统一桌面102、缺陷跟踪接口814、KPI视图815和批准审核接口816。商业组件层720可以包括多个组件,包括用户配置文件组件821、搜索服务组件822、工作流服务组件823、商业规则组件824、时间保持组件825、授权组件826以及认证组件827。集成层118可以包括集成外观732,其可以包括聚合831、集成API 832和分解833。集成层118还可以包括提供者834、高速缓存835和数据转换836。数据层740可以提供到数据提供者841、数据帮助器/实用工具842和数据服务API 843的访问。
图9是NGT系统的另一个实施方式的高级硬件框图。NGT系统100及其关键组件104、106、108、114、116、120和110可以被实现为与计算机硬件组件诸如处理设备428协作的系统,和/或实现为计算机实现的方法。NGT系统100可以包括多个软件组件或者子系统。这些组件或者子系统,诸如测试计划工具104、模块化脚本设计器106、优先区分和分配管理器112、测试执行工具栏108、自动化控制器114、测试数据供应链116、报告门户120和/或缺陷管理工具110可以被实现为硬件、软件、固件或者硬件、软件和固件的任意组合,并且可以或者可以不驻留在单个的物理或者逻辑空间内。例如,本文所引用的模块或者子系统以及附图中可能示出或者可能未示出的内容可以相对于彼此远程地定位,并且可以通过通信网络耦合。
上述的逻辑、电路和处理可以被编码为计算机可读介质诸如CDROM、磁盘、闪存、RAM或者ROM、电磁信号或者其他机器可读介质中用于由处理器执行的指令。替代地或者另外地,逻辑可以被实现为使用硬件诸如一个或者多个集成电路的模拟或者数字逻辑或者执行指令的一个或者多个处理器;或者实现为应用编程接口(API)或者动态链接库(DLL)中的软件,共享内存中可用或者定义为本地或者远程程序调用的功能;或者实现为硬件和软件的组合。
逻辑可以表现(例如存储在其中或者其上)在计算机可读介质、机器可读介质、传播信号介质和/或信号承载介质中。介质可以包括任何包含、存储、传送、传播、或者传递可执行指令以便由指令可执行系统、装置或者设备来使用或者结合指令可执行系统、装置或者设备来使用的设备。机器可读介质可以选择性地是,但不限于电、磁、光、电磁或者红外信号,或者半导体系统、装置、设备或者传播介质。机器可读介质的例子的非限制性列表包括:磁或光盘、易失性存储器如随机存取存储器“RAM”、只读存储器“ROM”、可擦除可编程只读存储器(即EPROM)或者闪存,或者光纤。机器可读介质还可以包括有形介质,在其上印制可执行指令,因为逻辑可以被电存储为影像或者以另一种格式(例如通过光扫描)存储,并且然后编译和/或解释或者以其他方式处理。被处理的介质随后可以被存储在计算机和/或机器存储器中。
系统可以包括额外的或者不同的逻辑,并且可以以很多不同方式来实现。控制器可以实现为微处理器、微控制器、特定应用集成电路(ASIC)、离散逻辑或者其他类型电路或逻辑的组合。类似地,存储器可以是DRAM、SRAM、闪存或者其他类型的存储器。参数(例如,条件和阈值)和其他数据结构可以单独地存储和管理,可以合并到单个存储器或者数据库中,或者可以以很多不同的方式在逻辑上和物理上进行组织。程序和指令集可以是单个程序的部分、多个单独的程序或者是跨若干存储器和处理器分布的。
尽管已经描述了本发明的各种实施方式,对于本领域普通技术人员明显的是,在本发明的范围内更多的实施方式和实现方式都是可能的。因此,本发明除了以所附权利要求及其等效方案为依据之外不受任何限制。
Claims (20)
1.一种用于下一代测试系统的自动化控制器,包括:
数据库,其包括多个脚本和模块;
商业层组件;以及
自动化组件,其包括自动化代理和自动化工作器,
其中所述商业层组件可操作用于从所述多个脚本和模块确定下一脚本,并且响应于由所述自动化组件发送的获得下一脚本的请求,向所述自动化组件发送下一脚本,
其中所述自动化代理可操作用于向所述商业层发送所述获得下一脚本的请求,从所述商业层接收所述下一脚本,并且向所述自动化工作器发送所述下一脚本以便执行,以及
其中所述自动化工作器可操作用于执行所述下一脚本或其中的段,获得结果,并且向所述自动化代理发送状态更新、发送生命证据的通知以及执行的结果。
2.根据权利要求1所述的自动化控制器,其中所述商业层进一步可操作用于:
计算运行下一脚本的投资回报(RoI),以及
基于运行所述下一脚本的RoI来确定所述下一脚本。
3.根据权利要求2所述的自动化控制器,其中所述商业层可操作用于通过分析所述多个模块来计算运行所述下一脚本的RoI。
4.根据权利要求3所述的自动化控制器,其中分析所述多个模块包括确定包括给定模块的多个脚本的数目。
5.根据权利要求3所述的自动化控制器,其中分析所述多个模块包括确定包括在给定脚本中的自动化模块的数目。
6.根据权利要求1所述的自动化控制器,其中所述商业层组件进一步可操作用于:
计算用于开发自动化模块或脚本的投资回报(RoI),以确定向哪转移开发工作,以及
基于所述脚本的RoI确定将自动化的所述下一脚本。
7.根据权利要求1所述的自动化控制器,其中如果在执行所述脚本中发生异常,所述商业层组件进一步向用户告警。
8.一种用于在下一代测试系统中自动化测试模块化脚本的方法,所述方法包括:
在自动化控制器处接收多个脚本和模块,其中所述自动化控制器包括:
数据库,用于存储所述多个脚本和模块,
商业层组件,以及
自动化组件,其包括自动化代理和自动化工作器;
通过所述商业层组件从所述多个脚本和模块确定下一脚本,并且响应于由所述自动化组件发送的获得下一脚本的请求,向所述自动化组件发送所述下一脚本,
其中所述自动化代理操作用于向所述商业层发送所述获得下一脚本的请求,从所述商业层接收所述下一脚本,并且向所述自动化工作器发送所述下一脚本以便执行,以及
其中所述自动化工作器操作用于执行下一脚本或其中的段,获得结果,并且向所述自动化代理发送状态更新、发送生命证据的通知以及执行的结果。
9.根据权利要求8所述的方法,其中所述商业层进一步操作用于:
计算运行下一脚本的投资回报(RoI),以及
基于运行所述下一脚本的RoI来确定所述下一脚本。
10.根据权利要求9所述的方法,其中所述商业层操作用于通过分析所述多个模块来计算运行所述下一脚本的RoI。
11.根据权利要求10所述的方法,其中分析所述多个模块包括确定包括给定模块的多个脚本的数目。
12.根据权利要求10所述的方法,其中分析所述多个模块包括确定包括在给定脚本中的自动化模块的数目。
13.根据权利要求8所述的方法,其中所述商业层组件进一步可操作用于:
计算用于开发自动化模块或脚本的投资回报(RoI),以确定向哪转移开发工作,以及
基于所述脚本的RoI确定将自动化的所述下一脚本。
14.根据权利要求8所述的方法,其中如果在执行所述脚本中发生异常,所述商业层组件进一步向用户告警。
15.一种用于在下一代测试系统中自动化测试模块化脚本的系统,所述系统包括:
计算机处理器;
与所述计算机处理器通信的存储器,所述存储器包括用于自动化控制器组件的逻辑,其中所述自动化控制器组件包括自动化代理和自动化工作器,并且其中当由所述计算机处理器执行时,所述逻辑使得所述计算机处理器:
接收多个脚本和模块;
在所述存储器上的数据库中存储所述多个脚本和模块;
从所述多个脚本和模块确定下一脚本,并且响应于由所述自动化控制器组件发送的获得下一脚本的请求,向所述自动化控制器组件发送所述下一脚本;
向商业层发送所述获得下一脚本的请求;
从所述商业层接收所述下一脚本;
向所述自动化工作器发送所述下一脚本以便执行;
在所述自动化工作器处执行所述下一脚本或其中的段;
从所述自动化工作器获得来自于执行所述下一脚本或其中的段的结果;以及
向所述自动化代理发送状态更新、生命证据的通知以及执行的结果。
16.根据权利要求15所述的系统,其中所述计算机处理器进一步:
计算运行下一脚本的投资回报(RoI),以及
基于运行所述下一脚本的RoI来确定所述下一脚本。
17.根据权利要求16所述的系统,其中所述计算机处理器进一步通过分析所述多个模块来计算运行所述下一脚本的RoI。
18.根据权利要求17所述的系统,其中分析所述多个模块包括确定包括给定模块的多个脚本的数目。
19.根据权利要求17所述的系统,其中分析所述多个模块包括确定包括在给定脚本中的自动化模块的数目。
20.根据权利要求15所述的系统,其中所述计算机处理器进一步:
计算用于开发自动化模块或脚本的投资回报(RoI),以确定向哪转移开发工作,以及
基于所述脚本的RoI确定将自动化的所述下一脚本。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161476623P | 2011-04-18 | 2011-04-18 | |
US61/476,623 | 2011-04-18 | ||
US13/446,311 | 2012-04-13 | ||
US13/446,311 US9183124B2 (en) | 2011-04-18 | 2012-04-13 | Automation controller for next generation testing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102841842A true CN102841842A (zh) | 2012-12-26 |
CN102841842B CN102841842B (zh) | 2016-03-30 |
Family
ID=47022414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210127010.2A Active CN102841842B (zh) | 2011-04-18 | 2012-04-18 | 用于下一代测试系统的自动化控制器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102841842B (zh) |
CA (1) | CA2775165C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694123A (zh) * | 2018-05-14 | 2018-10-23 | 中国平安人寿保险股份有限公司 | 一种回归测试方法、计算机可读存储介质及终端设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10838850B2 (en) | 2017-11-27 | 2020-11-17 | Accenture Global Solutions Limited | Robotic regression testing for smart devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659547A (en) * | 1992-08-31 | 1997-08-19 | The Dow Chemical Company | Script-based system for testing a multi-user computer system |
CN101669114A (zh) * | 2007-04-27 | 2010-03-10 | 微软公司 | 动态加载脚本 |
US20110035629A1 (en) * | 2005-12-12 | 2011-02-10 | Noller Jesse A | Automated software testing framework |
-
2012
- 2012-04-17 CA CA2775165A patent/CA2775165C/en active Active
- 2012-04-18 CN CN201210127010.2A patent/CN102841842B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659547A (en) * | 1992-08-31 | 1997-08-19 | The Dow Chemical Company | Script-based system for testing a multi-user computer system |
US20110035629A1 (en) * | 2005-12-12 | 2011-02-10 | Noller Jesse A | Automated software testing framework |
CN101669114A (zh) * | 2007-04-27 | 2010-03-10 | 微软公司 | 动态加载脚本 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694123A (zh) * | 2018-05-14 | 2018-10-23 | 中国平安人寿保险股份有限公司 | 一种回归测试方法、计算机可读存储介质及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CA2775165A1 (en) | 2012-10-18 |
CA2775165C (en) | 2016-02-09 |
CN102841842B (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7885793B2 (en) | Method and system for developing a conceptual model to facilitate generating a business-aligned information technology solution | |
CN102789414B (zh) | 用于集成测试平台的优先级化和指派管理器 | |
AU2012202261B2 (en) | Test data supply chain manager for an integrated testing platform | |
US8645326B2 (en) | System to plan, execute, store and query automation tests | |
CN102789415B (zh) | 用于下一代生成测试系统的模块化脚本设计器 | |
US9183124B2 (en) | Automation controller for next generation testing system | |
CN103336705B (zh) | 脚本处理和工作流系统间的自动转码和语义自适应 | |
US8788928B2 (en) | System and methodology for development of stream processing applications utilizing spreadsheet interface | |
US9098364B2 (en) | Migration services for systems | |
Franke et al. | An architecture framework for enterprise IT service availability analysis | |
CN102880543B (zh) | 用于集成测试平台的测试数据供应链管理器 | |
US8856174B2 (en) | Asset managing apparatus and asset managing method | |
CN101946258A (zh) | 基于计算机的业务过程在专用硬件上的基于模型的部署 | |
US20170351509A1 (en) | Prototype management system | |
Litan et al. | Business’ new requirement: Information systems integration–Methods and technologies | |
CN102841842A (zh) | 用于下一代测试系统的自动化控制器 | |
Trad | A Relational DataBase based Enterprise Transformation Projects | |
Zhou et al. | Leveraging cloud platform for custom application development | |
Hruby et al. | Microservice Architecture Patterns for Enterprise Applications Supporting Business Agility | |
Crowder et al. | The overall systems engineering design | |
Groenda et al. | Model integration method and supporting tooling: project deliverable D5. 1 | |
Trad | Enterprise Transformation Projects-Cloud Based Concept for Business Process Management (CBC4BPM) | |
Agapova | SQL databáze v oblasti Big Data Analytics; jejich porovnání a využití v komerčním světě | |
Stier et al. | Evaluation methodology for the CACTOS runtime and prediction toolkits: project deliverable D5. 4 | |
Kim et al. | Convergence Mobile Application Architecture on Requirement View |
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 |