基于移动平台APP测试
2017-03-31李妍
李妍
摘要:随着移动智能终端广泛应用,手机APP极大便利了人们生活。本文针对移动智能终端的特性,从不同的方面考虑测试范围和测试重点,采用相应的自动化测试工具,以确保移动APP能正確、安全、可靠地运行。
关键词:移动平台;软件测试;测试工具
随着4G网络兴起,手机APP对人们的生活提供越来越多的便利,更多的人也越来越关注这些软件运行的正确性、安全性、可靠性等方面的要求。软件测试的不断发展已经逐步形成了一套成熟的理论以及衍生出一系列优秀的自动化测试工具,为移动平台的APP测试提供丰富的经验。由于移动设备的操作方式、不同尺寸的屏幕、网络接入方式、较小的存储空间及用户使用习惯等方面与PC端的差异,导致两者的测试重点和测试工具也有所差异。
1移动平台APP与PC端项目测试的区别
基于移动平台软件测试主要针对移动终端上的NativeAPP进行测试,而PC端的软件测试主要侧重基于B/S模式的网站测试。移动APP在移动互联网市场上生命周期短,大多数精彩的APP也只是风靡一时,导致移动APP开发周期也越来越短,各软件开发商为了提高APP在移动应用市场的排名使得软件更新升级也越来越频繁,而PC端软件一般功能齐全,开发周期较长,更新较慢。由于移动智能终端的容量限制及应用市场上海量APP可供选择,导致用户对于相应时间太长或者不符合需求的APP容忍度较低,且基于不同操作系统的移动APP可移植性差,程序员需要针对不同的操作系统开发软件,而PC端可以实现跨平台兼容性。因此,基于移动APP项目测试面临着巨大的挑战。
2基于移动平台APP测试
基于移动平台的APP测试主要考虑APP的安装与卸载测试、功能测试、UI测试、兼容性测试、交叉事件测试、安全性测试、性能测试,并且在每个测试阶段不断地进行回归测试,以确保软件能正确、稳定、安全、可靠得运行。
2.1安装、卸载测试
安装与卸载测试是移动APP最先进行的测试环节。在对APP进行安装测试时,需要关注在不同的操作系统版本上,不同智能终端上是否能够正确安装,安装过程中是否可以取消,如遇内存不足的情况是否有提示信息同时自动取消安装并删除安装时写入设备的文件。卸载测试时,程序是否有提示卸载信息,卸载程序过程中能否取消卸载,卸载后能否自动删除安装时写入设备的文件。
2.2功能测试
功能测试是最基本的测试,主要根据软件需求规格说明书来验证APP功能是否正确实现,是否有遗漏或错误的功能。采用时间、地点、对象、行为和背景五元素或业务分析等方法分别提取APP测试点。根据被测功能的特性,采用恰当的测试方法设计相应的测试用例。比如对于多逻辑条件输入操作可以使用等价类划分、边界值、因果图、场景法等对其进行覆盖。跟踪软件测试的各个阶段,及时修正业务和需求理解错误的地方,保证测试的准确性。一般APP功能测试还需要考虑:APP运行、前后台切换、免登陆、照相机定位功能、时间、消息推送、离线浏览、数据更新、软件更新等方面。
基于Android的功能测试工具有Monkeyrtmner和Robotium.Mon-keyrurmer是AndroidSDK自带的测试工具,它提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。应用于功能测试中,它可以根据提供按键或触摸事件的输入数值,将输出结果的截屏保存于工作站中。1Kobotium是一个测试框架,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作,它使得编写黑盒测试代码更加容易和稳定。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试,是目前国内外使用最多的测试工具。
2.3UI测试
用户界面是最先映入用户视线的内容,界面的美观、布局合理直接影响用户的对APP的兴趣。UI测试主要关注用户界面的布局、风格是否满足用户需求,界面文字是否正确、页面的文字、图片、色彩搭配是否美观,操作是否友好等。UI测试主要通过导航测试、图形测试、内容测试来验证用户界面是否能为用户提供访问和浏览功能,并确保用户界面符合公司或行业的标准,同时以实现APP软件良好的交互性、人性化、易操作性。
2.4兼容性测试
兼容性测试是APP测试中最大的挑战,由于移动终端在软硬件的差异性及网络接入方式不同导致信息流量大小差异,使得APP的兼容性测试异常困难。
从软件方面:目前主流的操作系统有Apple公司的10S和Google公司的Android,操作系统版本多样,根据硬件支持情况安装不同的版本。
从硬件方面:屏幕尺寸、分辨率的不同;不同的制造厂商;不同的设备存储空间等。
从网络接入方面:移动终端的网络连接方式有2G/3G/4G/Wi-Fi,确保APP在不同的网络情况下能够正常运行。
2.5交叉事件测试
交叉事件又叫事件测试或冲突测试,是非常重要的一种测试,是指当一个APP正常执行过程中,另一个事件或操作对APP造成干扰或打断正在执行的进程进行的一种测试。如APP运行过程中与来电、短信、文件下载、音乐收听、视频播放等关键运用的交互情况的测试等,通过交叉测试能够发现APP中潜在的性能问题。交叉测试主要考虑以下几种情况:
多个APP同时运行时或APP前后台切换时,是否影响正常功能;
APP运行时接听/拨打电话、收发短信和邮件是否影响正常功能;
APP运行时切换网络是否影响正常功能;
APP运行时使用蓝牙收发数据、相机拍照是否影响正常功能等。
2.6安全性测试
安全性是用户最关注的部分,安全性的好坏直接影响用户数量。APP的安全性测试主要从软件的权限、数据安全性、安装与卸载的安全性考虑。
软件权限:APP使用过程中,是否存在发送短信、拨打电话等导致扣费风险;是否自动访问手机信息、联系人、图片等隐私泄漏风险;或其他非法授权风险。
数据安全性:APP不能未经用户的指令或允许损坏删除用户信息;能正确处理非法软件连接用户个人信息管理的情况;删除或修改关键数据时有提示或警告;敏感数据应不能以明文方式形式显示或直接存储,采用加密算法对密码等敏感数据进行保护;临时文件要及时删除。
安装与卸载的安全性:安装APP时,是否包含数字签名信息、是否捆绑其他软件、是否自启动、卸载是否完全、卸载是否会影响其他软件的运行。
2.7性能测试
性能测试主要评估APP的时间和空间特性,APP性能的好坏直接影响APP未来的发展。对APP进行性能测试主要考虑以下几个方面:在各种边界压力情况下,如手机电池量不足、内存占满、网络中断等,APP能否正确响应;安装、卸载的响应时间及APP各功能、业务单独执行时响应时间是否在用户可承受范围之内APP在连续运行24小时或更长时间的情况下,反复安装卸载、持续执行各项功能,系统资源占用是否正常;典型情况下评估APP运行时系统资源的使用情况,包括内存占用率、CPU占用率、电池消耗情况、带宽占用率等。
Monkey也是AndroidSdk中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
总之,从最初的手工测试到逐渐发展的自动化测试工具,到目前已经有多款云测试平台可提供给软件开发商进行测试。云测试平台在云端部署各种移动设备终端真机,并且拥有有一个强大的测试团队的组织,它给用户提供一个客户端,用户只需上传APP安装文件即可在电脑上控制云端真机,实现功能测试、交叉事件测试、UI测试、兼容性测试、安全性测试等。云测试平台是自动化测的产物,只有测试技术不断提高,才能确保软件安全、稳定地运行。