第一章绪论
1.1选题背景
智能移动终端,不论是智能手机还是平板电脑,目前引人关注的操作系统无疑是苹果公司的产品iPhone,iPad使用的iOS操作系统和Google公司的Android操作系统⑴。进入2011年以来,Android实现了计算机诞生以来最快速度的增长,以前所未有的速度迅速征服了整个世界,一跃成为世界范围内占有率最高的智能手机操作系统[2]。根据调查统计,在2012年前几个月里,Android在美洲市场的占有率从3.7%迅速增加到51%;而根据赛诺的调查报告显示,Android系统在中国的市场占有率更是高达74/7%。2012年11月的研究数据表明,Android在全球智能手机的市场占有率为76%,在中国市场中占有的份额为90%。Android无疑已经在世界上掀起了一轮智能手机的热潮,而且我们有理由相信这轮热潮将会持续下去⑴。
现在的移动终端的功能已经从单一的通话功能、短信功能,向着语音、视频、音乐、图像等多功能的趋势发展,为了满足广大用户的需求,各个手机生产厂商也向着摄像手机、音乐手机、拍照手机等多功能的方向发展[3]。随着手机的广泛应用,其中的功能也越来越智能化,之后智能机也逐渐出现在人们的视线中。在智能手机的发展初期,智能机外形上大而笨重,并没有受到人们的欢迎。今日的智能机随着时间的推进不断地发展,几乎每人都有一部智能手机,已经变成人们平日里的不可或缺的生活用品。
对手机软件进行压力测试和性能测试的时候,手动测试显示出精准度不高、消耗过多的人力物力等不足。由于计算机具有价格低廉、执行效率高等优点,测试时可以把一些繁琐而复杂的测试任务交给计算机来执行,这样可以有效地减少测试人员的工作量。虽然自动化测试不是万能的,而且也不能完全代替传统的人工测试的地位,但是发展潜力是不可限量的[5]。如果测试中能够有效的利用自动化测试方法,则能在很大程度上提高软件测试的效率,并能够方便地帮助测试人员完成测试工作[6]。
1.2研究现状
目前,全球主流的智能手机操作系统有Nokia公司研发的Symbian、Google公司研发的 Android、Apple 公司研发的 iOS、Microsoft 公司研发的 Windows Mobile 以及 Research InMotion公司研发的Blackberry OS等。上述的智能手机操作系统根据自身特点可以分为两类:开源平台和封闭平台。其中,除了 Google公司研发的Android操作系统是开源的之外,其余都是封闭的系统,不对外公开本身的一些源代码。
而具体到Android操作系统的智能移动终端的测试这个问题上,大量的应用程序,复杂的状态和软件功能,包括功能测试在内的各种代码的编写等等对于开发人员和测试人员来说也就意味着繁重的测试任务[11]。但同时其开源特性和提供大量的应用程序接口也给自动化测试的具体实现带来了更多的可能性。所以,利用一些现有的技术,幵发出一套完整的应用于Android设备的自动化测试工具,既可以减轻测试人员的负担,将他们从技术难度较小且耗费大量时间的工作中解脱出来,又可以发现一些在手动测试中很难发现的缺陷,无疑对测试工作有实际应用价值。
1.3主要研究内容
本文重点研究Android的Instrumentation框架,开发一种Android平台上的自动化功能測试工具,对Instrumentation框架进行改善,能够实现跨应用的测试。本文的主要工作包括:1)分析自动化测试流程的各个阶段,搭建开发和测试所需要的环境;2)研究Instrumentation框架,对自动化测试工具进行设计与实现;3)根据实现的测试工具与设计的测试用例,对应用软件进行测试;4)改进InstrumentationTestRmmer生成XML测试报告,分析测试结果。
1.4论文组织结构
本论文总共分成五章:第一章绪论,主要对研究本课题的背景以及现状做一个初步的说明。第二章主要包括Android的相关知识和自动化测试技术的相关知识。第三章介绍自动化测试的流程,重点分析手机上应用软件的测试需求,然后搭建幵发和测试环境。第四章首先分析设计工具所需要的功能模块,然后详细说明本文实现的手机自动化功能测试工具,最后在实际测试中使用本工具进行测试,得出测试结果,生成测试报告。第五章对本文所做的工作进行总结,展望后续需要做的工作。
第二章Android简介与自动化测试
2.1软件自动化测试的概念
软件自动化测试,本质上说,就是使用具体的测试工具,按照预先设定的测试计划,代替手工对软件进行自动化测试[18,19,2^,保证被测软件或程序的质量达到具体的要求,缩短测试的时间。通常情况下,自动化测试需要借用测试脚本或代码。测试用到的脚本一般用某种脚本语言进行编写,然后在指定的测试工具上可以实现并运行的代码。当前,普遍使用的测试脚本的主要生成方式有三种:人工编辑、单元测试中的脚本、录制回放的脚本。
第三章自动化功能测试工具的分析...................14
3.1 Android工程中的文件介绍...................14
3.2自动化测试流程...................15
3.3手机功能测试的需求分析...................17
3.4搭建开发和测试环境...................20
3.5本章小结...................23
第四章自动化功能测试工具的设计与实现...................24
4.1自动化功能测试工具的整体设计...................24
4.2自动化功能测试工具的界面设计...................25
4.3测试用例设计模块的实现...................27
4.4测试执行模块的实现...................29
4.5跨应用测试的实现...................30
4.6测试结果分析模块的实现...................33
4.7本章小节...................39
第五章总结与展望...................40
5.1全文总结...................40
5.2未来展望...................40
总结
在Android系统迅速崛起的今天,对Android应用程序的测试提出了更高的要求。自动化测试作为软件测试中的一种重要技术手段,对Android应用程序的自动化测试的研究具有非常重要的现实意义。
本论文主要分析和设计一种自动化功能测试工具,并进行了开发和简单实现的工作,并对自动化测试的流程有了进一步的了解与认识,虽然现在已经存在一些Android系统的自动化测试工具供设备厂商以及软件开发公司使用,但这些工具不完善,在使用上也有一些限制。因此,本文重点研究Instrumentation框架,设计了一种Android自动化功能测试工具,对其进行改善,既满足跨应用,又不基于图形界面的截图来判断测试结果,实现应用软件的功能测试,最后生成XML格式的测试报告,有助于集成测试的使用和测试相关人员查看。
参考文献:
[1]黄蓉.基于Android操作系统的自动化测试系统的研究与实现[D].北京邮电大学,2012.
[2]侯菊敏.基于Android的关键字驱动自动化测试框架研究[D].中山大学,2012.
[3]甘恬.Android手机软件测试方法与实践[D].北京邮电大学,2011.
[4]黄琦.Android智能手机应用软件自动化测试工具的设计和开发[D].安徽大学,2012.
[5]杨洁.嵌入式软件测试的实践与研究[D]?上海:华东师范大学,2009.
[6]张立芬,周悦,郭振东.Android移动应用测试[J].中国新通信,2013,3:58.
[7]高巍.Android操作系统软件自动化测试方案的设计与实施[D].北京邮电大学,2012.
[8]单李旺.Android操作平台的研究与应用[D].天津:南幵大学,2009.
[9]林峰.手机软件自动测试系统的设计与开发[D].厦门:厦门大学,2009.
[10]白凯,崔冬华.基于JUnit自动化单元测试的研究[J].计算机与数字工程,2010,38(002):52-54.