CN102193862A - 在多个执行环境中测试用户界面 - Google Patents

在多个执行环境中测试用户界面 Download PDF

Info

Publication number
CN102193862A
CN102193862A CN201110065878XA CN201110065878A CN102193862A CN 102193862 A CN102193862 A CN 102193862A CN 201110065878X A CN201110065878X A CN 201110065878XA CN 201110065878 A CN201110065878 A CN 201110065878A CN 102193862 A CN102193862 A CN 102193862A
Authority
CN
China
Prior art keywords
execution environment
action
driver
execution
state
Prior art date
Application number
CN201110065878XA
Other languages
English (en)
Other versions
CN102193862B (zh
Inventor
J·A·穆哈斯凯
R·沃格里内克
B·S·沃德斯沃斯
Original Assignee
微软公司
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
Priority to US12/720,691 priority Critical
Priority to US12/720,691 priority patent/US20110225566A1/en
Application filed by 微软公司 filed Critical 微软公司
Publication of CN102193862A publication Critical patent/CN102193862A/zh
Application granted granted Critical
Publication of CN102193862B publication Critical patent/CN102193862B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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

Abstract

公开了在多个执行环境中测试用户界面的方法,系统和计算机可读介质。一种具体方法包括:选择一个或多个UI测试以及其中要运行该UI测试的一个或多个执行环境。各执行环境中的一个被指定为驱动程序执行环境。显示与该驱动程序执行环境相对应的驱动程序UI。当在驱动程序UI处接收到UI动作时,将该UI动作的数据表示从驱动程序执行环境发送到每一个其他执行环境。该UI动作在每一个其他执行环境中基本上同时重复。

Description

在多个执行环境中测试用户界面

技术领域

[0001] 本发明涉及应用程序的测试,尤其涉及多个执行环境中的应用程序测试。 背景技术

[0002] 软件厂商经常在多个计算平台上发布软件应用程序。在发布之前,经常在每个计算平台上测试该软件应用程序。在多个平台上反复的软件测试是耗时的。例如,每次对特定平台的测试重复由于为每次测试重复而反复重配置应用程序,可能引起时间和资源上的开销。

发明内容

[0003] 公开了一种在多个执行环境中测试用户界面(UI)的方法。在一个执行环境(例如,“驱动程序”执行环境)中进行的UI动作在一个或多个其他执行环境中自动且基本上同时重复。可向用户(例如,UI测试者)提供平视显示画面(HUD),该HUD包括由每个执行环境所生成的UI并且标识这些执行环境之间的状态或外观上的不同之处。

[0004] 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。

附图说明

[0005] 图1是示出在多个执行环境中测试用户界面的系统的具体实施例的示图。

[0006] 图2是示出在多个执行环境中测试用户界面的系统的另一个具体实施例的示图。

[0007] 图3是示出图1的系统或图2的系统上的数据流的具体实施例的数据流图。

[0008] 图4是示出在多个执行环境中测试用户界面的方法的具体实施例的流程图。

[0009] 图5是示出显示驱动程序执行环境和其他执行环境的平视显示画面(HUD)的具体实施例的屏幕截图。

[0010] 图6是一计算环境的框图,该计算环境包括可用于支持如图1-5所示的计算机实现的方法、计算机程序产品以及系统组件的各实施例的计算设备。

具体实施方式

[0011] 在一具体实施例中,一种计算机实现的方法包括:选择与基于用户界面(UI)的应用程序相关联的一个或多个测试,并且选择多个执行环境。多个执行环境中的一个被指定为驱动程序执行环境。该方法还包括:显示与驱动程序执行环境相对应的驱动程序UI。该方法进一步包括:在驱动程序UI处接收与一个或多个测试相关联的UI动作。该方法包括: 将UI动作的表示从驱动程序执行环境发送到每一个其他执行环境。该UI动作在每一个其他执行环境中基本上同时重复。在一个替换实施例中,可以在驱动程序执行环境中进行随机(ad hoc)测试,并且该随机测试能在其他执行环境中复制。[0012] 在另一个具体实施例中,一种计算机系统包括存储器和耦合到该存储器的处理器。该处理器被配置为执行指令,该指令导致用户界面(UI)测试应用程序,该用户界面测试应用程序包括平视显示画面(HUD)和通信总线。该HUD被配置为显示多个执行环境中的每一个,其中多个执行环境中的一个被指定为驱动程序执行环境。该HUD被配置为在驱动程序执行环境处接收与UI测试相关联的UI动作。该HUD进一步被配置为将UI动作的表示从驱动程序执行环境发送到每一个其他执行环境。该UI动作在每一个其他执行环境中基本上同时重复。通信总线耦合到多个执行环境中的每一个,并被配置为从驱动程序执行环境向每一个其他执行环境广播数据。

[0013] 在另一个具体实施例中,一种计算机可读介质包括指令,该指令当被计算机执行时使得计算机选择与基于用户界面(UI)的应用程序相关联的一个或多个测试,并选择多个执行环境。多个执行环境中的一个被指定为驱动程序执行环境。该指令还使得计算机初始化在多个执行环境中的每一个处的通信代理,并显示与驱动程序执行环境相对应的驱动程序UI。该指令进一步使得计算机在驱动程序UI处接收与一个或多个测试相关联的UI动作。该指令使得计算机将UI动作的表示从驱动程序执行环境处的通信代理通过通信总线发送到每一个其他执行环境处的通信代理。该UI动作在每一个其他执行环境中基本上同时重复。

[0014] 图1示出了在多个执行环境中测试用户界面(UI)的系统100的具体实施例。系统100包括平视显示画面(HUD) 110和通信总线150。该系统还包括多个执行环境(例如, 说明性执行环境120、130和140)。多个执行环境中的一个被指定为驱动程序执行环境。例如,在图1示出的具体实施例中,“执行环境A”被指定为驱动程序执行环境120。在一具体实施例中,系统100由计算设备来实现。一般而言,图1的系统100可操作为在执行环境 120,130和140的每一个处基本上同时测试UI。例如,UI测试可以是随机测试或可基于预定测试例和场景。

[0015] 驱动程序执行环境120可被配置为在执行环境120、130和140的同时UI测试期间从用户102接收UI动作104。驱动程序执行环境120 (或驱动程序执行环境120处执行的测试应用程序)可将UI动作104转换成UI动作表示124。例如,UI动作表示IM可包括一组输入设备控制(例如,键盘键入、鼠标移动、以及鼠标点击、触笔控制、触摸屏控制、 多点触摸控制、或任何其他输入设备控制)。输入设备控制也可包括定时参数(例如,等待时间)。UI动作表示IM还可包括自动生成的软件代码,该软件代码可执行来重复UI动作 104。驱动程序执行环境120可将UI动作表示124(例如,以串行化的格式)发送到每一个其他执行环境130、140。在一具体实施例中,UI动作表示124由驱动程序执行环境120的通信代理122通过通信总线150广播到其他执行环境130、140的通信代理132、142。

[0016] 每一个其他执行环境130和140可接收UI动作表示134、144,并基于UI动作表示 134、144基本上同时重复UI动作104。因此,UI动作104 (诸如,与UI测试相关联的UI动作)可以在一个执行环境处执行,并可在多个其他执行环境中基本上同时重复。应注意,UI 动作表示124、134和144可以是相同的,并且UI动作表示124、134和144可以是机器及计算环境无关的。因此,UI动作表示可以被发送到多个执行环境,而不执行UI动作表示的个别格式化或配置。

[0017] HUD 110可显示每一个执行环境120、130和140。例如,HUD 110可通过显示设备

5向用户102显示执行环境120、130和140。在一具体实施例中,HUD 110可通过远程桌面协议(RDP)会话来显示一个或多个执行环境。例如,HUD 110可通过分别与非驱动程序执行环境130和140的RDP会话111和112来显示非驱动程序执行环境130和140。在一具体实施例中,HUD也可通过RDP会话来显示驱动程序执行环境120。

[0018] 在一具体实施例中,HUD 110还被配置为从用户102接收对新的驱动程序执行环境的指定。HUD 110也可被配置为向用户102提供UI测试结果的视觉指示符(诸如,说明性视觉指示符106)。例如,视觉指示符106可指示在每一个执行环境120、130和140处已经进行了 UI动作104之后,第一执行环境具有不同于第二执行环境的状态。该状态可包括UI 屏幕截图、导航状态、模型状态、自动化状态、参数状态、以及性能度量(例如,在UI动作的执行期间耗费的存储器和处理器时间量)中的一个或多个。将两个执行环境之间的状态进行比较可包括图像的逐位比较、带有投影的分辨率差别的图像的比较、出于其他辅助选项要求(例如,色盲,等等)对图像的调节、不同语言的串的比较(例如,当主测试操作者(例如用户102 (只说英语时,该比较可包括翻译以使得该说英语者能有效地测试其他语言)、 不同显示介质的比较(例如,台式大小的对比移动设备大小的)(包括对屏幕分辨率差别的补偿),以及其他比较。

[0019] HUD 110可比较并检测各种执行环境120、130和140的状态中的失配。HUD进一步参考图5来描述并示出。用户102可基于视觉指示符106来采取行动(例如,报告隐错)。 例如,为了使偏离的(例如,失配的)执行环境与其他执行环境保持一致,用户102可指定新的驱动程序执行环境,禁用系统100处的UI动作复制,并在偏离的执行环境处视需要做出UI动作。

[0020] 在一具体实施例中,当系统包括多个执行环境时,这些执行环境中的一个或多个可由虚拟机来实现。例如,驱动程序执行环境120可以是系统100的本机(诸如,“主机”) 执行环境,而其他执行环境130、140可在系统100处由虚拟机来执行(诸如,作为“客”环境)O

[0021] 在操作中,可选择针对基于UI的应用程序的一个或多个测试以便在多个所选择的执行环境(例如,执行环境120、130和140)中的每一个处执行。执行环境120、130和 140可以在显示分辨率、文本语言(例如,英语对比西班牙语)、软件应用程序(例如,不同的web浏览器或同一个web浏览器的不同版本)、操作系统、硬件架构(例如,32位对比64 位)、机器状况(诸如,“崭新的”机器对比带有“进化状态的”机器)、在其他特性方面、或在以上各个的组合方面可以互相不同。应注意,这些不同仅仅是说明性的,且不可被认为是限制。HUD 110可向用户102显示驱动程序执行环境120,且驱动程序执行环境120可从用户接收UI动作104。例如,UI动作104可以是经由鼠标点击在web浏览器处的按钮按下。驱动程序执行环境120可基于UI动作104来生成UI动作表示124,并将UI动作表示IM发送到其他执行环境130和140。

[0022] 其他执行环境130和140可基本上同时重复UI动作104。例如,其他执行环境130 和140可基本上同时执行web浏览器按钮按下。HUD 110可显示各种执行环境120、130、 140。HUD 110还可在检测到执行环境120、130、140中的两个之间的状态失配时显示一视觉指示符106。例如,视觉指示符106可指示在web浏览器按钮按下之后,第三执行环境140 具有不同于驱动程序执行环境120以及第二执行环境130的UI状态,由此指示了第三执行环境140处的web浏览器的可能隐错。

[0023] 该测试过程可对在系统100处所接收的每一个UI动作104重复。例如,可以在驱动程序执行环境120处接收第二 UI动作,并且该第二 UI动作的表示可从驱动程序执行环境发送到每一个其他执行环境130和140。

[0024] 可以理解,图1的系统100可实现在多个执行环境中基本上同时的UI测试,而不产生由于重新配置或任务切换导致的开销。因此可以理解,图1的系统100可以减少与多个执行环境所兼容的基于UI的应用程序的整体测试时间。

[0025] 图2示出了在多个执行环境中测试用户界面的系统200的另一个具体实施例。系统200包括多个计算设备(诸如,说明性计算设备210、220和230)。每个计算设备可包括一个或多个执行环境。例如,第一计算设备210可包括第一执行环境212,第二计算设备220 可包括第二执行环境222,第三计算设备230可包括第三执行环境232。这些执行环境中的一个被指定为驱动程序执行环境。例如,在图2所示的具体实施例中,“执行环境A”被指定为驱动程序执行环境。

[0026] 驱动程序执行环境212可被配置为在执行环境212、222和232的UI测试期间从用户202接收UI动作204。驱动程序执行环境212可将UI动作214转换成UI动作表示 214,并将UI动作表示214发送到每一个其他执行环境222、232。在一具体实施例中,UI动作表示214由驱动程序执行环境212的通信代理213通过通信总线240广播到其他执行环境222、232的通信代理223、233。例如,通信总线可以使用计算设备210、220和230之间的基于套接字的通信来实现。或者,通信总线240可以由一些其他计算设备间通信协议来实现。

[0027] 每一个其他执行环境222和232可接收UI动作表示224和234,并基于UI动作表示2¾和234基本上同时重复UI动作204。

[0028] HUD 211可显示每一个执行环境212、222和232。例如,HUD 211可通过显示设备向用户202显示执行环境212、222和232。在一具体实施例中,HUD 211通过远程桌面协议 (RDP)会话来显示一个或多个执行环境。例如,HUD 211可通过分别与非驱动程序执行环境 222和232的RDP会话218和219来显示非驱动程序执行环境222和232。

[0029] HUD 211也可从执行环境接收UI状态。例如,当UI动作204已经在非驱动程序执行环境222和232处重复之后,HUD 211可从非驱动程序执行环境222和232分别接收UI 状态251和252。UI状态251、252每一个可包括UI屏幕截图、导航状态、模型状态、自动化状态、参数状态、以及性能度量中的一个或多个。HUD进一步参考图5来描述并示出。

[0030] 在一具体实施例中,第一计算设备210包括状态比较器215,状态比较器215被配置为比较各UI状态。例如,状态比较器215可将UI状态251和252与驱动程序执行环境 212的UI状态进行比较。状态比较器215也可被配置为确定UI状态之间何时存在状态失配。在一具体实施例中,当存在状态失配时,可以将该失配记录在日志文件216中。例如,可以在日志文件216中创建一条条目,日志文件216是UI隐错报告应用程序的一部分。HUD 211也可向用户202提供状态失配的视觉指示符206。

[0031] 在一具体实施例中,第一计算设备210还包括测试记录器和播放器217。测试记录器和播放器217可记录多个UI动作,并存储多个UI动作表示,包括与多个UI动作相关联的定时信息(例如,等待时间)。所存储的表示可通过通信总线240被发送到执行环境。测试记录器和播放器217也可被配置为基于所存储的UI动作的表示来重现UI动作。因此, 当每个计算设备210、220和230均包括测试记录器和播放器时,UI动作可以按批量方式而不是一次一个的方式来发送和重复。例如,可以在一个执行环境中记录一 UI测试套件,并在多个执行环境中基本上同时重现该UI测试套件。

[0032] 在操作中,UI动作204(诸如,与UI测试相关联的UI动作)可在驱动程序执行环境212处接收,并且可在其他执行环境222、232处基本上同时重复。HUD 211可显示执行环境212、222、232,并且状态比较器215可确定UI动作204是否导致执行环境212、222、232 之间的状态失配。当检测到状态失配时,HUD 211可向用户202提供视觉指示符206。

[0033] 可以理解,图2的系统200可实现在多个计算设备处(例如,在分布式计算系统处)基本上同时的UI测试。

[0034] 图3示出了数据流图300,其示出了图1的系统100或图2的系统200处的数据流的具体实施例。

[0035] UI测试系统处的数据流可被分为多个层。例如,用户/HUD监视层310以及总线/ 控制器层320可与驱动程序执行环境相关联。此外,一个或多个环境层330可与一个或多个非驱动程序执行环境相关联。在一说明性实施例中,用户/HUD监视层310和总线/控制器层320可与图1的驱动程序执行环境120相关联,而环境层330可与非驱动程序执行环境130和140中的每一个相关联。在另一个说明性实施例中,用户/HUD监视层310和总线 /控制器层320可与图2的驱动程序执行环境212相关联,而环境层330可与图1的非驱动程序执行环境222和232中的每一个相关联。

[0036] 当用户302执行(312) UI动作时,在用户/HUD监视层310处开始数据流。前进到总线/控制器层320,UI动作(或其表示)可被广播(322)到所有非驱动程序执行环境。 接着,驱动程序执行环境处的每个环境层330可重复(33¾该UI动作(例如,以基本上同时的方式)。随后可以从每个环境层330向总线/控制器层320返回(334)UI结果。UI结果可以在总线/控制器层320处聚集(3M),并可由用户/HUD监视层310报告(314)给用户302。数据流可在层310、320和330之间以循环方式继续,直到完成所有的UI测试。

[0037] 图4示出了在多个执行环境中测试用户界面的方法400的具体实施例的流程图。 在一说明性实施例中,方法400可由图1的系统100或图2的系统200来执行。

[0038] 方法400包括:在402,选择与基于用户界面(UI)的应用程序相关联的一个或多个测试,并且在404,选择多个执行环境。该多个执行环境中的一个被指定为驱动程序执行环境,并且至少两个执行环境在显示分辨率、语言、软件应用程序、操作系统、硬件架构、驱动程序、版本、其他环境变量、或某些其他特性方面有所不同。例如,参考图1,可选择一个或多个UI测试以便在执行环境120、130和140处执行。其中“执行环境A”是驱动程序执行环境120。

[0039] 方法400还包括:在406,初始化每个执行环境处的通信代理。例如,参考图1,通信代理122、132和142可被初始化(例如,包括通信代理的主机应用程序可在每个执行环境120、130和140处被激活)。方法400进一步包括:在408,显示与驱动程序执行环境相对应的驱动程序UI。例如,参考图1,HUDllO可显示驱动程序执行环境120。

[0040] 方法400包括:在410,在驱动程序执行环境处接收与一个或多个测试相关联的UI 动作。例如,参考图1,可以在驱动程序执行环境120处接收UI动作104。方法400还包括:在412,将UI动作转换成一组输入设备控制。输入设备可以是键盘或鼠标,而输入设备控制可以是键盘键入、鼠标移动、或鼠标点击。例如,参考图1,UI动作104可以被转换成UI动作表示124,其中UI动作表示1¾包括输入设备控制。

[0041 ] 方法400进一步包括:在414,将该组输入设备控制从驱动程序执行环境处的通信代理通过通信总线发送到每一个其他执行环境处的通信代理。输入设备控制可以按串行化格式来广播。UI动作基本上同时在每一个其他执行环境处重复。例如,参考图1,UI动作表示1¾可以经由通信总线150从通信代理122广播至通信代理132、142,并且UI动作104 可以基本上同时在每一个执行环境130、140处重复。

[0042] 方法400可对与一个或多个测试相关联的每一个UI动作从414循环返回到410。 该方法在416结束(例如,当该一个或多个测试完成时)。

[0043] 图5是平视显示画面(HUD) 500的具体实施例的屏幕截图,HUD 500显示驱动程序执行环境502以及其他执行环境504、506、508以及510。在一个说明性实施例中,HUD 500 可包括图1的HUD 110或图2的HUD 211。

[0044] 在图5所示出的具体实施例中,驱动程序执行环境502是64位英语2008版操作系统环境,其具有8GB的RAM。第一非驱动程序执行环境504是32位英语2010版操作系统环境,其具有2GB的RAM。第二非驱动程序执行环境506是64位日语2010版操作系统环境,其具有4GB的RAM。第三非驱动程序执行环境508是64位英语2006版操作系统环境, 其具有IGB的RAM。第四非驱动程序执行环境510是32位阿拉伯语2008版操作系统环境, 其具有512MB的RAM。

[0045] 驱动程序执行环境502可在HUD 500处显示。用户可与驱动程序执行环境502进行交互(诸如,经由键盘、鼠标、或其他输入设备)。当用户执行某一 UI动作时,该UI动作基本上同时在其他执行环境504、506、508以及510处重复。每一其他执行环境504、506、 508以及510处的UI状态可以被显示在HUD 500处。在一具体实施例中,UI状态可以经由与其他执行环境504、506、508以及510的RDP会话来显示。其他执行环境504、506、508以及510可位于与驱动程序执行环境502相同的计算设备上,或位于不同的计算设备上。此外,在一具体实施例中,HUD 500可被显示在不包括任何这些执行环境502、504、506、508以及510的计算设备上。

[0046] HUD 500可在检测到UI状态失配时显示视觉指示符512。显示视觉指示符512可包括:改变与一执行环境相关联的颜色、字体或边框。例如,在图5示出的具体实施例中,在第四非驱动程序执行环境510处发生错误。因此,第四非驱动程序执行环境510指示与驱动程序执行环境502的状态失配。当检测到状态失配时,HUD 500可提供一方法以记录该状态失配。例如,HUD 500可包括隐错提交对话框514,该对话框可操作来记录该状态失配。

[0047] 可以理解,图5的HUD 500可方便地提供对被测试的每一个执行环境的同时显示。 还可以理解,图5的HUD 500可在检测到状态失配时自动提供隐错报告能力。

[0048] 图6描绘了包括可用于支持根据本发明的计算机实现的方法、计算机程序产品以及系统组件的各实施例的计算设备610的计算环境600的框图。在一说明性实施例中,计算设备610可包括图1的系统100或其组件、图2的系统200或其组件、图3的层310、320 和330中的一个或多个。图1的系统100或其组件、图2的系统200或其组件、以及图3的层310、320和330中的每一个可包括计算设备610或其一部分或使用计算设备610或其一部分来实现。

[0049] 计算设备610包括至少一个处理器620和系统存储器630。取决于计算设备的配置和类型,系统存储器630可以是易失性的(诸如随机存取存储器,即“RAM”)、非易失性的 (诸如只读存储器(即“ROM”)、闪存以及即使在未提供电源时也维持已存储的数据的类似存储器设备)或两者的某种组合。系统存储器630通常包括:操作系统632、一个或多个应用程序平台634、一个或多个应用程序,以及程序数据638。

[0050] 例如,系统存储器630可包括HUD逻辑636以及状态比较器637。在一说明性实施例中,HUD逻辑可生成并更新图1的HUD 110或图2的HUD 211。HUD可被配置为显示多个执行环境,其中一个执行环境被指定为驱动程序执行环境。HUD还可被配置为接收驱动程序执行环境处的(例如,与UI测试相关联的)UI动作,并将该UI动作的表示从驱动程序执行环境发送到每一个其他执行环境。UI动作可以基本上同时在每一个其他执行环境中重复。 状态比较器可比较各个执行环境的状态。

[0051] 计算设备610还可具有附加特征或功能。例如,计算设备610还可包括可移动和 /或不可移动附加数据存储设备,诸如磁盘、光盘、磁带和标准大小的存储卡或闪存卡。这样的附加存储在图6中通过可移动存储640和不可移动存储650来示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序组件或其它数据等信息的任何技术实现的易失性和/或非易失性存储以及可移动和/或不可移动介质。系统存储器630、 可移动存储640和不可移动存储650都是计算机存储介质的示例。计算机存储介质包括, 但不限于,RAM、R0M、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、紧致盘 (CD)、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可用于存储信息且可以由计算设备610访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备610的一部分。

[0052] 计算设备610也可包括输入设备660,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备670,如显示器、扬声器、打印机等等。输入设备660和输出设备670可操作来从用户692接收UI动作,并向用户692提供视觉指示符。计算设备610 还包含允许计算设备610通过有线或无线网络与其它计算设备690进行通信的一个或多个通信连接680。一个或多个通信连接680也可允许计算设备610处的多个虚拟机之间的通信。在一具体实施例中,一个或多个通信连接680包括图1的通信总线150或图2的通信总线M0。通信总线可以耦合到多个执行环境,并可在多个执行环境之间广播数据。

[0053] 可以理解,并非所有图6所示或以其他方式在先前的附图中描述的组件或设备都是支持此处所描述的实施例所必需的。例如,可移动存储640可以是可任选的。

[0054] 对此处所描述的实施方式的说明旨在提供对各实施方式的结构的大致理解。这些说明并非旨在用作对利用此处所描述的结构或方法的装置和系统的所有元件和特征的完整描述。许多其他实施例对本领域的技术人员在仔细阅读本发明后是显而易见的。可以从本发明中利用和导出其他实施方式,以使得可作出结构和逻辑替换和改变而不背离本发明的范围。因此,本发明和各附图应被认为是说明性的而非限制性的。

[0055] 本领域技术人员还可理解,结合本文所公开的各种说明性逻辑框、配置、模块、和过程步骤或指令可被实现为电子硬件或计算机软件。各种说明性组件、框、配置、模块或步骤已经大致按照其功能来描述。这种功能被实现为硬件还是软件取决于在整体系统上所施加的具体应用和设计约束。技术人员可针对每种具体应用以不同方式来实现所描述的功能集,但此类设计决策不应被解释为致使脱离本公开的范围。

[0056] 结合此处所公开的各实施例所描述的方法或算法的各个步骤可直接用硬件、由处理器执行的软件模块、或两者的组合来实现。软件模块可以驻留在计算机可读介质中,诸如随机存储器(RAM)、闪存、只读存储器(ROM)、寄存器、硬盘、可移动磁盘、CD-ROM、或本领域已知的任何其他形式的存储介质。示例性存储介质耦合到处理器,使得处理器可以从该存储介质上读取信息,并向该存储介质写入信息。在替换方案中,存储介质可以集成到处理器或者处理器和存储介质可以作为分立组件驻留在计算设备或计算机系统中。

[0057] 尽管已经在此示出和描述了具体实施方式,但应理解,可以为所示的具体实施方式替换被设计成达到相同或相似目的的任何后续安排。本发明旨在覆盖各实施方式的任何和所有后续改变和变体。

[0058] 提交本发明的摘要的同时要明白,将不用它来解释或限制权利要求的范围或含义。另外,在前面的具体实施方式中,可以出于将本发明连成一个整体的目的而将各种特征组合或描述在一起放在单个实施方式中。此发明将不被解释为反映所要求保护的实施方式要求比每个权利要求中明确陈述的更多特征的意图。相反,如以下权利要求反映的,本发明的主题可涉及少于所公开的实施方式中的任一个的所有特征。

[0059] 提供前面对各实施方式的描述是为了使本领域技术人员能制作或使用各实施方式。对这些实施例的各种修改对于本领域技术人员将是显而易见的,并且本文中定义的普适原理可被应用于其他实施例而不会脱离本公开的范围。因此,本发明不是旨在限于本文所示的各实施方式,而是按照与如由以下权利要求书定义的原理和新颖特征相一致的尽可能最宽范围。

Claims (15)

1. 一种计算机实现的方法,包括:选择与基于用户界面(UI)的应用程序相关联的一个或多个测试002);选择多个执行环境G04),其中所述多个执行环境中的一个被指定为驱动程序执行环境(120);显示与所述驱动程序执行环境相对应的驱动程序UI (408);在所述驱动程序UI处接收与所述一个或多个测试相关联的UI动作010);以及将所述UI动作的表示(124)从所述驱动程序执行环境(120)发送(414)到每一个其他执行环境(130、140),其中所述UI动作(124)基本上同时在每一个其他执行环境(130、 140)处重复。
2.如权利要求1所述的计算机实现的方法,其特征在于,还包括:在所述驱动程序UI 处接收第二 UI动作,并将所述第二 UI动作的表示从所述驱动程序执行环境发送到每一个其他执行环境。
3.如权利要求1所述的计算机实现的方法,其特征在于,发送所述UI动作的表示包括: 将所述UI动作转换成一组输入设备控制并发送该组输入设备控制。
4.如权利要求3所述的计算机实现的方法,其特征在于,所述一组输入设备控制包括键盘键入、鼠标移动、鼠标点击、触笔控制、触摸屏控制、多点触摸控制、或以上的任何组合。
5.如权利要求3所述的计算机实现的方法,其特征在于,所述一组输入设备控制以串行化格式发送。
6.如权利要求1所述的计算机实现的方法,其特征在于,发送所述UI动作的表示包括: 通过通信总线来广播所述UI动作的表示,所述通信总线耦合到所述多个执行环境中的每一个。
7.如权利要求1所述的计算机实现的方法,其特征在于,所述驱动程序UI在平视显示画面(HUD)处显示,所述平视显示画面被配置为显式所述多个执行环境中的每一个。
8.如权利要求7所述的计算机实现的方法,其特征在于,还包括:在所述HUD处显示视觉指示符,所述视觉指示符指示第一执行环境具有第一状态,该第一状态不同于第二执行环境的第二状态。
9.如权利要求8所述的计算机实现的方法,其特征在于,所述第一状态或第二状态中的至少一个包括:UI屏幕截图、导航状态、模型状态、自动化状态、参数状态、一个或多个性能度量、或以上的任何组合。
10.如权利要求8所述的计算机实现的方法,其特征在于,还包括:在日志文件中创建条目,以指示所述第一执行环境的第一状态和所述第二执行环境的第二状态之间的差别, 并且所述HUD经由与所述至少一个执行环境的远程桌面协议(RDP)会话来显示至少一个执行环境。
11. 一种计算机系统,包括:存储器(630);以及耦合到所述存储器(630)的处理器(620),其中所述处理器(620)被配置为执行引起用户界面(UI)测试应用程序的执行的指令,所述用户界面测试应用程序包括:平视显示画面(HUD) (110),被配置为:显示多个执行环境(120、130、140)中的每一个,其中所述多个执行环境中的一个被指定为驱动程序执行环境;在所述驱动程序执行环境处接收与UI测试相关联的UI动作(104);以及将所述UI动作的表示(124、134、144)从所述驱动程序执行环境(120)发送到每一个其他执行环境(130、140),其中所述UI动作(104)基本上同时在每一个其他执行环境 (130、140)处重复;以及通信总线(150),所述通信总线耦合到所述多个执行环境(120、130、140)中的每一个, 并且被配置为从所述驱动程序执行环境(120)向每一个其他执行环境(130、140)广播数据。
12.如权利要求11所述的计算机系统,其特征在于,所述UI测试应用程序进一步包括: 状态比较器,被配置成将第一执行环境的第一状态与第二执行环境的第二状态进行比较。
13.如权利要求12所述的计算机系统,其特征在于,所述HUD进一步被配置为当所述状态比较器检测到两个执行环境之间的状态失配时显示视觉指示符。
14.如权利要求11所述的计算机系统,其特征在于,所述多个执行环境中的至少一个进一步包括:测试记录器,被配置为存储多个UI动作的表示。
15.如权利要求14所述的计算机系统,其特征在于,所述多个执行环境中的至少一个进一步包括:测试播放器,被配置为重现所述多个UI动作。
CN201110065878.XA 2010-03-10 2011-03-09 在多个执行环境中测试用户界面 CN102193862B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/720,691 2010-03-10
US12/720,691 US20110225566A1 (en) 2010-03-10 2010-03-10 Testing user interfaces in multiple execution environments

Publications (2)

Publication Number Publication Date
CN102193862A true CN102193862A (zh) 2011-09-21
CN102193862B CN102193862B (zh) 2016-12-14

Family

ID=

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324424A (zh) * 2012-03-23 2013-09-25 百度在线网络技术(北京)有限公司 一种远程模拟多点触控的方法和系统
CN105335282A (zh) * 2014-07-30 2016-02-17 国际商业机器公司 用于应用的跨平台测试的方法和系统
CN105453052A (zh) * 2013-08-16 2016-03-30 国际商业机器公司 使用现场测试在软件程序中自动捕获用户交互并评估用户接口
CN105975367A (zh) * 2016-04-29 2016-09-28 腾讯科技(深圳)有限公司 移动设备的测试方法和装置
CN108717394A (zh) * 2018-05-16 2018-10-30 上海陆家嘴国际金融资产交易市场股份有限公司 应用程序的远程验收处理方法、系统和计算机设备
WO2019085811A1 (zh) * 2017-11-06 2019-05-09 阿里巴巴集团控股有限公司 一种实现驱动的系统及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060107229A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Work area transform in a graphical user interface
US20060279571A1 (en) * 2005-06-13 2006-12-14 Nobuyoshi Mori Automated user interface testing
US20070070066A1 (en) * 2005-09-13 2007-03-29 Bakhash E E System and method for providing three-dimensional graphical user interface
US20070168648A1 (en) * 2005-10-03 2007-07-19 Msystems Ltd. Modular computing system
CN101221524A (zh) * 2007-01-12 2008-07-16 群康科技(深圳)有限公司 显示器调试系统及其调试方法
US20090019315A1 (en) * 2007-07-12 2009-01-15 International Business Machines Corporation Automated software testing via multi-channel remote computing
CN101414279A (zh) * 2008-11-18 2009-04-22 武汉大学 可信软件栈测试装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060107229A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Work area transform in a graphical user interface
US20060279571A1 (en) * 2005-06-13 2006-12-14 Nobuyoshi Mori Automated user interface testing
US20070070066A1 (en) * 2005-09-13 2007-03-29 Bakhash E E System and method for providing three-dimensional graphical user interface
US20070168648A1 (en) * 2005-10-03 2007-07-19 Msystems Ltd. Modular computing system
CN101221524A (zh) * 2007-01-12 2008-07-16 群康科技(深圳)有限公司 显示器调试系统及其调试方法
US20090019315A1 (en) * 2007-07-12 2009-01-15 International Business Machines Corporation Automated software testing via multi-channel remote computing
CN101414279A (zh) * 2008-11-18 2009-04-22 武汉大学 可信软件栈测试装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324424A (zh) * 2012-03-23 2013-09-25 百度在线网络技术(北京)有限公司 一种远程模拟多点触控的方法和系统
CN103324424B (zh) * 2012-03-23 2016-03-16 百度在线网络技术(北京)有限公司 一种远程模拟多点触控的方法和系统
CN105453052A (zh) * 2013-08-16 2016-03-30 国际商业机器公司 使用现场测试在软件程序中自动捕获用户交互并评估用户接口
US9836193B2 (en) 2013-08-16 2017-12-05 International Business Machines Corporation Automatically capturing user interactions and evaluating user interfaces in software programs using field testing
CN105453052B (zh) * 2013-08-16 2018-08-24 国际商业机器公司 用于评估用户接口的方法和计算设备
US10222955B2 (en) 2013-08-16 2019-03-05 International Business Machines Corporation Automatically capturing user interactions and evaluating user interfaces in software programs using field testing
US10268350B2 (en) 2013-08-16 2019-04-23 International Business Machines Corporation Automatically capturing user interactions and evaluating user interfaces in software programs using field testing
CN105335282A (zh) * 2014-07-30 2016-02-17 国际商业机器公司 用于应用的跨平台测试的方法和系统
CN105975367A (zh) * 2016-04-29 2016-09-28 腾讯科技(深圳)有限公司 移动设备的测试方法和装置
WO2019085811A1 (zh) * 2017-11-06 2019-05-09 阿里巴巴集团控股有限公司 一种实现驱动的系统及方法
CN108717394A (zh) * 2018-05-16 2018-10-30 上海陆家嘴国际金融资产交易市场股份有限公司 应用程序的远程验收处理方法、系统和计算机设备

Also Published As

Publication number Publication date
US20110225566A1 (en) 2011-09-15

Similar Documents

Publication Publication Date Title
US10140014B2 (en) Method and terminal for activating application based on handwriting input
US9665841B2 (en) Cross-platform application framework
US9015030B2 (en) Translating prompt and user input
CN101454762B (zh) 一种交互式输入系统、用于该系统的即插即用电缆及一种交互方法
US9021428B2 (en) Troubleshooting visuals and transient expressions in executing applications
US9697702B2 (en) Display device and method for controlling the same
KR101541147B1 (ko) 동적 가상 입력 디바이스 구성
US20140059485A1 (en) Toggle gesture during drag gesture
KR100771626B1 (ko) 단말기 및 이를 위한 명령 입력 방법
CN100375059C (zh) 一种个人数字助理手机功能的自动测试系统及其方法
TWI510913B (zh) 測試裝置及其測試方法
US8701090B2 (en) Graphical user interface testing systems and methods
US9336023B2 (en) Visual generation of mobile applications based on data models
CN102567052B (zh) 启用配置有图形处理器的服务器的远程管理的技术
CN100590586C (zh) 计算机、显示器设备的设定方法
US20110310118A1 (en) Ink Lag Compensation Techniques
CN103412644A (zh) 附属设备架构
TWI400652B (zh) Dual operating system parallel processing methods, recording media and computer program products
CN100498704C (zh) 使用可扩展固件接口的持久性存储器操作
KR101153057B1 (ko) 디지털 디바이스 메뉴 편집기를 위한 방법 및 시스템
US8041437B2 (en) System and method for virtual control of laboratory equipment
CN103930878A (zh) 用于存储器验证的方法、装置及系统
JP4782042B2 (ja) 電子計算機及びソフトウェアによるユーザインタフェースの実現方法
JP5599400B2 (ja) 画像センサベースのヒューマンマシンインタフェースを提供する方法システムおよびソフトウェア
BRPI1013334B1 (pt) método para receber entrada de uma interface gráfica do usuário, sistema de computação eletrônico e meio de armazenamento de dados legíveis por computador

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

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

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant