用于测试移动装置的系统和方法与流程

文档序号:13520625阅读:243来源:国知局

本公开总体上涉及移动装置。更具体地,但不以限制的方式,本公开涉及用于测试诸如智能电话的移动装置的系统和方法。如本公开中所使用的,移动装置指的是具有至少一个处理器和非暂时性存储器的便携式装置。虽然通常移动装置具有诸如触摸屏的图形显示器,但是它们可以具有或可以不具有图形显示器。移动装置的示例包括移动电话、个人数字助手(pda)、便携式媒体播放器和便携式gps导航单元。移动电话的测试被用作本公开中的示例。然而,相同的发明概念可以被应用于其它类型的移动装置的测试。



背景技术:

随着移动装置持续发展,移动装置的测试变得越来越复杂。例如,移动装置制造商(工厂)通常配置某种特殊或专有的测试软件,该软件不可重复使用或者不可在工厂之间共享。这增加了整体制造成本。对于各个新一代移动装置,通常需要开发新的测试软件,该测试软件包括测试代码(源代码和目标代码)和测试接口(或测试用户接口)。此外,频繁添加测试命令或测试项需要修改测试接口并重新编译源代码,这使得难以维护测试软件。更进一步地,测试结果(测试软件的输出)通常被本地存储在移动装置中或执行测试的计算机中,这使得难以收集测试数据以用于统计。

除了工厂方面的复杂性之外,研究和开发(r&d)阶段期间移动装置的测试也变得更复杂。在该阶段期间,测试通常是孤立的并且不是协作进行的。经常地,通过测试用户接口来人工执行测试并且很少使用测试自动化。同时,任何专门创建的测试代码都需要被专门维护,这增加了研究和维护成本。

更进一步地,售后的诊断和测试移动装置变得更复杂。当在售后出现问题时,难以远程诊断客户手中的移动装置或用户端的移动装置。有时,测试工程师可能需要在客户现场,来检查移动装置,这对于移动装置提供商来说是昂贵的。此外,一些问题可能超出一位测试工程师的知识或技能,并且可能需要测试团队的合作努力。

因此,期望有测试系统、测试方法和测试架构方面的改善以用于简化移动装置的测试。



技术实现要素:

本公开涉及用于测试诸如移动电话或智能电话的移动装置的系统和方法。本公开的目的是提供可在测试之间重复使用、可扩展用于本地测试、远程测试和工厂测试、并且可在移动装置制造商之间共享的系统和方法。

根据本公开的实施方式,一种移动装置测试系统包括非暂时性存储器和连接到所述非暂时性存储器的一个或更多个硬件处理器。所述一个或更多个硬件处理器执行指令,以执行包括接收命令xml(xml代表可扩展标记语言)表以及将该命令xml表渲染(render)为用户接口应用的操作,其中,所述命令xml表包括与一个或更多个命令对应的元素。所述命令可以用于测试装置(测试命令)和/或用于操作装置(操作命令)。在一实施方式中,所述元素包括针对所述命令中的每个命令的名称元素和自变量元素(argumentelement)。所述元素还可以包括针对所述命令中的每个命令的结果元素。在多个实施方式中,所述非暂时性存储器和所述一个或更多个硬件处理器可以位于正在测试中的移动装置(或被测装置(dut))中或位于通过网络与dut通信的测试器装置(testerdevice)中。使用xml以组织命令并将该xml渲染为用户接口,简化了代码维护任务,由此无需维护。

在一实施方式中,这些操作还包括通过用户接口应用接收用于执行所述命令中的一个命令的用户输入,并且响应于所述用户输入执行所述命令中的所述一个命令。用户可以一次执行一个命令或批量执行多个命令。在另一实施方式中,这些操作包括:生成具有包含在所述命令xml表中的信息的文件消息;生成用于在所述文件消息中定位所述命令中的所述一个命令的命令消息;以及使用所述文件消息来解译所述命令消息,从而产生所述命令中的所述一个命令。在客户端/服务器网络中可以将所述文件消息和所述命令消息从测试器装置传递到dut,其中,该dut是用于执行所述命令的服务器,并且该测试器装置是由测试工程师操作的计算机。这使得能够在工厂中或在研究和开发阶段期间测试dut。

在另一实施方式中,将测试结果从dut传递到测试器装置,并且所述测试结果用于更新用户接口应用上的显示并且用于更新结果xml文件。出于创建和更新数据库的目的,该结果xml文件可以被发送到统计服务器。工厂人员可以查询该数据库,以了解测试状态。

根据本发明的另一方面,公开了一种用于测试移动装置的计算机实现的方法。该方法包括以下步骤:接收命令xml表并且将该命令xml表渲染为用户接口应用,其中,所述命令xml表包括与一个或更多个命令对应的元素。在一实施方式中,该方法还包括通过用户接口应用接收用于执行所述命令中的一个命令的用户输入,并且响应于所述用户输入执行所述命令中的所述一个命令。在另一实施方式中,该方法还包括生成文件消息和命令消息,其中,所述文件消息包括所述命令xml表中所包含的信息并且所述命令消息在所述文件消息中定位所述命令中的所述一个命令。该方法还可以包括:接收执行所述命令中的所述一个命令的结果,并且响应于该结果更新所述用户接口应用上的显示。该方法可以附加地或另选地利用该结果更新结果xml表,并且将该结果xml表存储在非暂时性存储器中。在又一个实施方式中,该方法包括将所述结果xml表转换成关系数据库中的至少一个条目。

应当理解的是,以上总体描述和以下详细描述这两者本质上都是示例性和说明性的,并且旨在提供对本公开的理解,而不限制本公开的范围。在这方面,从以下详细描述,本公开的附加方面、特征和优点对于本领域普通技术人员来说将是显而易见的。

附图说明

附图示出了在此公开的系统和方法的实施方式,并且与说明书一起用于说明本公开的原理。

图1是根据本公开的多个方面构造的移动装置测试系统的实施方式的示意图。

图2示出根据一实施方式的、可以由图1的移动装置测试系统实现的各种模块、文件和数据流。

图3示出根据一实施方式的、可以由图1的移动装置测试系统实现的用于组织命令的示例性xml表。

图4示出根据由移动装置本身并在移动装置本身上本地测试该移动装置的另一实施方式的、可以由移动装置测试系统实现的各种模块、文件和数据流。

图5a、图5b、图6a、图6b、图7a、图7b和图7c示出根据本公开的一些实施方式构造的用于测试移动装置的计算机实现的方法的流程图。

具体实施方式

为了促进对本公开的原理的理解的目的,现在将参照附图中所示的实施方式,并且将使用特定语言描述附图中所示的实施方式。然而,将理解的是,不旨在限制本公开的范围。对本公开的所描述的装置、系统、方法以及原理的任何进一步应用的任何变型和进一步的修改被完全预期为本公开所涉及领域的普通技术人员通常会想到。例如,针对一个实施方式描述的特征、组件和/或步骤可以与针对本公开的其它实施方式描述的特征、组件和/或步骤组合,以形成根据本公开的装置、系统或方法的又一实施方式(即使未明确地示出这种组合)。此外,为了简化起见,在一些情况下,在所有附图中使用相同的附图标记指代相同或类似的部件。

图1是根据本公开的多个方面构造的移动装置测试系统100的实施方式的示意图。参照图1,系统100包括通过网络互连的各种组件。更具体地,系统100包括:被测装置(dut)102,该被测装置(dut)102是要对其或在其中执行一个或更多个测试或操作的目标装置;测试器装置112,该测试器装置112用于测试或操作dut102;可选的测试云服务器122,该可选的测试云服务器122可以托管用于测试的网站;以及可选的统计云服务器132,该可选的统计云服务器132可以在数据库中存储测试结果,以便查询。组件102、112、122和132通过网络142互连。

仍然参照图1,组件102、112、122和132中的每个包括一个或更多个处理器和存储器。更具体地,dut102包括一个或更多个处理器104和存储器106;测试器装置112包括一个或更多个处理器114和存储器116;测试云服务器122包括一个或更多个处理器124和存储器126;并且统计云服务器132包括一个或更多个处理器134和存储器136。在一实施方式中,dut102和测试器装置112物理上位于一个装置(待测的移动装置)中。对于该实施方式进一步地,处理器104和114可以是同一处理器,并且存储器106和116可以是同一存储介质。在系统100的另一实施方式中,可以省略测试云服务器122和统计云服务器132中的一个或两者。下面进一步详细描述系统100的各种组件。

在本实施方式中,dut102是诸如移动电话或智能电话的移动装置。移动电话的示例包括苹果股份有限公司(appleinc.)的iphone系列、三星电子(samsungelectronics)的galaxy系列、谷歌股份有限公司(googleinc.)的nexus系列以及由诸如华为和小米股份有限公司的其它公司制造的移动电话。在各种实施方式中,dut102可以是诸如个人数字助手(pda)、便携式媒体播放器、或便携式gps导航单元的其它类型的移动装置。在一实施方式中,dut102是未完成的产品。例如,因为期望在安装显示器之前测试dut102,以便节省制造成本,所以dut102还不具有附接至dut102的显示器(例如,触摸屏)。dut102通过处理器104和其它组件(未示出)执行存储器106中包含的一个或更多个指令序列来执行特定操作。指令还可以被称为代码。术语“指令”和“代码”应当被宽泛地解释为包括任何类型的计算机可读语句。例如,术语“指令”和“代码”可以指一个或更多个软件应用、程序、例程、子例程、函数、过程等。“指令”和“代码”可以包括单个计算机可读语句或多个计算机可读语句。

处理器104、114、124和134中的每个代表一个或更多个通用处理装置(诸如,微处理器、中央处理单元等)。更具体地,处理器104、114、124和134中的每个可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其它指令集的处理器或实现指令集的组合的处理器。处理器104、114、124和134中的每个还可以是一个或更多个专用处理装置,诸如,专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理器104、114、124和134中的每个被构造为执行用于执行在此讨论的操作和步骤的指令。

在一实施方式中,存储器106、116、126和136中的每个是非暂时性计算机可读存储介质,其包括除了暂时的传播信号之外的所有计算机可读存储介质。计算机可读介质的一些常见形式包括例如软盘、软磁盘、硬盘、磁带、任何其它磁介质、cd-rom、任何其它光学介质、穿孔卡、纸带、具有孔图案的任何其它物理介质、ram、prom、eprom、flash-eprom、任何其它存储芯片或存储盒、或计算机适于从其进行读取的任何其它介质。例如,存储器106、116、126和136中的每个可以是软盘、磁硬盘驱动器(hdd)、固态硬盘驱动器(ssd)或光学存储器(例如,cd-rom、dvd和蓝光盘)。

测试器装置112是诸如个人计算机(pc)、工作站、平板电脑的计算装置或其它计算装置。在一实施方式中,测试器装置112由测试工程师或r&d工程师操作,以测试或操作dut102。测试器装置112通过处理器114和其它组件(未示出)执行存储器106中包含的一个或更多个指令序列来执行特定操作。

测试云服务器122和统计云服务器132中的每个使得用户能够访问共享的计算资源的集合,所述计算资源包括与dut102的测试有关的云存储和应用或服务。例如,测试云服务器122可以托管用于对dut102进行测试的支持网络的测试用户接口,并且可以存储可由dut102和/或测试器装置112下载的测试命令文件和程序。例如,统计云服务器132可以存储一个或更多个dut102的测试的结果并且可以提供用户要查询的统计信息。云服务器122和132分别通过处理器124和134和其它组件(未示出)执行存储器126和136中包含的一个或更多个指令序列来执行特定操作。

网络142可以包括公共网络和/或私有网络的任何组合。网络142可以包括一个或更多个网络装置,所述网络装置经由传输介质通信地连接,以在dut102、测试器装置112、测试云服务器122和/或统计云服务器132之间传达信号。在一些示例中,网络装置包括路由器、集线器、交换机等。在一些示例中,传输介质包括以太网线缆、光纤信道线缆、无线信号、通用串行总线(usb)线缆等。dut102、测试器装置112、测试云服务器122和统计云服务器132可以分别包括被构成为将各个装置102、112、122和132通信地联接到网络142的网络接口组件(未示出)。网络接口组件可以包括例如允许计算装置连接到网络142的网络接口卡或其它硬件和/或软件组件。在一实施方式中,网络142包括传输控制协议/互联网协议(tcp/ip)网络(例如,互联网)。在一实施方式中,例如,当dut102和测试器装置112在物理上是一个装置时,dut102与测试器装置112之间的连接可以是dut102内部的系统总线。

图2示出了根据一实施方式的、可以由移动装置测试系统100的各种组件实现的各种模块(或程序或应用)、文件和数据流。在多个实施方式中,模块可以被实施为存储在存储器(诸如,存储器106、116、126和136)中并且可由处理器(诸如,处理器104、114、124和135)执行的指令的序列。在多个实施方式中,文件被构成为存储可以由模块处理(例如,读取和/或写入)的内容,文件可以包括关系数据库、平面文件(flatfile)、网络服务等的全部或部分。在特定示例中,文件是具有标记以使其中的内容结构化的平面文件。例如,特殊字符、分隔符和/或其它数据(例如,xml标记)可以被包括在文本中,以使内容结构化。数据流指的是系统100的两个或更多个组件之间的通过网络142的通信。下面参照图2集中讨论系统100的各种模块、文件和数据流。

参照图2,测试云服务器122包括或实现xml渲染模块123,该xml渲染模块123可操作以将xml表渲染为图形用户接口。测试云服务器122可以存储由多个用户预安装并且可共享的命令xml表125。测试云服务器122还可以存储可以被下载并被安装到dut102和/或测试器装置112中的各种程序和文件,包括命令服务程序126、命令集127和中继服务程序128。在一实施方式中,命令集127包括各种测试命令,所述测试命令可以是命令行命令(可在命令行上执行)。测试命令是用于测试dut102的命令(诸如,用于测试串行外围设备接口(spi:serialperipheralinterface)的testspi)。命令集127还可以包括操作命令,所述操作命令是用于操作而不是测试dut102的命令。例如,命令集127可以包括诸如“df”和“ls”的标准linux命令。这些命令可以在dut102上被调用并由处理器104执行。

在本实施方式中,命令xml文件125是xml表,该xml表包括与命令集127中的一个或更多个命令对应的元素。在特定实施方式中,命令xml文件125包括与命令集127中的一个或更多个测试命令对应的元素。换言之,命令xml文件125用于组织用于对dut102进行测试的各种测试命令。命令xml文件125中的元素包括与命令的名称对应的名称元素和与命令需要的自变量对应的自变量元素。在可以是两级或更多级嵌套元素的命令组的方面,命令xml文件125可以组织命令。图3中示出了命令xml文件125的示例性模板150。

参照图3,模板150包括表示xml的版本(在该示例中是版本1.0)和要使用的编码(示例中是utf-8)的声明152。该版本可以是当前可用的任何版本(诸如,xml1.0和xml1.1)或未来开发的任何版本。该编码可以是当前可用的任何编码方案(例如,utf-8和utf-16)或未来开发的任何编码方案。模板150包括命令表元素154,该命令表元素154开始于起始标签<cmdsheet>并结束于匹配的结束标签</cmdsheet>。在所示出的示例中,元素154的内容包括“name”字段,该“name”字段在该示例中是字符串“factorytest”。该name字段还是该xml文件的名称(诸如,命令xml文件125的文件名)。元素154的内容还包括“device”字段155,该“device”字段155可以被填写有dut102的标识(id)(诸如,制造测试中的移动电话的id(例如,移动电话的imei或meid))。在测试结束之后,执行程序将装置id填写在“device”字段中,表示测试结果由该装置产生。元素154的内容还包括“ip”字段157,该“ip”字段157是dut102的互联网协议(ip)地址。“ip”字段可以被填写为“0.0.0.0”,以便本地测试dut102,而无需使用互联网。

命令表元素154的内容还包括一个或更多个命令组元素(子元素)156,所述一个或更多个命令组元素中的每个在所示出的示例中开始于起始标签<cmdgroupi>并结束于匹配的结束标签</cmdgroupi>,其中,“i”在该示例中是范围从1至n的整数。各命令组元素156包括一个或更多个命令元素(孙元素)158,所述一个或更多个命令元素中的每个在所示出的示例中开始于起始标签<cmdj>并结束于匹配的结束标签</cmdj>,其中,“j”在该示例中是范围从1至m的整数。各个命令组156中的命令元素158的数量可以变化。在本实施方式中,用于命令元素的标签的名称与命令集127中的命令的名称相匹配。例如,“cmdi”可以是“testspi”。

各个命令元素158还可以包括以下命令属性元素:自变量160、进度162、结果164和结果描述166。自变量元素160在所示的示例中开始于起始标签<args>并结束于匹配的结束标签</args>,并且包括由特定命令“cmdj”所需要的自变量列表作为内容。测试命令可以不需要自变量,或需要一个或更多个自变量。进度元素162在所示出的示例中开始于起始标签<progress>并且结束于匹配的结束标签</progress>,并且可以用于示出命令的状态。当命令花费长时间完成时,这尤其有用。结果元素164在所示出的示例中开始于起始标签<result>并且结束于匹配的结束标签</result>,并且可以用于示出命令的结果,诸如“通过”或“失败”或与“通过”或“失败”对应的二进制数。结果描述元素166在所示出的示例中开始于起始标签<resultdesc>并且结束于匹配的结束标签</resultdesc>,并且可以用于以字符串格式示出命令的结果的详细描述。在各种实施方式中,模板150可以包括其它元素、其它子元素、和其它孙元素,或包括进一步的后代元素。

返回参照图2,在用于测试dut102的示例性操作中,用户(诸如,测试工程师)可以通过数据流1将命令集127的副本下载并安装到dut102,并且将其本地存储为命令集105。用户还可以通过数据流1将命令服务程序126的副本下载并安装到dut102,并且将其本地存储为命令服务程序103。在一实施方式中,命令集105和命令服务程序103在工厂处预安装在dut102中,而不是从测试云服务器122下载。后面将说明命令服务程序103的功能。

对于进一步的示例性操作,用户可以在测试器装置112上运行的网络浏览器(诸如,internetexplorer)中输入测试云服务器122的ip地址。然后,测试云服务器122的网页打开并允许用户通过数据流2上传命令xml表115或选择预加载的命令xml表125。命令xml表115可以使用与模板150相同或大致类似的模板。在上传或选择命令xml表之后,xml渲染器123将命令xml表渲染为用户接口(ui)应用117并且在网站上显示该ui,以便用户使用。在以下讨论中,ui应用117和ui显示这两者被称为ui117。ui117是与命令xml表125(或命令xml表115)对应的分层接口,从而提供用于测试的菜单。例如,ui117可以包括以下域:

(1)用于输入dut102的ip地址、或用于输入“0.0.0.0”以由dut102本身进行测试(本地测试)、与ip字段157对应的域。

(2)与命令组156对应的命令组的列表。ui117可以具有用于发送针对命令组中的所有命令的命令消息的按钮“execute(执行)”(或“run(运行)”或等同词)。另选地,ui117可以具有用于发送所有命令组中的所有命令的命令消息的按钮“executeallgroups(执行所有组)”。命令消息是作为网络142中传输的字符串的xml节点路径。例如,命令消息可以是:

“xmlnodepath::factorytest/cmdgroup1/cmd1”

其意味着执行名为“factorytest”的命令xml表的名为“cmdgroup1”的命令组中的名为“cmd1”的命令。因此,命令消息可以用于在命令xml表中定位对应的命令。命令消息的另一示例是“xmlnodepath::factorytest/cmdgroup1”,其用于执行命令xml表“factorytest”的命令组“cmdgroup1”中的所有命令。命令消息的又一示例是“xmlnodepath::factorytest”,其用于执行命令xml表“factorytest”中的所有命令。

(3)各个命令组中的命令的列表。ui117可以具有用于发送出命令的命令消息的按钮“execute(执行)”。另选地,ui117可以具有用于发送出该命令组中的所有命令的命令消息的按钮“executeall(执行所有)”。此外,ui117可以提供命令的输入框,允许用户提供命令的自变量160的内容。更进一步地,ui117可以提供用于命令的输出域,用于显示命令的结果164和结果描述166。

在一实施方式中,代替使用测试云服务器122,测试器装置112可以通过数据流3或从另一源下载xml渲染器123的副本,并且将其本地存储在测试器装置112上,作为xml渲染器113。在这种情况下,测试器装置112可以使用xml渲染器113将命令xml表115渲染为ui117。

继续上述示例性操作,用户可以输入dut102的ip地址并且选择要执行的一个或更多个命令,并且点击该一个或更多个命令的“execute(执行)”按钮。在接收到上述用户输入时,ui117使用请求api(应用编程接口)基元(诸如,“sendcommandmessage(发送命令消息)”请求api和“sendfilemessage(发送文件消息)”请求api)来通知中继服务程序118。

中继服务程序118是在测试器装置112上本地运行的模块。可以使用数据流3从测试云服务器122或从另一源下载中继服务程序118。一旦从ui117接收到请求,中继服务程序118将命令xlm表115打包成文件消息,将测试请求编码为命令消息,并且通过数据流6(例如,使用网络套接字(networksocket))向dut102发送文件消息和命令消息。如果之前已经向同一dut发送了文件消息,则中继服务程序118可以选择性地省略文件消息并仅发送命令消息。文件消息是包括xml表的所有内容的字符串。在一实施方式中,其具有以下格式:

xmlfile::xmlfiledatastring

例如,命令xml表115的文件消息是串接命令xml表115的所有内容的字符串。上面已经描述了命令消息,该命令消息可以用于在文件消息中定位一个或更多个命令。文件消息和命令消息的接收器可以解析这两个消息并且定位要执行的命令。

继续上面的示例性操作,dut102上的命令服务程序103通过数据流6接收文件消息和命令消息。dut102上的命令服务程序103可以解析并重构命令xml表107并且将其本地存储。dut102上的命令服务程序103还使用文件消息来解译命令消息,以确定要执行什么命令并且相应地产生一个或更多个命令行命令。例如,在linux操作系统中,命令服务程序103可以具有以下代码:

snprintf(buff,256,“%s%s”,nodename,nodeargs)//buffis“nodenamenodeargs”

fp=popen(buff,”r”);//executethecommandbuff,pipetheresultstofp

fgets(buf_resultdesc,256,fp);//readthestreamfromfpandstoresthecontentsintobuf_resultdesc

在以上示例中,“nodenamenodeargs”与由命令消息指向的命令对应,其在名称上还与命令集105中的命令匹配。命令服务程序103通过经由数据流8调用popen(buff,“r”)来调用命令集105中的命令。命令服务程序103通过数据流9获得命令的结果,并且将其存储在变量buf_resultdesc中。命令的返回值取决于“popen”函数的返回值。例如,如果fp为空(null),则测试失败;而如果fp不为空,则测试通过。

命令服务程序103可以利用结果元素164和结果描述元素166(图3)中的相应结果来更新命令xml表107。在一实施方式中,命令服务程序103可以创建命令xml表107的多个副本,其中,命令服务程序103保持命令xml表107的一副本无结果,并且使用另一副本存储结果。命令服务程序103通过数据流7(例如,使用网络套接字)以结果消息的形式向中继服务程序118发送测试结果。在本实施方式中,结果消息是具有以下格式的xml节点:

另外,命令服务程序103可以通过数据流7以进度消息的形式向中继服务程序118发送测试进度状态。在本实施方式中,进度消息是测试进度(或状态)的实时反馈,其具有如下格式:

xmlnodeprogress::factorytest/cmdgroup1/cmd1::60

这里,“60”表示由用户请求的一个或更多个命令的完成的百分比(在该示例中是60%)。

在接收到结果消息和/或进度消息之后,中继服务程序118利用结果更新本地存储的结果xml表119,并且例如使用api通过数据流5通知ui117接收到结果消息和/或进度消息。在一实施方式中,结果xml表119是命令xml表115的副本,并且可以在以dut102的id或ip命名的目录下本地存储。这使得便于收集与特定dut102有关的测试数据。在从中继服务程序118接收到通知之后,ui117使用结果更新其显示并且相应地更新进度状态。

在已经收集了特定结果之后,结果xml表119的副本可以被发送到统计云服务器142,作为数据岛。统计云服务器132可以将它们作为一个或更多个结果xml表135存储在服务器上。服务器132给用户提供对数据库138的访问。在本实施方式中,数据库138是关系数据库。服务器132还向关系数据库转换器133提供xml数据。转换器133可以将结果xml表135中存储的测试结果转换成关系数据库138中的数据(或数据条目)。转换器133可以由xml关系数据库转换器来完成。数据库138中的基本数据中的字段可以被定义为:

cmdsheetname

device

ip

cmdgroup

cmdargs

result

resultdesc

用户通过计算机144可以从统计云服务器132收集各种类型的测试数据,诸如,目标装置故障率、目标装置通过率、特定测试命令的故障率、一种类型的目标装置的通过率、或特定工厂的产品数据。例如,结果xml表135的名称可以与特定工厂中的特定类型的装置对应。关于该结果xml表的查询给出关于该工厂中的该类型的装置的测试统计信息。甚至可以详细到哪个装置的特定测试失败。

图4是根据本公开的多个方面构造的移动装置测试系统100的另一实施方式。参照图4,该实施方式中的系统100表示用于移动装置本地测试的场景,即,测试器装置112和dut102物理上是一个装置。各种模块、文件和数据流具有与上面针对图2讨论的相同或大致类似的特征。使用处理器104和存储器106(图1)来实现测试器装置112和dut102的组件。例如,使用dut102的系统总线,中继服务程序118与命令服务程序103之间的连接变为本地连接。各种模块和文件可以在工厂中被预安装或从诸如测试云服务器122的服务器下载。

图5a、图5b、图6a、图6b、图7a、图7b和图7c示出了根据本公开的一些实施方式构造的用于测试移动装置的计算机实现的方法200的流程图。方法200是示例,并且不旨在超出权利要求中所明确陈述的而限制本公开。可以在方法200之前、期间和之后提供附加操作,并且所描述的一些操作可以针对该方法的附加实施方式被替换、去除或重新定位。在本实施方式中,在移动装置测试系统(诸如,系统100)中实现方法200。为了例示的目的,在下面结合图2至图3和图5a至图7c描述方法200,其中,根据一些实施方式在系统100中实现方法200。

参照图5a,在操作202,方法200创建命令xml表(诸如,命令xml表115或125)。命令xml表可以由用户人工创建或由计算机程序自动创建。命令xml表遵循用户定义的格式(诸如,图3中的模板150)。命令xml表包括与已经为测试或操作移动装置(诸如,dut102)而开发的一个或更多个命令对应的元素。命令可以由移动装置上的组件(诸如,由处理器104和其它组件)来执行。命令xml表可以被存储在诸如存储器116或126的非暂时性存储器中。在操作204,方法200将xml渲染器113从测试云服务器122或从另一源下载到测试器装置112。在一实施方式中,xml渲染器113被存储在存储器116中,并且可以作为指令的序列由处理器114运行。如果xml渲染器113已经存在于测试器装置112上,则可以跳过操作204(由此是可选的)。xml渲染器113可以将命令xml表渲染成用户接口(ui)应用117。在操作206,如果中继服务程序118尚未存在于测试器装置112上,则方法200将中继服务程序118从测试云服务器122或从另一源下载到测试器装置112。在一实施方式中,中继服务程序118被存储在存储器116中,并且可以作为指令的序列由处理器114运行。

参照图5b,在操作212,方法200将命令集105从测试云服务器122或从另一源下载并安装到dut102。如果dut102已经安装了命令集105,则可以跳过操作212。在操作214,方法200将命令服务程序103从测试云服务器122或从另一源下载并安装到dut102。如果dut102已经安装了命令服务程序103,则可以跳过操作214。在一实施方式中,命令集105和命令服务程序103中的每个被存储在存储器106中,并且可以作为指令的序列由处理器104运行。在操作216,方法200调用(或运行)命令服务程序103。

参照图6a,在操作222,方法200接收命令xml表(诸如,命令xml表115或命令xml表125)。在一实施方式中,在操作202创建命令xml表。可以通过网页接收命令xml表。在操作224,方法200将命令xml表渲染为诸如ui117的用户接口应用。操作224可以由xml渲染器113或xml渲染器123来执行。在操作226,方法200从用户接口应用接收用户输入,以对dut102进行测试(或批量的多个测试)或操作。在操作228,方法200生成与命令xml表对应的文件消息。在一实施方式中,文件消息是通过串接命令xml表中的所有内容而形成的字符串。在操作230,方法200生成与用户输入对应的命令消息。在一实施方式中,命令消息是xml节点路径,其表示哪个命令、命令组(一组命令)或命令表(一组命令组)要在dut102上执行。在操作232,方法200通过通信信道向dut102发送文件消息和命令消息。如果之前已经向同一dut发送了文件消息,则操作232可以仅发送命令消息,以减少事务处理时间。在多个实施方式中,通信信道可以是互联网、usb线缆、内部系统总线、或其它合适的通信介质。在一实施方式中,操作228、230和232中的每个作为指令的序列在处理器(诸如处理器114或处理器124)上被执行。

参照图6b,在操作242,方法200接收在操作232发送的文件消息和命令消息。在一实施方式中,从测试器装置212发送文件消息和命令消息。在操作244,方法200使用该文件消息或之前接收的文件消息解析(或解译)命令消息。方法200确定要执行哪个命令、命令组或命令表,并且相应地产生一个或更多个命令行命令。在操作246,方法200调用该一个或更多个命令行命令,该一个或更多个命令行命令进而调用命令集105中的适当命令。在一实施方式中,操作242、244和246中的每个作为指令的序列在处理器(诸如,处理器104)上被执行。

参照图7a,在操作252,方法200从dut102上的一个或更多个命令的执行接收结果(或输出)。这些结果可以表示命令的通过状态或失败状态,并且可以包含相应状态的描述。在操作254,方法200将结果存储在结果xml表(诸如,结果xml表107)中。换言之,方法200利用结果更新结果xml表。在一实施方式中,测试器装置112和dut102在同一装置上。对于该实施方式进一步地,方法200利用在操作252接收的结果在操作256更新用户接口应用上的显示。在操作258,方法200使用通信信道向测试器装置112发送结果,所述通信信道可以是互联网、usb线缆、内部系统总线或其它合适的通信介质。在一实施方式中,如上所述,结果被编码为作为xml节点的结果消息。在一实施方式中,操作252、254、256和258中的每个作为指令的序列在处理器(诸如,处理器104)上被执行。

参照图7b,在操作262,方法200从dut102接收结果。在一实施方式中,结果被编码为结果消息。对于该实施方式进一步地,操作262对结果消息进行解码并且获得结果的内容和相应的结果描述。在操作264,方法200将结果存储在结果xml表(诸如,结果xml表119)中。如果结果xml表尚未存在,则方法200通过复制命令xml表来创建一个命令xml表,并且利用该结果更新该新的结果xml表。在操作266,方法200利用该结果和相应测试结果描述来更新ui117上的显示。在一实施方式中,如上所述,方法200利用进度消息来更新ui117上的显示。在操作268,方法200向统计云服务器(诸如,统计云服务器132)发送一个或更多个结果xml表。在一实施方式中,操作262、264、266和268中的每个作为指令的序列在处理器(诸如,处理器114)上被执行。

参照图7c,在操作272,方法200接收一个或更多个结果xml表作为数据岛。在操作274,方法200将该一个或更多个结果xml表的一些内容转换成关系数据库(诸如,关系数据库138)中的一个或更多个数据条目。在一实施方式中,操作272和274中的每个作为指令的序列在处理器(诸如,处理器134)上被执行。

虽然不旨在进行限制,但是本公开的一个或更多个实施方式提供针对移动装置测试的许多益处。首先,由计算机(例如,测试云服务器122和/或测试器装置112)自动生成测试用户接口(例如,ui117)。可以使用来自命令xml表的xml命令树反向生成测试用户接口。一旦生成,则测试用户接口代码不取决于测试命令。因此,测试接口可以被重复使用,而无需修改和重新编译,并且几乎无需维护。第二,测试用户接口可以被存储在云储存器中或被存储在本地计算机中。如果测试用户接口被存储在云储存器中,则用户不需要将新的软件安装到他/她的本地计算机中,并且可以简单地到网页定位该测试用户接口。这使得能够进行基于网络的移动装置测试。相同的测试命令和测试用户接口可以在工厂中的用户或不同的工厂之间共享。第三,添加新的测试命令不需要修改测试用户接口或应用软件。用户仅需要修改xml文件(例如,命令xml文件115或125)。第四,用户可以本地操作用于测试的移动装置,或通过输入移动装置的ip地址来远程操作用于测试的移动装置。在远程测试中,移动装置用户可以人工调用命令服务程序103,或者移动装置工厂可以例如通过将命令服务程序103添加在初始化程序中来预安装命令服务程序103并且在系统启动阶段运行命令服务程序103。因此,测试移动装置不需要测试工程师在客户现场。第五,系统100的架构是灵活的。甚至在没有互联网的情况下可以在工厂或r&d实验室中远程(上述)或本地使用系统100。例如,测试器装置112可以通过usb线缆与dut102进行通信。第六,系统100使得能够进行统计信息收集,其中,结果xml表可以作为数据岛被传送给统计云服务器。移动装置工厂可以通过统计云服务器远程监测移动装置的测试和生产。

上面已经概述了多个实施方式的特征。本领域普通技术人员将理解由本公开涵盖的实施方式不限于上述特定示例性实施方式。在这方面,虽然已经示出并描述了示例性实施方式,但以上公开中预期了宽范围的修改、改变和替换。应当理解,可以在不偏离本公开的范围的情况下对上述实施方式进行这些变型。因此,应当理解,所附权利要求被宽泛地并且以与本公开一致的方式来解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1