> 硕士毕业论文 > 27500字硕士毕业论文安卓程序自动测试系统的开发

27500字硕士毕业论文安卓程序自动测试系统的开发

论文类型:硕士毕业论文
论文字数:27500字
论点:测试,自动化,设计
论文概述:

论文从背景创新点、关键技术和算法、需求分析、详细设计和平台实现等几个方面对本项目做出了详细的论述,论述过程具有较强的专业性和逻辑性,较好的将所学的理论知识如何转化为实践过程

论文正文:

介绍

 本章主要介绍移动互联网行业的发展历史和手机端应用程序测试技术的发展现状。在对目前移动互联网行业对手机端自动化测试研究的缺陷和不足做出分析的基础上,结合项目自身特点提出了 Android平台应用程序自动化测试遍历以及自动化用例的产出需求。同时在本章最后,对全文整体章节的划分做出了简要的描述,以便于读者对全文结构的把握。
 1.1论文研究背景塞班操作系统自1998年成立后,因其消除了硬件平台差异的特点,独占了手机市场的未来十年。在这10年里,受制于硬件、软件以及通信的发展,移动互联网行业稳步发展,并没有对传统的PC行业有太大的冲击。然而2009年以来,移动互联网领域发生了翻天覆地的变化,手机行业的软件飞速扩张。苹果、HTC即将取代原来的三巨头。其各自主打的操作系统iOS、Android也逐渐统治了整个移动互联网行业。移动互联网市场潜在的巨大价值得到了各大互联网公司和社会各界的充分认可,各大公司无论在战略上还是资金上都给予了很大的投入,争先抢占这个新兴的领域。在各大公司爆发式的产品策略抢占市场的同时,应用软件质量的保证成为了关键。目前的手机应用软件测试中,手动人工测试仍然占很大的比重。然而手机应用程序开发又有其自身的特点:品种繁多、开发周期短、迭代速度快、持续集成以及“胖”客户端。由于手机应用程序这几方面的特点,为了保证在功能测试、性能测试、稳定性测试以及兼容性测试的质量,传统手工测试需要投入大量人力与时间,其质量的保证既成为了每一个公司测试部门的难题,又是一个急需解决的问题,因而迫切需要引入自动化测试,以提高移动应用程序的质量,提高测试效率,解放大量手工测试带来的重复劳动力问题等。目前,移动设备应用程序的测试刚刚起步,相应的自动化测试水平还不高,探索有效的测试模型、方法和技术,开发实用有效的测试工具,也逐渐成为世界各地学者热点关注的焦点,从传统的手工测试向自动化测试方向转换。自动化测试的发展经历了三个阶段:第一阶段的自动化测试为传统的“录制-回放”技术,模拟对PC的操作;第二阶段为脚本化的自动化测试,开始集成了模块化与库思想;第三代自动化测试产生了数据驱动与关键字驱动等自动化思想,自动化测试开始有了一定的规模和运用。目前的自动化测试方法与策略大部分都是基于现有的面向对象软件系统,而建立一套适用于新形态的开放的、动态和多变环境的新型软件的测试理论、方法和技术是一种新的挑战。基于Android的智能手机平台上的应用程序正在不断增加,软件质量的要求也在不断的提高,而自动化测试技术目前还不成熟,是国内外研究的热点。本课题拟设计和实现Android应用程序的自动化测试平台系统,实现单个Native App的遍历测试、测试用例自动生成、测试case自动运行、生成测试报告等功能。能够提高测试效率、测试覆盖率,提高产品质量并解放大量手工测试的重复劳动力,具有一定的工程应用价值。1.2论文研究内容及意义本文涉及的项目是Android应用程序自动化测试平台的设计与实现。该项目的幵发目的,是为了适应移动互联网领域应用程序的开发特点,在保证测试质量的同时大量节省人力与时间,提高测试效率,减少测试成本投入。本文将从自动化测试相关技术综述、自动化测试需求分析、自动化测试设计、自动化测试实现等几个方面对整个项目研究和开发过程进行详细叙述,叙述过程中将重点讨论以下几方面内容:(1)自动化遍历路径的设计与实现:根据项目需求,结合现有的网络爬虫技术,选择一种适合手机应用程序界面跳转逻辑图抓取的爬虫算法,从而实现在有限的时间内能够准确高效的获得图形用户界面(GUI)的图模型。(2)遍历页面存储方式的设计与实现:为了 GUI图模型抓取信息的存储和高效实用,本文还将结合爬虫网页的存储原理,选择一种适合本项目数据量级的存储结构和方法,完成后续用例产生的项目需求。(3)自动化测试用例的产出:结合最小生成树回溯算法,进行路径挖掘,实现一种自动分析应用程序图形用户界面图模型的系统,产出最小的具有执行先后顺序的用例集以及功能性测试用例。
 2自动化测试平台开发相关技术综述
 基于网络爬虫的遍历算法、GUI模型图的存储算法、GUI模型图路径挖掘算法是本项目的3个核心技术点,也是本项目算法和数据结构的集中体现部分,是本论文的研究重点。围绕这3个核心技术点,本文通过对对SCI (Science CitationIndex)、IEEE (Institute of Electrical and Electronics Engineers )、中国知网、万方数据库、维普等国内外学术文献网络数据库的检索,下载了 70余篇相关文献,研读挑选了与本项目相关可借鉴的20余篇,综合10余本相关方面的书籍,并通过互联网学习相关技术难点,对这3个核心技术点有了一定的理论基础和技术融合,进而对实现方法有了较为深入的思考和结论,现对相关技术文献整理如下:
 3自动化测试平台需求分析..............153.1综合描述..............153.2自动化测试平台功能性需求..............183.3测试平台非功能性需求..............213.4开发技术需求..............223.5本章小结..............224自动化测试平台设计..............254.1总体设计..............254.2详细设计..............284.3本章小结..............345自动化测试平台实现及测试..............375.1遍历模块的实现..............375.2 GUI模型图存储模块的实现..............435.3用例产生模块的实现..............435.4用例执行模块的实现及测试..............475.5 本章小结..............48
 总结
 Android平台应用程序功能自动化测试项目是本人在公司实习阶段,根据公司现有的自动化框架和技术,结合公司目前实现自动化的现状,改进和设计的一个项目。该项目的开发小组由一名导师和两名程序员组成,我担任其中的一名程序员和讨论组组长。项目设计和开发的过程中涉及到遍历模块算法设计、GUI模型图存储模块设计以及用例产生模块设计等,既考验平时学习的基础知识融合能力又具备一定的创新和学术价值,所以我选取本项目作为研究生阶段的毕业论文的选题项目。论文从背景创新点、关键技术和算法、需求分析、详细设计和平台实现等几个方面对本项目做出了详细的论述,论述过程具有较强的专业性和逻辑性,较好的将所学的理论知识如何转化为实践过程,与实践形成对应的方式阐述清楚。下面对项目及论文的工作作出如下总结:(1)基于网络爬虫原理的遍历模块目前,在自动化测试领域,针对手机应用程序的特点,将网络爬虫的原理经过改进努力的将其移至到手机应用程序的遍历扫描中来的这种思想还是一个比较新的思想,是一个大胆的尝试。本项目在遍历模块的设计中,结合模块本身面向对象的特点,将网络爬虫对应的模块提出了改进措施,如爬虫的URL直接寻址与手机界面跳转逻辑的间接寻址之间的不同,爬虫网页的存储机制与手机遍历的存储机制之间的差别等,对网络爬虫缺失,而手机应用程序需要的模块也给出了详细的设计理念,如对界面间跳转逻辑的存储与使用,从而从整个设计到实现提供了一个可控的模块框架。除此之外,长期在手机地图测试团队积累下来的测试经验和代码能力,也为这个模块的设计提供了不少帮助。(2)理论落地到项目与详细设计的把控在计算机领域学习的这几年间,大大小小的专业知识学了很多,能够落地到实践的并不多,能够像这个项目一样,把多种算法和理论经过融合改进,形成符合自己需求的设计理念的更是机会不多。所以我很珍惜这次项目经验,努力做好这个讨论组长,和同事经过仔细的讨论和思考,将所学的从遍历到生成树,再到回溯等的一系列知识落地到项目中来。同时,将需求运用所学的理论形成设计只是详细设计的一半,另一半就是通过详细设计,明确实现过程中的各种框架结构和模块功能。这也是体验一个人在项目设计初期对项目整体走势的把控,对我也有很大的提局。(3)GUI存储模块设计在遍历模块中移植了网络爬虫的整体框架,那么存储机制是否也要一味的模仿和移植也成为了项目设计与实现的关键。在最后的设计阶段,通过小组的激励讨论,最终我们找到了设计的关键,就是存储规模,网络爬虫的大规模大数据量的存储结构在我们这个平台如果一味模仿,将会出现效率低下且资源浪费的情况。所以,最终我们采取了以数据结构为主要设计形式,完成了对各个信息的存储和索引。(4)较复杂图形挖掘的实现经验自动化平台的最终目的是产出测试用例实现自动化。那么,无论是之前的遍历模块还是后续的存储设计,最终都是为了产出用例实现自动化做铺垫。那么用例产出模块的设计好坏尤为关键,是体验自动化覆盖率的关键模块。在这个模块设计中,我们由最初的GUI模型图的复杂结构无从下手到后来通过理论知识,首先对GUI模型图进行最小生成树的简化,再到回溯算法的用例挖掘,都是一步步讨论与知识沉淀的结果。这也积累了我们在处理较复杂数据结构时的信息和实现经验。
 参考文献;[1]百度移动事业部.百度移动互联网发展趋势报告.2012年第四季度.[2]王磊.基于智能交互技术的自动化测试方法研究与实现[D].成都理工大学.2009.[3]Xie Q,Memon AM. Designing and comparing automated test oracles for GUI-based softwareapplications.ACM Transactions on Software Testing and Methodology 2007.[4]Atif Memon, Ishan Baneqee, Adithya Nagarajan.GUI Ripping. Reverse Engineering ofGraphica 1U serlnterfacesfo rTesting.WCRF03.2003[5]汪春.基于时间流图的GUI自动化测试模型研究[D].华中科技大学.2010.路栋.自动化软件测试框架分析及应用.浙江大学[D].浙江大学.2008辛敏杰,高建华.影响GUI自动化测试性能的因素分析[D].上海师范大学.2008唐发根.数据结构教程.北京航空航天大学出版社.第二版.2005龚勇.搜索引擎中网络爬虫的研究[D].武汉理工大学.2010Thomas H.Cormen.Charles E.Leiserson.Introduction toAlgorithms.China Machine Press.2012