用于嵌入式设备的自动化测试平台的制作方法

文档序号:6489740阅读:311来源:国知局
用于嵌入式设备的自动化测试平台的制作方法
【专利摘要】本发明公开了一种用于嵌入式设备的自动化测试平台,包括多个子系统,该多个子系统之间采用全息树实现通信和数据共享,该多个子系统包括一脚本子系统、一仪器子系统、一用户子系统、一日志子系统和一显示子系统,该脚本子系统用于执行测试脚本、收集测试结果,生成原始的日志节点以及根据测试结果构建和维护该脚本/日志子树;该仪器子系统用于维护该仪器子树以及同步远程仪器信息;该用户子系统用于完成该用户子树的构建以及持续更新;该日志子系统用于根据该脚本日志子树构建一独立于该全息树的纯日志树;该显示子系统用于读取该全息树中的各个子树以完成相应子系统的界面的构建。本发明所创建的平台在路由交换设备测试领域具有很好的通用性。
【专利说明】用于嵌入式设备的自动化测试平台
【技术领域】
[0001]本发明涉及一种用于嵌入式设备的自动化测试平台,特别是涉及一种针对路由交换设备的自动化测试平台。
【背景技术】
[0002]如今测试软件所面临的主要挑战是:客户希望更多的软件功能,更快的交付速度,更便宜的造价成本,同时,也希望更好的软件质量,即使不能超过他们的期望,但至少要达到预期。
[0003]这意味着软件测试团队责任重大,更多的功能意味着每个测试的软件基线更大、更复杂,所以,对于一次产品开发需要交付更多的测试用例,但是“更快的交付速度”的需求,使得测试部门没有更多的时间完成所有测试。为了加快测试的进程,倘若投入更多的人力,例如增加测试工程师的数量,那样将会不可避免地增加测试成本。
[0004]另据,NIST(美国国家标准与技术研究院,National Institute of StandardsandTechnology)的报告“《软件测试基础设施不足的经济影响》,2002.5”估算,每年软件错误造成的经济损失将达到约59.5亿美元。
[0005]所以发展自动化测试非常必要。但是,一个行之有效的自动化测试需要一个平台作为依托。由于自动化测试会与被测试产品有很强的关联性,所以,目前还没有高度通用的平台出现,每个公司的标准都各有不同。

【发明内容】

[0006]本发明要解决的技术问题是为了克服现有技术中测试用例较多时无法避免成本的增加、自动化测试通用性较差的缺陷,提供一种通用性较强的用于嵌入式设备的自动化测试平台。
[0007]本发明是通过下述技术方案来解决上述技术问题的:
[0008]一种用于嵌入式设备的自动化测试平台,其特点在于,该自动化测试平台包括多个子系统,该多个子系统之间采用一全息树实现通信和数据共享,该全息树采用XML DOM的数据结构,多个子系统包括一脚本子系统、一仪器子系统、一用户子系统、一日志子系统和一显示子系统,该全息树包括脚本/日志子树、仪器子树、用户子树,其中,
[0009]该脚本子系统用于执行测试脚本、收集测试结果,生成原始的日志节点以及根据测试结果构建和维护该脚本/日志子树;
[0010]该仪器子系统用于维护该仪器子树以及同步远程仪器信息;
[0011]该用户子系统用于完成该用户子树的构建以及持续更新,为其它子系统(脚本子系统、仪器子系统、日志子系统和显示子系统)提供正确实时的用户状态信息并保证数据同
I K
少;
[0012]该日志子系统用于根据该脚本日志子树构建一独立于该全息树的纯日志树,并且根据该纯日志树进行测试结果统计以及将统计结果写入该纯日志树的统计节点;[0013]该显示子系统用于读取该全息树中的各个子树以完成相应子系统的界面的构建。
[0014]从静态的观点来看,本发明的主要内容是一棵“全息树”。所谓“全息树”,顾名思义,首先是用一个树型的数据结构作为基本支撑。具体实施上,我们选择W3C (万维网联盟)的扩展标记语言的文档对象模型(XML D0M)作为“全息树”的数据结构实体。其上承载的信息组织方式则是本设计的重点——亦即,“全息”的实现方式。
[0015]全息树,作为整个系统数据结构的骨架,支撑整个系统测试数据的存储。简单地说,任意时刻,当你将“全息树”存档,重新打开时,系统状态就会回到这一时刻,这有点像给系统拍摄的照片。
[0016]在这棵XML树(即全息树)上,主要包含几个子树,分别是:脚本/日志子树,用户子树,仪器子树(包含对测试仪器的常用设定)。这些子树又分别对应着动态的子系统,分别是:脚本子系统,日志子系统(内含统计子系统),用户子系统和仪器子系统。
[0017]宏观上来看,整个平台是一个个系统模组拼接而成的。它们之间的无缝合作,在于他们使用“全息树”作为通信和数据共享的平台。目前该系统之间都是串行的任务协作机制,当一个子系统对“全息树”进行读写时,不会有另一个子系统对其进行读写。所以没有增加监视器系统来控制读写冲突。
[0018]目前的平台系统是一个事件驱动型系统,基于Tk(Tk是Tcl “图形工具箱”的扩展)设计的⑶I (图形用户界面,Graphical User Interface)提供的鼠标或键盘事件进行系统任务。
[0019]优选地,该脚本/日志子树包括一控制节点,该控制节点用于表示测试标记和同步标记,该测试标记表示待测试的测试脚本,该同步标记用于不同窗口之间的同步更新。
[0020]该脚本/日志子树优势在于输入脚本存储位置自由,且脚本隶属关系层次分明。
[0021]优选地,该脚本/日志子树包括一类型节点,用于表示被测脚本文件夹中的主脚本。
[0022]优选地,该脚本/日志子树包括日志节点,该日志节点表示日志的原始记录。
[0023]优选地,该用户子树包括一全局节点,该全局节点表示测试中全局变量的设置。
[0024]优选地,该仪器子树中记录仪器信息,该仪器为自动化测试中的测试仪器。
[0025]在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0026]本发明的积极进步效果在于:本发明所创建的平台在路由交换设备测试领域具有很好的通用性。
[0027]而且,作为一个自动化测试平台来讲,本发明所提及的架构具备的优势是:
[0028]1、良好的可扩展性一一本平台将脚本子系统、仪器子系统、用户子系统和日志子系统全部有机集成在一棵树型数据结构上(即该全息树),每一个子系统都是一棵子树,随需要可以摘除和添加具有很高的灵活性;
[0029]2、良好的跨平台能力——可以支持Windows、Mac 0S、UNIX(—种多任务操作系统,支持多种处理器架构)、Linux平台应用(上述这些均为现今常用的操作系统);
[0030]3、较少的脚本开发限制——为开发者减轻负担,缩短学习周期;本发明是一个脚本的批处理系统,并且没有对脚本编写设置特定的库作为API (Application ProgrammingInterface,应用程序编程接口),所以不需要额外的API使用培训;[0031]4、不限制脚本存放位置——本设计充分考虑了尽可能给脚本开发者自由的原则。从而对于脚本的位置并没有特别的限制;
[0032]5、便于数据统计——为结果统计的实现,提供良好的数据结构基础。
【专利附图】

【附图说明】
[0033]图1为本发明的自动化测试平台的结构框图。
[0034]图2为本发明的显示子系统的工作流程图。
[0035]图3为本发明的用户子系统的工作流程图。
[0036]图4为本发明的仪器子系统的工作流程图。
[0037]图5为本发明的脚本子系统的工作流程图。
[0038]图6为本发明的日志子系统的工作流程图。
【具体实施方式】
[0039]下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0040]参考图1,本发明所述的用于嵌入式设备的自动化测试平台,包括多个子系统,该多个子系统之间采用一全息树6实现通信和数据共享,该全息树采用XML DOM的数据结构,多个子系统包括一脚本子系统1、一仪器子系统2、一用户子系统3、一日志子系统4和一显不子系统5,该全息树6包括脚本/日志子树、仪器子树、用户子树,其中,
[0041]该脚本子系统I用于执行测试脚本、收集测试结果,生成原始的日志节点以及根据测试结果构建和维护该脚本/日志子树;
[0042]该仪器子系统2用于维护该仪器子树以及同步远程仪器信息;
[0043]该用户子系统3用于完成该用户子树的构建以及持续更新,为其它子系统提供正确实时的用户状态信息并保证数据同步;
[0044]该日志子系统4用于根据该脚本日志子树构建一独立于该全息树的纯日志树,并且根据该纯日志树进行测试结果统计以及将统计结果写入该纯日志树的统计节点;
[0045]该显示子系统5用于读取该全息树中的各个子树以完成相应子系统的界面的构建。
[0046]其中,该脚本/日志子树包括一控制节点,该控制节点用于表示测试标记和同步标记,该测试标记表示待测试的测试脚本,该同步标记用于不同窗口之间的同步更新。
[0047]具体来说,该脚本/日志子树包括一类型节点,用于表示被测脚本文件夹中的主脚本。
[0048]其中,该脚本/日志子树包括日志节点,该日志节点表不日志的原始记录。
[0049]其中,该用户子树包括一全局节点,该全局节点表示测试中全局变量的设置。
[0050]其中,该仪器子树中记录仪器信息,该仪器为自动化测试中的测试仪器。
[0051]下面,以下文所述的一个全息树的示例,详细介绍本发明的技术方案。如下文所示,是脚本子树的一个示例,之所以采用这样的样式,是具有以下两点优势:
[0052]输入脚本存储位置自由一脚本子树,继承了脚本文件在磁盘文件系统中的父子关系。本发明利用这种天然的关系,使得作为系统输入的测试脚本可以存放在测试PC的任意硬盘位置上。不必放在某个特定的文件夹位置,为用户个人自由提供了空间。
[0053]脚本隶属关系层次分明——这个是为系统显示模块考虑的。因为在批量进行脚本测试的时候,会遇到这样两种情景:
[0054]a)哪个脚本在运行——往往会搞不清楚到底是那个项目的脚本在运行,但是,我们又恰前需要知道当前是那个项目的脚本在测试;
[0055]b)需要的项目脚本在哪一当我们需要确定一个项目和脚本的关系是,显示上必须一目了然,最好的显示方式是以项目名为文件夹名,并且将脚本文件夹放入其内。例如,假设有一个脚本Si属于某个项目P1,那么用户可以建立一个名字为Pl的文件夹,然后将脚本文件夹Si包含其中即可。在本设计中,这样的层次很容易识别。当然,这部分涉及到GUI的设计便利性考虑。
[0056]鉴于这些实际的应用需求,最终选定了这种格式作为脚本树的结构。
[0057] -<root>-<user><autversion>a</autversion><dut:sn>daa</d1.1tsn>

<retestrnode>no retest</retestmode>

<sequence>5</sequence>

<rem i n d>0</l'em ind>

<loadinfo>3</loadinfo>

<statmode>0</ staimode>

-<giobai>

-<var>

<name>dut_ip</name>

<va]ue> 192.168.1.1 </vaiue></var>-<var>[0058]<name>dut_manage_poit</name> <value>l 0009</value>
</var>
-<var>
<name>usernaine</name>
<value>admi n</va In e>
</var>
-<var>
<name>password</na.me>
<value>admin</value>
</var>
</global>
</user>
filt>
<type>directoiy</type>
<acccsstimc> 1346218613</acccsstimc> <name>E:/</name>
<path->E:/</path>
<f!ag> I </f1ag>
-<fiie>
<type>directory</type>
<accesstime> 1346218665</accesstime>
<name>tcltest</name>
<path>E:/tcItest</path>
<ilag> I </i1ag>
-<file>
<typc>d ircctory</typc>
[0059]8
〔0900U
<30一/>




<i*<v
</ PaVGSIV
Λιμνποζ HoouOSSI 62feDnY Ρ3>\<ιμ>
<】{ns3JSH{/vo^<:lJns9.us-4—(v Ar^-1QouCDnbcus Ξ^ινI
clInsaud-rosvocilns.llct1.GSV<uoluij!—osaJp/vuojKI,lasaJ(】-Jdj,1:>sCa^ 5μι1--Λ?ομα-μ353ρ>
<Lio}SJ3AIJrm/>(T3<uols.s>l:lrmv<Lls/>sp<us>





AsovI




dvIdv
<3U-BSS300R/>I>S8 一0')0寸^/\;31=^530013>
<3d、cv>3 一 Li<3(sv
<311J>-
<srsfvAboK3BV
<Lld/>( I ic 1.9) ilN0IlN2ISNa/3s3/npv:H<M13d>

<3 目 u/>(l X1,9) TIMOIHmculs 2a <3 日目 V

<3£μ5533313/>£?900'一 Mg 寸 C 一 <9lL-5ss33oe>
AaJdxl/vcroaclJJ f.p<3c! Al V
<f I

<OIJBLivl<兰 Ly

<lpBa./>3SH0.AS3Jj01/:3 <ψκ!&ν

<!Dlllmi/>!Dscdo<3luc3u>
<3UIPSS9oOB/v卜 598 一 2^^, 一 <3£llss33oLv
X CT/9 f ? S V 98262ζε〇? Zo</file>
</file>
-<fiie>
<type>directory</type>
<accesstime>l 346218657</accesstime>
<namε>iP N AT_I (6.1.4.1 )</name> <path>E:/tcltest/case/n)—NAT—I (6.1.4.1 )<7path>
<flag> I </flag> file>
<tvpe>fi le</ type>
<accesstime> 1346218657</accesstime>
< nam e>ma in.tc! </n am e>
<path>E:/tcltest/case/IP—Ni AT— I (6.1.4.1 )/main.tc]</path> <flag> I </flag>
-<log>
<sn>daa</sn>
<aut_versi on>a</a ui_version>
<dcscription>This is a Script-Dcscription</dcscription> <scriptresu!t>0</scriptresiilt>
</log>
</file>
</file>
</file>
</file>
</Tile>
-〈instruments〉
!iistiuinent>
[0061]
【权利要求】
1.一种用于嵌入式设备的自动化测试平台,其特征在于,该自动化测试平台包括多个子系统,该多个子系统之间采用一全息树实现通信和数据共享,该全息树采用XML DOM的数据结构,该多个子系统包括一脚本子系统、一仪器子系统、一用户子系统、一日志子系统和一显示子系统,该全息树包括脚本/日志子树、仪器子树、用户子树,其中, 该脚本子系统用于执行测试脚本、收集测试结果,生成原始的日志节点以及根据测试结果构建和维护该脚本/日志子树; 该仪器子系统用于维护该仪器子树以及同步远程仪器信息; 该用户子系统用于完成该用户子树的构建以及持续更新,为其它子系统提供正确实时的用户状态信息并保证数据同步; 该日志子系统用于根据该脚本日志子树构建一独立于该全息树的纯日志树,并且根据该纯日志树进行测试结果统计以及将统计结果写入该纯日志树的统计节点; 该显示子系统用于读取该全息树中的各个子树以完成相应子系统的界面的构建。
2.如权利要求1所述的自动化测试平台,其特征在于,该脚本/日志子树包括一控制节点,该控制节点用于表示测试标记和同步标记,该测试标记表示待测试的测试脚本,该同步标记用于不同窗口之间的同步更新。
3.如权利要求1所述的自动化测试平台,其特征在于,该脚本/日志子树包括一类型节点,用于表示被测脚本文件夹中的主脚本。
4.如权利要求1所述的自动化测试平台,其特征在于,该脚本/日志子树包括日志节点,该日志节点表示日志的原始记录。
5.如权利要求1-4中任意一项所述的自动化测试平台,其特征在于,该用户子树包括一全局节点,该全局节点表示测试中全局变量的设置。
6.如权利要求1-4中任意一项所述的自动化测试平台,其特征在于,该仪器子树中记录仪器信息,该仪器为自动化测试中的测试仪器。
【文档编号】G06F11/36GK103729286SQ201210383003
【公开日】2014年4月16日 申请日期:2012年10月10日 优先权日:2012年10月10日
【发明者】张鑫 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1