智能移动终端软件自动化测试平台研究
来源:小侦探旅游网
第25卷第9期 2008年9月 计算机应用研究 Applieation Research of Computers Vo1.25 No.9 Sep.2008 智能移动 终端 软件自动化测试平台研究术 殷永峰,刘斌,姜同敏,王晨 (北京航空航天大学工程系统工程系,北京100083) 摘要:分析了智能移动终端软件的自动化测试方法,并提出了一个智能移动终端软件测试平台 详细介绍了 该平台的体系结构,并阐述了其关键技术——脚本技术的设计与实现,最后给出了一个移动终端测试的实例。 关键词:软件测试;自动化测试;脚本技术;移动终端 中图分类号:TP311 文献标志码:A 文章编号:1001—3695(2008)09—2709—04 Research on automatic test platform for intelligent mobile terminal software YIN Yong—feng,LIU Bin,JIANG Tong—min,WANG Chen (Dept.of System Engineering Engine Technolog),Beijing Universit) Aeronautics&Astronautics,Beijing 1 00083,China) Abstract:This paper analyzed the methods to automatically test the intelligent mobile terminal software,and presented a test platform for intelligent mobile terminal software.This paper covers the architecture of test platform,and the design and imple— mentation of the core of the test platform,test script technique.At last,an application of the test platform was demonstrated by using it in mobile terminals testing. Key words:software testing;automatic test;script technique;mobile terminal 智能移动终端作为一种典型的嵌入式系统,通常都配备有 定制的嵌入式操作系统,拥有越来越丰富的第三方应用程序, 并且具有人机交互的软、硬件界面。如何有效地对这些智能移 世的CoutDown 提供了移动无线终端自动化测试的解决 方法。 基于以上分析,本文运用脚本驱动的自动化测试技术,面 向智能移动终端测试问题域,吸收面向对象思想,提出了一套 脚本驱动的非侵入式自动化系统测试方法,并实现了一个智能 移动终端软件测试平台 本测试平台能够实现对智能移动终 端软件进行自动、实时、非侵人性的闭环测试,并提供对多种智 能移动终端的支持,有效地提高测试效率,从而保证软件质量。 动终端软件的功能、可信度和安全性进行测试已经成为产品开 发商、嵌入式操作系统提供商、移动运营商和智能移动终端用 户面临的一个再要问题。 日前,智能移动终端的测试主要还是基于传统的手工测试 方式,但是对于大规模的压力测试,多次的系统回归测试,存在 测试时间周期长、效率低、费用高等问题,难以满足日趋增长的 智能移动终端测试需求。近年来,基于测试脚本的自动化测试 技术 ,可以代替部分繁杂而重复的于工测试劳动,有效地消 除人为因素在测试中引入的错误,从而使测试人员将更多的精 力用于设计、甄别测试用例等更有创造性的工作。自动化能够 有效地减少测试开支,提高测试质量,具有较强的适应能力,已 经成为流行的嵌入式软件测试解决方案。 测试平台作为一种自动化测试工具,它将多种功能软件集 成在一个平台下,能对软件进行自动的测试和分析。目前流行 的嵌入式软件测试平台,如德国Teeh S.A.T GmbH和/dev software GmbH共同开发的Avionics Development System 2nd Generation(ADS2) 和北京航空航天大学开发的一套通用嵌 1 智能移动终端软件测试方法 目前对智能移动终端嵌入式软件的测试主要有两种途径: a)直接对真实终端进行测试 该方法虽然简单真实,但 主要是基于手工操作,很难实施自动化测试。 b)将嵌入式软件与终端完全剥离,利用模拟环境进行测 试。该方法建立模拟环境难度较大,而且模拟环境很难真实地 反映软件实际运行环境,如实时性要求、时序逻辑和终端运行 资源要求等。 为保障测试的真实性和实现自动化测试,本文采用脚本驱 动的非侵入式自动化系统测试方法,并依据此方法设计了一个 智能移动终端软件测试平台。非侵入式测试保障了测试过程 中无须对被测智能移动终端的嵌入式软件及其运行的硬件平 入式软件仿真测试环境GESTE ,已被证明是成功的嵌入式 软件测试解决方案,佩两者主要应用于航空电子系统测试领 台进行修改,从而保证了测试的真实性。由于智能移动终端存 在实时性、内存有限、环境开发工具昂贵等自身特性,采用了交 叉测试方式。图1为智能移动终端交叉测试的原理示意图。 如图1所示,测试平台运行在软硬件资源丰富的宿主机 上,而被测软件运行在软硬件资源相对匮乏的目标机即智能移 域。在移动和无线领域,仪有部分产品开发商具备公司内部运 转的自动化测试体系,如瑞典的爱立信公司 和我国的夏新 公司 等。通用的移动和无线测试系统更为少见,目前仅有 美国的TestQuest,Ine.公司推出的 FestQuest Pro 收稿日期:2007—1l—l5;修回日期:2008.01.04 和即将问 基金项目:“十一五”总装预研基金资助项目(513190701) 作者简介:殷永峰(1978一)男,山东潍坊人,博士,主要研究方向为嵌入式软件测试、软件工程(yyf@buaa.edu.cn);刘斌(1968一),男,山西太原 人,教授,博导,主要研究方向为软件工程、软件测试;姜同敏(1949.),男,北京人,教授,博导,主要研究方向为系统工程、环境2E.程;王晨(1983一), 男,北京人,硕士,主要研究方向为软件测试技术. ・27l0・ 计算机应用研究 的功能。 第25卷 动终端上。测试人员利用测试平台制订测试计划,设计测试用 例,自动或手工生成测试脚本。测试过程中测试脚本由脚本解 释器解释执行,通过物理连接,如串口、蓝牙、红外、WiFi等,将 核 ,●IIlIJl__llI系 ,l●lJl__ 驱 ,___Jlllt 心 统 动 (b)脚本调试器。用于支持用户对所编写的测试脚本进 层 层 层 行调试,如设置断点、单步执行、连续执行和读取数据对象等。 (C)脚本编辑与生成。可以支持多种方式输入,如用户直 接手工录入,或基于模板的脚本输入,或录制生成。 测试指令与测试数据传输到目标机上执行,目标机上的agent 监听被测软件产生的响应结果信息并回传至宿主机。此外,测 试平台可以自动采集结果数据,分析结果信息,产生测试报告。 回目标机 一 宿主机l 堕 型I (d)虚拟移动终端/显示。为提供用户直观的人机交互能 力、支持脚本录制和测试回放等功能,提供终端仿真能力。 (e)多媒体。完成对多媒体对象的服务支撑组件,包括 OCR、图片对比、视频分析和语音对比等功能。 数字移动终端 白 被测敦字移 红外 串口l 、 蓝牙、 一围贾甯翮 , 动终端软件 WiFi 务 咽匝亟匝 亟巫匦 测试平台 匝巫匝 玉 圆圈 (f)信息库。它完成对测试过程中所需要的各类基础信息 (如图片、语音、视频等)进行管理。允许用户导入和删除所需 图1智能移动终端交叉测试原理示意图 要的基础信息。 2智能移动终端软件测试平台 (g)数据过滤。允许用户定义相应的过滤规则以过滤用 器 户不关心的数据.降低系统的数据存储量和减轻负载。 基于上述脚本驱动的智能移动终端软件自动化交叉测试 (h)数据存储功能。 方法,笔者实现了一个智能移动终端软件测试平台,图2给出 (i)事件管理。允许用户定义多个感兴趣的事件,并且通 了该测试平台的实际运行示意图。该平台提供了一套集测试 过对经过数据过滤后的输入/输出数据与用户定义的敏感事件 圈圈 开发、自动化测试执行及测试结果分析于一体的集成测试环 进行比较,以便决定测试过程。 境,为智能移动终端软件测试提供了一套自动化测试的完整解 d)管理层包含测试管理、报表生成等,主要功能如下: 决方案。图3给出了平台的体系结构。 (a)测试管理/诃度。可以通过事件管理进行设置测试, 实现全程自动测试。 (b)f3志记录。记录脚本中要求记录的信息。 (C)测试资源管理。用于管理所有测试中涉及的资源,如 测试结果、脚本、图片、声音等。 (d)环境配置。允许测试人员对测试环境进行配置,如 鏊 塞_一 蓝 …一 . agent的选择、输入/输出设备的选择等。 图2测试平台实际运行示意图 管理层{叵至回匮匣 匡坚固匾受囹匦围受 囹圜 3测试脚本技术 [ 圈1口 I 脚本技术在自动化测试过程中起着至关重要的作用,测试 lI堕 I煎童 型I l脚本能够模拟测试人员的操作,对被测终端发送测试指令和测 试数据,控制整个测试流程。脚本技术通过自动化地录制测试 脚本,自动化地执行测试脚本和在测试执行中对预期测试结果 进行自动化的比对,来支撑整个自动化测试过程。 syb Windows 定制 蓝牙 红外 数据线 WiFi 相对于C、C++、Java这样的系统编程语言来说,测试脚 Ⅲ0bile设备 设备 设备 设备 agem i agent agent 驱动 驱动 驱动 驱动 本语言是一类具有更高抽象层次且简单易用的编程语言。编 图3智能移动终端测试平台软件体系结构 程语言能更好地把人的意识转换为计算机可识别的指令,而测 智能移动终端测试平台的体系结构在逻辑上分为四层: 试脚本语言由于其简单易用的特性,能将更多的操作抽象为更 a)驱动层。用于描述系统接人终端的能力,由agent驱动 精简的语句序列,实现简单短小的测试脚本就可以描述一个复 程序和设备驱动程序构成,使平台具备能通过物理设备(如红 杂的测试过程。考虑到一种新的语言在实际应用中推广的困 外、蓝牙、数据线、WiFi等)与移动终端进行通信的能力。 难,故没有重新定义一套词法和语法规则,而是修改并扩充了 b)系统层。反映了平台的基础能力,主要功能如下: 应用最为广泛的C语言,增加了经过封装的移动数字终端测 (a)Agent驱动接入和设备驱动接入。 试原语和同步原语,并引入对象机制,支持COM对象扩展,形 (b)系统服务。主要实现了对终端的基本控制和数据传 成了一种适用于智能移动终端的测试脚本技术(mobile termi・ 输操作,能够提供异步通信机制和消息通信机制。 nal test script technique,MITST)。图4给出了MTFST技术实 (c)数据采集。该功能允许将通过系统服务发送至终端 现的流程图。 和从终端接收的数据收集至上层应用指定的存储区。 MTFST在满足智能移动终端设备测试要求的同时,通过 C)核心层主要功能如下: 降低创建和维护测试脚本的费用来降低整个自动化测试费用, (a)脚本解释器。它用于实际完成对测试脚本的解释执 提高测试效率。MTFST的主要特性如下: 行,驱动测试运行。此外,脚本解释器提供对外的控制接口和 a)采用C语言的词法和语法规则。C语言是在测试人员 数据接口,以便其他功能对象与脚本解释器协同实现更为复杂 群体中普及度最广的编程语言,采用其词法和语法规则能使更 第9期 殷永峰,等:智能移动终端软件自动4JL; ̄'i试平台研究 ・27l1・ 多的测试人员无须学习新的脚本文法,从而更容易上手,把主 要精力关注于测试用例的设计上。 MTI'ST来描述测试过程 图5给出了两个移动终端协同测试 场景类图。 b)将常用的智能移动终端测试语句序列进行抽象并封装 为测试原语。利用MTTST中封装好的测试原语,可以加快开 发测试脚本的效率,避免人工录入错误的引入,实现用简短的 测试脚本序列描述复杂的测试用例,使得测试脚本逻辑结构更 清晰、易读。 C)添加了测试同步原语。同步原语用于支撑多个测试脚 本协同操作,增强对多个智能移动终端之问协同测试描述。 d)引入面向对象思想,增加对象描述机制。对象机制可 以实现对测试对象的封装和继承,使得创建一个测试脚本更容 易,同时也使得测试对象更具有可重用性。 e)支持COM对象扩展 通过COM组件技术,可以使 MTI'ST支持更多的外部功能,如文字识别、图片比对、语音识 别等,从而大大加强了平台的测试能力和适应性。 f)M rrsT还保留了整形、浮点、布尔、字符串等基本的数据 类型,使得测试数据更清晰的控制,保持数据的无二义性。 叵豳匝 蓝匿雯圈[受 困 。。……。录制::::::::: :::::: 编程……。。 。…函萄 :■L型 ;。 i司..一…・I 奎肇登鲞I..………’ 壁笪蕉 .. 三三三三三三珥 ………….三三三三 ………...{厂 型基 墨 『]_ …。一一…-。’匝亘豳L 堕 ■ t ■_ i jI预-=期结=果=信==息 库卜= =。 毒堑囱………….墨 塑 l_…_… :!i: ̄VA- : 1了日 一 …. j 图4 M下TST技术实现的流程图 如图4所示,M.几 提供对测试脚本的创建,自动执行和 结果分析的全过程支持。 1)创建测试人员可以通过虚拟移动终端录制一个测试 脚本;或通过拖拽部分预先配置定义好的基本测试语句块组成 一个测试脚本;又或通过脚本编辑器提供的具有导航的编辑功 能,按照C语言的文法,结合系统对测试原语的自动提示,手 工编写一个测试脚本。 2)执行设计好的测试脚本交由脚本解释器解释执行 脚本解释器支持与测试相关的基本库,如测试流程控制、测试 指令和测试数据读取等,同时还支持丰富的基于COM对象的 扩展,如文字识别、语音识别、图片比对等,从而实现测试平台 适用范围的扩展。在测试过程中,脚本解释器与过程监控有着 密切的交互,实时监控测试运行时状态、判断条件触发事件、等 待事件返回等 3)结果分析测试结果分析可以根据预期结果信息库中 的相关信息,自动比对测试结果,判断系统的失效情况,产生问 题清单,形成报表。 此外,测试过程中的测试脚本、测试结果、日志和报表等信 息均被存人测试资产数据库,根据这些记录信息可以进行事后 回放,方便在没有被测终端的情况下重现测试过程,以便定位 和分析软件缺陷。 4 实例应用 以两个移动终端协同测试的实例应用来说明如何利用 图5移动终端协I司测试的场景(类罔) 如图5所示,测试脚本类TestScript包含虚拟移动终端类 Handset和用于扩展外部COM组件的COMServer。此外, TestScript类还包含用于描述协同测试的同步测试原语sync— snd(syncID)和sync—rcv(synclD),以保障复杂的多脚本多终端 协同测试描述的清晰性和执行时序的正确性。 两个实际移动终端类型分别为Siemens x65系列终端和 Nokia¥60系列终端,继承自虚拟的终端测试类型Handset,它 们含有Handset公用的方法,如点击按键sendKey、屏幕截图 等。同时,它们还含有各自私有的特殊方法,如Siemens x65系 列终端含有照相camera方法,而Nokia¥60系列终端含有智能 系统平台运行symbian程序的runProgram方法等。 用于扩展外部COM组件的COMServer则包含有文字识别 OCR类、图片比对PictureCompare类、终端设备连接方式Con— nectServer类等,为测试脚本提供了可扩展功能的接口。 为使测试脚本能清晰独立地描述该测试场景中的测试事 件,同时体现多个脚本问的协同操作模式,图6给出了上述两 个移动终端协同测试的顺序图。 图6移动终端协『司测试的场景(顺序图) 如图6所示,两个实际的移动终端¥65和6670分别是Sie— mens x65系列终端和Nokia¥60系列终端的对象。在两个终端 设备都成功连接后,首先由¥65向6670 拨打一个电话,6670接 到后截图并挂机,根据截图中的来电显示号码判断是否为¥65 的来电,如果是则发一条短信确认收到来电,¥65接收到短信 后,读取短信信息,判断短信内容是否为来电已收到,若是,则 ・2712・ 计算机应用研究 参考文献: 第25卷 进行后续测试任务。在此过程中,对屏幕截图内容的分析是通 过COMServer调用其组件文字识别OCR实例的方法来实现 的。两个终端的协同时序性则是通过同步原语sync—snd (syncID)和sync—rcv(syncID)置位与轮循相应的同步信号量来 [1]殷永峰,刘斌,陆民燕.实时嵌入式软件测试脚本技术研究[J].计 算机Z-.程,2003,29(1):l18-119. [2]TgCH S A,GMBH T.Dev software GmbH.Avionics development sys- 保障的。根据上述协同测试场景的描述,创建的两个脚本文件 如图7所示。 2fatN ■ tem 2nd generation user reference manual[EB/OL].(2004).ht. tp://www.teehsat.com. [3]宋文,于林宇,刘军.通用嵌入式软件测试环境在武器装备软件测 h1h 雌-螂 { ■S _瞄一l ∞∞删 3 -一蛳 叫_口 ■H ∞-_iI∞∞∞ N∞ m _口●目 3■●—*口■椰. OCS● 器 ===蹄:: : 器器盏:==; 翟菡 -.瞳O由日d佃r.一- - -●-k 埘O_I峨0■■l● ‘・_ 州D q-科0■_一●mhm -一Du雠●—№l I h -m=l,∞∞哪试的应用[J].测控技术,2005,24(10):65・68. l , S 一 5口1 口 H Ⅱ皿-l ∞∞眦 nNcklt6 ̄_I∞ ⅢⅡ1 N .s6。 . COtmm my6670 m嘲 幽-6 l [4]PERNLER S,STAHL N,SC M.An automated environment for soft. ware testing and reliability estimation[C]//Proc of the 5th Intema- tional Symposium on Software Relibiality Engineering.1994:312-317. 0o-一 tⅢs∞. /b ̄ct●● ” I州 Nc/dt6 ̄’ -d ■n■【- _ 州臼吐 ■ --I-呻; 两_啼 !——一 一 畸6 O呻 ( D 删■ ■ _∞ 一 -q_h_E- ∞ - _酬一。 [5]许志兴,唐晓纹,刘学军.移动终端软件自动化测试技术的研究与 应用[J].南京工业大学学报,2006,28(5):67・70. [6]TestQuest Inc.TestQuest pro[EB/OL].(2005).http://www. testquest.con1. ‘DIAL ‘ hn・ ∞m吨‘ q- ‰_I (-挂 r #tjca妊- 口 - d =h- tr 蜘 = Ⅺ( D l dO_蝌0nI● ●‘m咄 -一D ∞・时 r一●嘲・_Ⅱ咄 ■■n _ l d g 由 ■ ●P 啊■・___-f \ 岫inif( \ 、 \\ q日I缸m%I∞ 曲lⅢ日☆ )==s Ⅻ) f 啪鲥啪 -娃&■蛐【- _帆膏 q5口O (、 sh ‘m -\自, - m 口-}m■W- ∞- —¨ ∞_ m 叭themⅫⅢ { ■・n 村 r fl 墙”), 6啪 EB憾(s 0 峰 B& ●“●— 、 j t ̄p一-‘ tB 对’ /t ̄=din hqi日 c1∞ } 6 [7]PUKETZA N,CHUNG M,OLSSON R A,et a1.A software platform for testing intrusion detection systems[J].IEEE Software,1997,1 4 (5):43—51. .ipl_ s qO日 ¨, ・mX } /、 ~、、 、 ,一~、\、 / [8]TSAI W T,Yu L,I IU X X,et a1.Scenario・based test case generation 图7移动终端协同测试脚本代码实例 for state—based embedded systems[C]//Proc of Performance,Compu- ting,and Communications Conference,Conference IEEE Inter ̄atio— 本测试用例通过描述两个移动终端的协同测试,验证了 MTBT技术描述测试的能力。 ha1.Beijing:[s.n.],2003:335—342. [9]KRASNER J L.Reducing OEM development costs and enabling em— bedded design effieieneies using the uniifed modeling language(UML 5结束语 本文提出的智能移动终端软件自动化测试平台,面向智能 移动终端软件测试问题域,可以有效地替代手工测试,提高测 2.0),embedded market forecasters division[R].[s.1_]:American Technology International Inc.2004. [1O]PARADKAR A,KLINGER T.Automated consistency and complete— ness checking of testing models for interactive systems[C]//Proc of the 28th Computer Software and Applications Conference,COMPSAC Annual Internationa1.2004:342—348. 试效率,降低测试成本。进一步工作主要包括完善智能移动终 端库,实现自动化、可视化的测试脚本代码自动生成,测试平台 向分布式方向发展,并支持分布式对象扩展。 (上接第2699页) [11]魏忠,蔡勇,雷红卫.嵌入式开发详解[M].北京:电子工业出版 社.2003. [5]PHALKE V,GOPINATH B.Program modelling via inter-reference gaps and applications[C]//Proc of the 3rd International Workshop on 4结束语 外存系统性能对嵌入式应用系统来说是至关重要的,本文 使用・种追踪向导(proifle guided)的软/硬件方法来执行页面 重映射。该算法考虑了嵌入式多媒体应用系统的页面存取模 式,描述了一种高效的着色理论来智能地将页面映射到外存中 以避免页面缺失。实验结果证明了页面重映射算法的效用。 与原始程序映射相比,该算法可将页面缺失率降低70%~ 80%,用页面缺失率的降低换来了性能的提高及功耗的减少。 参考文献: [1]BOSE P,ALBONESI D H,MARCULESCU D Guest editors’introduc— tion:power and complexity aware design[J].IEEE Micro,2003,23 (5):8-11. Modeling,Analysis,and Simulation of Computer and Telecommunica- lion Systems.Washington DC:[s.n.],1995:212—216. [6]BROWN M,JENEVEIN R M,uLIJAH N.Memory access pattern ana— lysis[c]//Proc of the Workload Characterization:Methodology and Case Studies.Washington DC:[s.n.],1998:105-113. [7]LEE J,PARK C,HA S.Memory access pattern analysis and steam rcache design for multimedia applications[C]//Proc of Conference on Asia South Paciifc Desin Autgomation.New York:[s.n.],2003:22・ 27. [8]PETTIS K,HANSEN R C.Profile guided code positioning[C]//Pro ̄ of ACM SIGPLAN Conference on Programming Language Design and Implementation.New York:[s.n.],1990:16-27. [9]Analog Devices Inc,NORWOOD M A.SDRAM selection guidelines [2]BYNA S,SUN X H,GROPP W,et a1.Predicting memory access cost based on data—access patterns[C]//Proc of IEEE International Con— ferenee on Cluster Computing.Washington DC:[s.n.],2004:327— 336. and confiurgation for ADI processors[EB/OL].(2004)[2004・08- 13].http://www.analog.com/proeessors/ehina/blaekfin/technical— Library/applicationNotes/index.htm1. [10]钟玉琢,乔秉新.运动图像及其伴音通用编码国际标准—— MPEG一2[M].北京:清华大学出版社,1997. [1 1]毕厚杰.新一代视频压缩编码标准——HJ 264/AVC[M].北京:人 民邮电出版社,2005:191. [3]KANDEMIR M,RAMANUJAM J,CHOUDHARY A.Improving cache locality by a combination of loop and data transformations[J].IEEE Computer Society,1999,48(2):159・167. [4]McKINLEY K S,CARR S,TSENG C.Improving data locality with loop transformations[J].ACM Press,1996,18(4):424—453. [12]黎洪松.数字视频技术及其应用[M].北京:清华大学出版社, l997.