安卓应用自动化测试研究【字数:28510】
摘 要在近些年来,我国已进入了移动互联网时代,在如今这个移动互联网时代的环境下,很多测试人员和开发人员并没有足够的时间去对应用进行充分地测试并完善应用。因此一个非常好的的办法那就是,使用自动化测试工具对安卓应用软件进行自动化测试代替手动重复测试进行测试,进行自动化的测试不仅可以提高测试效率和准确性,还可以更好的优化测试的流程。所谓的自动化测试是它是使用测试工具及脚本等手段,将手动测试转变成为软件、机器和程序,并且依照测试人员根据测试用例所制定的规划对软件做自动化测试,从而保证软件满足用户的需求,自动化测试是用来提高测试的覆盖率及可靠性的十分重要的手段,从而节约资源、人力和时间,提高效率,保证测试的范围,自动化测试不仅仅只是一个技术和工具。自动化测试对于一个规模庞大并且周期十分长的项目来说,能够充分提高测试人员的工作效率。在软件测试的过程中,存在着着大量的文档需要测试人员编写,测试人员的精力是有限的,不可能投入到无限的测试工作中去,因此将一部分可以交由机器完成的测试进自动化是一个非常好的选择,可以用来减少测试的工作量,降低测试工作的枯燥和繁琐。
目录
1. 绪论 1
1.1 课题研究背景 1
1.2 课题研究意义 2
1.3 课题研究内容和成果 2
1.4 论文结构 3
2. 相关工作 4
2.1 软件测试概述 4
2.1.1 软件测试核心概念 4
2.1.2 黑盒测试技术 7
2.1.3 白盒测试技术 8
2.1.4 静态测试和动态测试 9
2.2 安卓概述 10
2.2.1 安卓介绍 10
2.2.2 安卓应用组件 11
2.3 自动化测试 12
2.3.1 自动化测试定义 12
2.3.2 自动化测试技术 13
2.3.3 自动化测试实施要点 14
2.3.4 自动化测试的局限性 14
2.4 自动化测试工具 14
2.4.1 Eclipse(集成开发环境) 14
2.4.2 Java 16
2.4.3 Python 16
*好棒文|www.hbsrm.com +Q: ^351916072*
2.4.4 MonkeyRunner和Monkey 16
2.4.5 PyDev 17
2.5 测试用例 18
2.5.1 测试用例构成与设计 18
2.5.2测试用例的重要性 18
2.5.3测试用例的设计及书写标准 18
2.5.4测试用例的属性 19
2.6 目标软件 20
2.6.1 目标软件介绍 20
2.6.2 目标软件的各个主要界面 21
2.7 本章小结 22
3.脚本测试设计 23
3.1 测试计划 23
3.2基于测试用例的测试脚本设计 26
3.2.1 基于功能点编写黑盒测试测试用例 26
3.2.2 自动化测试环境配置 34
3.2.3 测试脚本 35
3.3 本章小结 37
4.自动化测试的应用 38
4.1 自动化测试的使用 38
4.2 测试BUG结果汇总表 45
4.3 本章小结 49
5.总结与展望 50
参考文献 51
致谢 52
1. 绪论
1.1 课题研究背景
在如今的这个时代,软件行业成为了目前经济发展的重要支柱之一,而软件测试则是软件开发过程中不可或缺的一部分,对软件进行测试不但保证了软件的质量,也降低了该软件正式运行时维护成本。
在近些年来,我国已进入了移动互联网时代,在如今这个移动互联网时代的环境下,智能手机的普及程度也是十分之高了,目前市场上的智能手机大都是搭载安卓或者IOS的操作系统,这些智能手机中安装了安卓操作系统的所占比例更大,因此无数安卓程序的开发者收到了吸引投入到了这庞大的市场中去,而随着大量基于安卓操作系统开发的应用程序的广泛传播,目前这些软件已经在人们生活到处都是了,基于安卓操作系统开发的软件和支持其运行的硬件所形成的生态圈正在慢慢的改变人们的生活。
目前国内外可以进行安卓自动化测试的框架有很多[1],也拥有各自的特点,比如Espresso、MonkeyRunner、Monkey、UiAutomator、Appium[2]。目前可以按照测试对象的不同将关于安卓应用的自动化测试分为针对安卓普通应用和恶意应用的自动化测试。
安卓普通应用的自动化测试的目标是在一定时间内达到较高的测试覆盖率,按照探索策略可以将现有的安卓自动化测试方式可以分为基于GUI模型的探索、随机探索和基于动态符号执行的探索。
随机探索策略,即随机产生一些事件用于触发安卓应用,这种自动化测试策略的优点可以快速地向被测软件发送大量的随机事件,比较适合进行压力测试,可是这种测试策略会产生大量的重复事件,导致测试效率低。
基于GUI(Graphical User Interface图形用户界面)模型的探索策略,这种探索策略将事件作为不同状态之间的转移,其探索策略减少了不必要的事件输入,因而理论上比随机策略的效率更高,但是其探索策略没有考虑广播事件,因而无法识别一些由广播事件导致的状态改变,其工具有GUIRipper、Swiflhand等。
基于动态符号执行的探索策略,符号执行技术作为一种探索新路径的技术,其可用性有了很大提高,利用动态符号执行技术探索新路径,在传统应用的fuzz测试中也己经得到了很好的实践和证明嘛,在安卓应用自动化测试方面,利用符号执行去探索更多路径以达到更高覆盖率的研宄也有很多,比较有代表性的工具有acteve、A3ETargeted等,但是在安卓应用自动化测试上,直接沿用传统fuzz测试的思路,会出现很多问题,导致这些工具实际上并没有达到理想的覆盖率[3]。
1.2 课题研究意义
随着安卓应用的发展,现在安卓开发者们在开发过程中遇到的困难也越来越多,首先是安卓应用市场破碎严重,各个不同手机厂商之间的硬件和配套开发的操作系统都不相同,开发者很难去对各个不同厂商开发的不同版本的操作系统进行适配。其次是安卓应用程序的开发周期比起传统软件的开发的周期更加的短,版本更新迭代的速度也更加的快,这导致了很多测试人员和开发人员并没有足够的时间去对应用进行充分地测试并完善应用。同时安卓应用的开发技术每天都在发展,操作系统和其硬件自带的功能也变得越来越复杂,然而开发者因其水平参差不齐无法按照现有的标准和规范来进行安卓应用软件开发,基于这些原因安卓应用程序不能得到完好的保障。现在的安卓应用都时常出现各种安全问题,或者是应用程序反应缓慢和崩溃,消耗了太多的流量和耗电量,这些都导致用户的使用体验极差,而由于手机用户对于软件的质量要求更高且手机设备内存空间一般并不充裕,手机用户更倾向于使用质量更好和体验更好的软件而将质量更低和体验更差的软件卸载,因此手机软件的质量是非常非常重要的,稍微一点点的质量问题都有可能直接导致软件失去大量的用户甚至于被市场直接淘汰掉。
目录
1. 绪论 1
1.1 课题研究背景 1
1.2 课题研究意义 2
1.3 课题研究内容和成果 2
1.4 论文结构 3
2. 相关工作 4
2.1 软件测试概述 4
2.1.1 软件测试核心概念 4
2.1.2 黑盒测试技术 7
2.1.3 白盒测试技术 8
2.1.4 静态测试和动态测试 9
2.2 安卓概述 10
2.2.1 安卓介绍 10
2.2.2 安卓应用组件 11
2.3 自动化测试 12
2.3.1 自动化测试定义 12
2.3.2 自动化测试技术 13
2.3.3 自动化测试实施要点 14
2.3.4 自动化测试的局限性 14
2.4 自动化测试工具 14
2.4.1 Eclipse(集成开发环境) 14
2.4.2 Java 16
2.4.3 Python 16
*好棒文|www.hbsrm.com +Q: ^351916072*
2.4.4 MonkeyRunner和Monkey 16
2.4.5 PyDev 17
2.5 测试用例 18
2.5.1 测试用例构成与设计 18
2.5.2测试用例的重要性 18
2.5.3测试用例的设计及书写标准 18
2.5.4测试用例的属性 19
2.6 目标软件 20
2.6.1 目标软件介绍 20
2.6.2 目标软件的各个主要界面 21
2.7 本章小结 22
3.脚本测试设计 23
3.1 测试计划 23
3.2基于测试用例的测试脚本设计 26
3.2.1 基于功能点编写黑盒测试测试用例 26
3.2.2 自动化测试环境配置 34
3.2.3 测试脚本 35
3.3 本章小结 37
4.自动化测试的应用 38
4.1 自动化测试的使用 38
4.2 测试BUG结果汇总表 45
4.3 本章小结 49
5.总结与展望 50
参考文献 51
致谢 52
1. 绪论
1.1 课题研究背景
在如今的这个时代,软件行业成为了目前经济发展的重要支柱之一,而软件测试则是软件开发过程中不可或缺的一部分,对软件进行测试不但保证了软件的质量,也降低了该软件正式运行时维护成本。
在近些年来,我国已进入了移动互联网时代,在如今这个移动互联网时代的环境下,智能手机的普及程度也是十分之高了,目前市场上的智能手机大都是搭载安卓或者IOS的操作系统,这些智能手机中安装了安卓操作系统的所占比例更大,因此无数安卓程序的开发者收到了吸引投入到了这庞大的市场中去,而随着大量基于安卓操作系统开发的应用程序的广泛传播,目前这些软件已经在人们生活到处都是了,基于安卓操作系统开发的软件和支持其运行的硬件所形成的生态圈正在慢慢的改变人们的生活。
目前国内外可以进行安卓自动化测试的框架有很多[1],也拥有各自的特点,比如Espresso、MonkeyRunner、Monkey、UiAutomator、Appium[2]。目前可以按照测试对象的不同将关于安卓应用的自动化测试分为针对安卓普通应用和恶意应用的自动化测试。
安卓普通应用的自动化测试的目标是在一定时间内达到较高的测试覆盖率,按照探索策略可以将现有的安卓自动化测试方式可以分为基于GUI模型的探索、随机探索和基于动态符号执行的探索。
随机探索策略,即随机产生一些事件用于触发安卓应用,这种自动化测试策略的优点可以快速地向被测软件发送大量的随机事件,比较适合进行压力测试,可是这种测试策略会产生大量的重复事件,导致测试效率低。
基于GUI(Graphical User Interface图形用户界面)模型的探索策略,这种探索策略将事件作为不同状态之间的转移,其探索策略减少了不必要的事件输入,因而理论上比随机策略的效率更高,但是其探索策略没有考虑广播事件,因而无法识别一些由广播事件导致的状态改变,其工具有GUIRipper、Swiflhand等。
基于动态符号执行的探索策略,符号执行技术作为一种探索新路径的技术,其可用性有了很大提高,利用动态符号执行技术探索新路径,在传统应用的fuzz测试中也己经得到了很好的实践和证明嘛,在安卓应用自动化测试方面,利用符号执行去探索更多路径以达到更高覆盖率的研宄也有很多,比较有代表性的工具有acteve、A3ETargeted等,但是在安卓应用自动化测试上,直接沿用传统fuzz测试的思路,会出现很多问题,导致这些工具实际上并没有达到理想的覆盖率[3]。
1.2 课题研究意义
随着安卓应用的发展,现在安卓开发者们在开发过程中遇到的困难也越来越多,首先是安卓应用市场破碎严重,各个不同手机厂商之间的硬件和配套开发的操作系统都不相同,开发者很难去对各个不同厂商开发的不同版本的操作系统进行适配。其次是安卓应用程序的开发周期比起传统软件的开发的周期更加的短,版本更新迭代的速度也更加的快,这导致了很多测试人员和开发人员并没有足够的时间去对应用进行充分地测试并完善应用。同时安卓应用的开发技术每天都在发展,操作系统和其硬件自带的功能也变得越来越复杂,然而开发者因其水平参差不齐无法按照现有的标准和规范来进行安卓应用软件开发,基于这些原因安卓应用程序不能得到完好的保障。现在的安卓应用都时常出现各种安全问题,或者是应用程序反应缓慢和崩溃,消耗了太多的流量和耗电量,这些都导致用户的使用体验极差,而由于手机用户对于软件的质量要求更高且手机设备内存空间一般并不充裕,手机用户更倾向于使用质量更好和体验更好的软件而将质量更低和体验更差的软件卸载,因此手机软件的质量是非常非常重要的,稍微一点点的质量问题都有可能直接导致软件失去大量的用户甚至于被市场直接淘汰掉。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/626.html