安卓手机软件测试模型的研究.docx
- 文档编号:11400053
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:37
- 大小:716.62KB
安卓手机软件测试模型的研究.docx
《安卓手机软件测试模型的研究.docx》由会员分享,可在线阅读,更多相关《安卓手机软件测试模型的研究.docx(37页珍藏版)》请在冰豆网上搜索。
安卓手机软件测试模型的研究
漳州师范学院
毕业论文(设计)
Android平台下手机软件功能测试模型的研究与应用
TheresearchandapplicationofthefunctionaltestingmodelofAndroidmobilephonesoftware
姓名:
冯小冬
学号:
090811426
系别:
计算机科学与工程系
专业:
计算机科学与技术
年级:
09级
指导教师:
黄伟婷
2012年5月30日
摘要
Android系统是近几年来新兴的智能手机系统,其显著的开放性使其拥有更多的开发者。
随着用户和应用的日益丰富,Android平台也日趋成熟。
与此同时,针对android手机的软件工程理论与技术也成为国内外的研究热点。
对android手机软件而言,良好的测试模型是保证测试质量进而保证产品质量和可靠性的重要途径。
本文以手机软件测试技术为主线,选取了较为常用的UC浏览器为测试实例,根据对实际工作经验的总结,详细分析了android手机软件与传统软件的差别以及在测试工作中存在的问题,并根据分析结果提出了一种针对android手机软件的测试模型框架。
关键字:
android手机;手机软件测试;测试模型框架
Abstract
Androidsystemisanemergingintelligentmobilephonesysteminlastfewyears.Inadvantage,thefirstistheopenness,itallowsanymobileterminalmanufacturerstojoinin.Withthesignificantopennesssothatithasmoredevelopers,withtheincreasinglyusersandapplications,anewplatformwillalsosoontomature。
Itishotfortheandroidmobilephonesoftwareengineeringtheoryandtechnologyovertheworld.Forthetestofandroidmobilephonesoftware,thetestmodelistheimportantwaytoguaranteethequalityoftestandensuretheproductqualityandreliability,aspecialandrationaltestmodelframeworkforandroidsmartphonesplaysadecisiveroleintest.
Basedonthemobilephonesoftwaretestingtechnologyasthemainline,choosetheUCbrowsercommonlyusedfortestcase.Accordingtothesummaryofactualworkingexperience,analyzethedifferencetheproblemsintestbetweentheandroidmobilephonesoftwareandthetraditionalsoftwarecarefully,andcomeupwithafeasiblesolutionofthetestmodelframeworkofandroidsmartphonesoftwaretestimplementationaccordingtotheresultsofanalysisanddemand.
Keywords:
AndroidMobilePhone,MobilePhoneSoftwareTest,TestModelFramework
目录
摘要I
AbstractI
1.引言1
2.安卓系统简介1
3.手机软件概述2
3.1智能手机软件分类及范围2
3.2安卓手机软件特点3
4.手机软件测试类型4
4.1功能测试4
4.2性能测试4
5.测试实践5
5.1测试策略及模型选择5
5.2测试工具的选择6
5.3测试标准7
5.4测试过程中的风险和应对措施7
5.5测试设计9
5.6测试实施与分析11
5.7测试总结22
6.结论23
致谢25
1.引言
发布仅仅四年时间,安卓成功打败了称霸智能手机界十年的诺基亚,超越了苹果,成为了全世界最受欢迎的智能手机平台。
这个成功是拉里·佩奇都没有想到过的,这个曾经将乔布斯当作创业导师的年轻人如今已然站在了导师[1]。
安卓系统虽然拥有很多优点,但仍然存在众多无法忽视的缺点。
由于移动设备厂商会针对多个共存的Android系统推出不同的新产品,从而引发了平台分化问题。
对于软件开发者而言,这一问题非常棘手,因为他们必须要支持所有版本。
正因为以上问题,导致对于安卓软件的测试必不可少。
手机软件大体分为游戏、影音、浏览器、通讯、安全等类。
对于不同种类的手机软件,都有各自适合的测试模型,面向模型的软件测试技术是测试效率很高的测试方法,是目前其他测试方法无法替代的。
当然,它也不能替代已有的其他测试技术,因为,软件中的故障仅仅只依靠该方法进行测试是不行的。
随着软件模型类型的逐步增多,测试算法的逐步成熟,以该方法为基础所开发的测试系统必然会在市场上广泛在我国,该技术的研究则刚刚起步,但已经收到了很好的效果[2]。
从这么多个模型中挑选出适用于手机软件测试的模型正是我们现在需要努力的方向。
2.安卓系统简介
Android是一种以Linux为基础的开放源代码的操作系统,主要使用于便携式设备。
目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
Android的主要竞争对手是苹果公司的iOS以及RIM的BlackberryOS。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。
Android的系统架构和其它操作系统一样,采用了分层的架构。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。
作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:
python、lua、tcl、php等等),还有其他诸如:
Qt(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。
另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,该语言类似Basic语言。
而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、Phone-Gap等等都已经支持Android开发。
而在Android系统底层方面,Android使用C/C++作为开发语言。
安卓开源带来巨大的成功的同时也面临着巨大的问题,最大的问题就是市场混乱,各个厂商之间的产品大同小异,同质化严重,应用市场混乱。
开始标榜的不易中毒,到现在已成为人们攻击的对象。
厂商之间为了争夺市场,在平台相同的情况下只有走向拼硬件的道路。
最终走向了与计算机发展同样的道路上。
光靠拼硬件是无法走远的。
这就要求厂商加强技术开发,这对技术研发能力相对不强的厂商来说无疑是个硬伤。
由于安卓的开源应用市场混乱,应用同质化严重,病毒木马程序越来越多,威胁用户个人信息的安全。
安卓更新太频繁,各个手机厂商的标准不一样导致手机的升级跟不上。
设备采用大触屏,拥有绚丽的画面,这就导致了手机待机的时间的不足,一般情况下只能维持一天的使用,这对经常出差和业务比较忙的用户来说无疑是很不方便的。
3.手机软件概述
3.1智能手机软件分类及范围
从开发的角度上简单的说手机软件可以分成应用软件、用户界面、操作系统、底层与设备驱动以及通信协议等几个方面。
3.1.1应用软件
包括游戏、聊天工具、浏览器、电子邮件、音乐播放器、视频播放器、日程管理、电子辞典、语音录音、语音识别以及汉字输入等等。
相对应的是手机应用软件的功能测试。
其中基于安卓手机的应用软件测试工作在手机功能测试中占有很大的比重,目前这类应用软件大致可以分为以下四类:
①嵌入式的手机应用软件:
这是一种传统的手机应用软件的应用模式,手机中的应用软件都是出厂时由手机生产商固化在其硬件设备的芯片中的,例如手机中的内置闹钟、日历、浏览器等等。
②基于短消息的手机应用软件:
短消息服务(SMS)是通过手机发送和接收有限长度的文本信息的服务。
短消息服务类型的手机应用软件的使用方法通常是用户发送一条特定的信息到某个手机应用软件提供商的服务器,服务器接收这条信息执行一系列操作后返回一条带有结果的消息到用户的手机中。
③基于浏览器的手机应用软件:
目前几乎所有智能手机都支持WAP(无限应用协议)浏览器。
手机用户通过移动运营商门户网站的一个链接进入手机应用软件供应商的URL,下载并浏览一个或多个页面,通过交互将数据提交到服务器。
④基于下载方式的手机软件:
运用J2ME、Java技术开发的手机应用软件是一种可以下载到用户手机使用的手机应用软件。
它们极大地提高了智能手机支持应用软件的能力,并且有比SMS或WAP更好控制的界面,允许使用子图形动画,可以通过无线网络连接到远程服务器。
J2ME、Java技术提供了一个相对开放的平台,手机用户可以随需扩充手机功能在手机上附加别的应用。
3.1.2用户界面
包括待机界面、呼叫控制、MMS界面、短消息/EMS界面、菜单的显示、电话号码或名字等等一切操作手机时所能够看到的、听到的和摸到的过程控制。
开发用户界面涉及到对GUI和通信过程的理解。
这类软件是界面测试的主要对象。
3.1.3嵌入式多任务操作系统
每个手机里而都有一个嵌入式多任务操作系统,在测试的阶段对应操作系统相关的文件管理、多任务调度、响应时间、多线程测试等交互功能的测试。
3.1.4底层部分
包含语音编解码、信令在无线接口上进行传输编解码、数据编解码等等内容。
底层网络软件主要完成呼叫的建立、连接、释放等工作。
设备驱动指的是LCD驱动、Flash驱动、GPIO驱动、MIDI芯片驱动、通用串口驱动、USB驱动、电源管理单元驱动等等方面。
在测试阶段对应与硬件相关较高的相关设备测试、电源测试等阶段。
这部分测试与硬件耦合性较高,因此不在本文的讨论范围之内。
3.1.5通信协议
包含完成空中传输过程第2层、第3层协议、补充业务协议、数据传输协议、以及SIM/UIM协议等等。
扩展一点,TCP/IP协议,WAF协议也可以归在这一类。
相对应的测试也是独立于手机应用软件测试的比较难以控制实施的协议测试,这部分测试包含关键技术较多,是独立出来的另外一个研究领域,不在本文的讨论范围之内。
3.2安卓手机软件特点
安卓智能手机属于运算功能有限、电力供应也有限的嵌入式装置中的一种,因此其软件特点与嵌入式软件也有相似之处。
嵌入式软件的优点在于代码执行效率高,不过由于与硬件高度相关,也存在软件可移植性差的通弊。
3.2.1软件要求固态化存储
为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中,可以随意更换,所以嵌入式系统的应用软件生命周期也和嵌入式产品一样长。
3.2.2软件代码高质量、高可靠性
尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。
为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提高执行速度。
3.2.3系统软件的高实时性
在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。
由于手机使用的特殊性,因此要求手机软件响应时间达到一定限制范围。
也就是所谓的实时操作系统,如果一个电话不能在90秒内接听,那么对方可能会结束此次呼叫,若操作系统还没反应过来,那么这个操作系统无疑是失败的,这就是手机软件对嵌入式操作系统实时性的要求。
3.2.4硬件相关性
手机软件系统不像WINDOWS操作系统,有图形界面可以输入输出:
也不像DOS操作系统使用命令行模式,而是需要自己编写一个编辑器,编写一个交互界面|:
上及一个输入输出界面。
在WINDOWS中,不用考虑硬件的问题,因为系统WINDOWS是讲究和硬件分离的,这样可以保护系统不受侵入。
而在嵌入式系统里面,这些都要求和硬件息息相关。
嵌入式处理器的功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等硬件方面的特殊性,均与应用相互制约。
>软件的专用性:
由于手机软件设计是以一定的目标硬件平台为基础的、面向固定的任务进行的,因此,一旦被加载到目标系统上,功能必须完全确定。
3.2.5面向消息的编程思想
对于手机这样一个复杂的人机交互系统采用面向过程的编程方法显然是不合适的。
手机软件一般采用Windows程序的“Messagebased,EventDriven”(基于消息,事件驱动)的思想,上下层之间通过触发事件通知对方执行相应的操作.因此不同于传统的面向过程的编程方法,也与面向对象的编程方法有所区别。
4.手机软件测试类型
4.1功能测试
1)BasicFunction[基本功能测试]:
就是验证手机基本功能是否实现,发短信、通话、照相等,包括他们的子功能如转发、连拍等。
最基本的也是投入时间精力最大的测试类型,也是最重要的,如果基本功能都没有实现其他测试也就变成枉然了。
2)UI[用户界面验证]:
验证手机的界面、菜单等是否是与客户需求和设计保持一致,主要依据 UIspec[用户界面说明],MMI[人机交互界面],Menutree[菜单树]等,这些文档也是需要根据客户需求及时更新的。
4.2性能测试
1)LimitValue[极限值测试]:
对应黑盒测试的边界值分析法,边界值分析法设计出的测试用例发现bug的能力也是最强的,一般依据极限值表设计测试用例,来指导测试。
一般测试点如输入字符的个数,会议通话的个数,文档存储个数等。
2)ConfictTest[冲突测试]:
主要依据冲突表,冲突表中列出各个事件之间是否存在冲突,冲突测试用例也是依据冲突表设计,这类用例往往可以发现一些比较严重的bug,如游戏中来电,流览WAP时插拔充电器、USB线、camera中低电等。
3)PerformanceTest[性能测试]:
主要测试项Calltest,长时间通话,发送大容量的彩信x条,开关机x次,摄像x时间,可以考虑用自动化测试,手机自动化测试与PC软件自动化测试类似,利用自动化测试工具录制、调试 写脚本、回放、分析结果,与PC软件不同的是手机自动化测试需要硬件的支持来固定手机和利用气压按键。
4)StressTest[压力测试]:
压力测试是在将手机容量存储状态到满后做的一系列操作,如短信、彩信满,Idle界面各事件个数满如未接电话、闹铃等。
5)NetworkCompatibilit[网络兼容性测试]:
网络参数的设置,GPRS等业务是否可用,本外地的联通移动卡各类业务卡在本地的作测试,还需要做FiledTest[场测]即到最终用户实际使用的环境作现场测试,Filedtest有国际专用用例。
6)SIMCardCompatibilit[SIM卡兼容性测试]:
一般是对联通移动的各类业务卡,新出的大容量(64K)、国际漫游卡、呼叫限制卡、一卡双号卡等卡的验证,验证能否正确注册、对应的业务功能是否实现、基本功能的正确性。
7)PDtest[ProjectDesignTest]:
验证在项目设计阶段的设计的功能是否得以实现、是否正确,设计用例依据项目设计文档。
8)CRVerification[客户需求验证]:
验证客户的一些特定需求和变更后的需求。
9)UserManual [用户手册验证]:
其重要性是不言而喻的,用户手册一定要和手机实际功能相符合,不然将会影响用户对产品的信任。
10)FAT(FullTypeApproval)[全类型批准]:
是GSM手机进入GSM网络必须通过的专业测试。
5.测试实践
5.1测试策略及模型选择
一个好的测试过程是手机软件质量的保证,在未来的竞争中向用户提供最好的服务将成为取胜的关键,手机测试则是其中重要的环节。
大部分手机软件在其一生中都将经历多次测试,主要有;协议测试、单元测试,系统测试以及验证测试等,通过多次的测试,保证使用者在任何环节都能拥有性能良好的手机。
选择适合手机软件的测试模型是执行测试工作的前提条件。
根据智能手机软件的开发过程,本文所采用的测试方案模型是适合手机软件开发测试的v模型。
V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系:
①单元测试:
其主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。
单元测试是针对源代码的测试,是以后各种测试过程的基础,由于安卓应用软件的整个开发过程和测试过程是分开并行的,并且测试人员无法获得手机软件程序源代码,所以单元测试由开发人员在编程的过程中编写测试程序或者使用辅助工具来完成。
②模块测试:
这是传统测试V模型中所没有的,是针对本文设计的安卓手机软件测试方案添加的一个测试过程,准确的讲应该是Feature测试,这里的Feature并不是传统意义上的模块,而是一种功能部件。
从模块粒度来说,它指粗粒度模块的功能,是面向客户需求的。
它可能包含多个应用,用以实现某一类功能,属于系统级的黑盒测试。
③集成测试:
主要目的是针对详细设计中可能存在的问题,尤其是检查各Feature模块之间的接口上可能存在的错误。
此过程是模块级集成的测试,而非传统意义上的单元集成的测试。
它在功能模块集成或模块中应用的集成过程中进行,使用增量集成测试方法,用功能模块组合成越来越大的系统并进行测试,来检测组成的系统整体和各个功能模块是否正确。
因此,也是系统级的黑盒测试。
④系统测试:
主要针对概要设计,检查了系统作为一个整体是否有效地得到运行,例如在产品设置中是否达到了预期的高性能。
⑤验收测试:
通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。
由公司品质管理部门把关,包括RF(射频)、高低温、跌落、电气特性等方面的测试。
这部分测试与硬件相关,可以采用辅助工具来完成,与软件相关性很小。
在不同的开发阶段,会出现不同类型的缺陷和错误,所以需要不同的测试技术和方法来发现这些缺陷。
针对手机软件开发过程的V模型主要突出了测试与开发过程的平等性和并行性,而针对测试过程本身的测试过程模型设计如图6—1所示:
在集成测试和系统测试阶段,都设计了烟雾测试(稳健测试)过程,烟雾测试是一组用以确定系统处于稳定状态、所有的主要功能都具备并且能够在“正常”条件下运行的测试用例。
烟雾测试不能由测试小组独立来建立;它是通过联合的方式,至少是在与开发人员达成一致的情况下建立的。
它的目标是显示稳定性、而不是发现系统的每个bug,必须在系统测试环境中运行。
5.2测试工具的选择
5.2.1Testin-移动互联网质量服务专家
北京云测网络科技有限公司所推出的业界领先的移动互联网真机云测服务平台,主要产品包括RealTest™、RealAuto™、RealMonitor™,为移动应用开发和服务提供商提供专业的基于真实终端,跨地区真实移动网络的移动应用开发测试、自动原型测试、自动适配测试和应用程序运行质量的监控服务。
TestinRealMonitor智能监控服务,通过Testin真机云测平台以及遍布全球的监控节点,在真实手机(移动终端)、真实网络上为移动互联网服务提供商和开发者提供24小时不间断的功能、性能、用户体验和可用性的监控服务。
(1)监控类型:
APP监控、网页监控(wap、web)
(2)覆盖中国地级以上城市,香港、台湾、澳门及日本、东南亚、北美、大洋洲及欧洲的主要城市。
(3)对于国内和海外主要移动运营商网络,和移动用户相对集中的地区,采用多监测点以保证监控数据的稳定和质量
(4)覆盖主流智能手机操作系统:
iOS、Android、WP7、Symbian等
(5)覆盖主流终端厂商的移动终端:
Apple、HTC、Samsung、MOTO、NOKIA、SonyEricsson、Lenovo、ZTE、Huawei等
(6)覆盖主流移动网络:
GPRS、EDGE、CDMA、WCDMA、TD-SCDMA、EVDO、UMTS、HSDPA、LTE、WiFi等。
(7)对于Testin暂时未覆盖的地区和网络,只要客户提出需求,Testin有能力在很短的时间内(一周内)开通监控节点,为客户提供服务。
5.2.2中国移动开发者社区
开发者社区作为中国移动应用商场的产品生产基地,开发者们可以在上面发布自己的作品,满足商用条件后即可上线销售,为开发者带来高额的回报。
具有AP自服务区、能力池、终端池、操作系统池、机型信息库、创意孵化工坊、MM学院、工具文档等几大频道:
(1)AP自服务区:
具有作品管理、合作签约、结算管理、销售查询等功能,满足开发者的管理需要.
(2)能力池:
向开发者提供一个统一、易用、简便的开发环境。
使开发者很方便地进行跨平台开发,在同一代码的基础上,实现为不同的移动设备适应、构建和包装应用程序。
可以为开发者节约开发者巨大的开发成本,快速帮助开发者把技术成果迅速普及到不同的手机操作系统。
(3)终端池:
为开发者提供各种终端设备远程测试服务,使开发者测试应用适配性便捷轻松。
(4)操作系统池:
为开发者提供一次开发、多次编译,生成多种手机应用,生成跨平台应用的工具。
(5)机型信息库:
提供各种机型的信息内容,并与终端池无缝结合,提供真机体验服务。
(6)创意孵化工坊:
用户仅需要将喜欢的内容在系统中上传,就可以在不需要编写任何代码的情况下,快速生成适用于手机系统的应用。
(7)MM学院:
为开发者提供MM的知识培训以及考试认证。
(8)工具文档:
拥有最齐全的各种开发工具和文档
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 手机软件 测试 模型 研究
![提示](https://static.bdocx.com/images/bang_tan.gif)