引言:近几年智能手机等移动终端迅速普及,移动互联网的用户数量不断攀升,作为移动互联网的关键载体的移动应用软件在市场催生下更是呈爆发式增长,而大多数软件测试人员发现移动设备上的软件测试非常富有挑战性,本文以移动应用测试的主要考虑因素为着力点,分析总结了这些不同于PC应用软件测试的挑战,并给出部分解决方案。
随着苹果iOS和谷歌Android等移动操作系统的兴起,各种手持移动设备迅速渗入人们的工作与生活,人们通过移动设备传递信息、接收资讯,而帮助用户直接完成这些动作的就是各种移动应用软件。移动场合多样可变,移动应用的发展空间巨大,应用的测试需求也日益迫切,但移动应用和传统桌面应用运行环境不同,测试所考虑的因素也大不相同,这给软件测试人员带来了哪些挑战?测试人员又要如何面对这些挑战呢?
一、 移动应用测试主要考虑因素
要创建成功的移动应用测试计划,必须先熟悉移动应用所发生的环境,从而分析测试所要考虑的关键因素。首先需要理解设备连接问题和网络速度、有效区域以及网络时延;接下来要考虑设备的多样性、设备的各种限制、设备的交互手段;最后是程序的升级与维护。这些因素都为移动应用软件的测试带来了不同于传统软件测试的挑战。
1.1网络连接
大部分的移动设备都能够通过使用无线热点和无线接入点联网,即使蜂窝移动通信采用了3G和4G技术,在速度和稳定等性能等方面都比不上热点连接。设计移动应用时,开发者希望它能够使用速度相对较慢和性能相对不稳定的数据链路网络。为了发现程序针对用例的错误,不仅要在网络通畅的环境下测试,还应该充分测试网络连接不佳的情况下应用的可用性和可靠性。
1.2设备的各种限制
便携和移动上网都是移动设备和移动互联网得以快速流行的主要原因,但是这些优点同时给移动设备带来了相应的限制,这些限制也是移动应用测试不得不考虑的因素。轻薄的设备不能配备大容量的存储介质、大尺寸的处理器,短期内的硬件制造工艺还不能摆脱这些限制,所以移动设备的内存资源和计算能力是有限的。另外关于移动互联网稳定性和带宽的限制在上述网络连接部分已经提到。
1.3设备多样性和兼容性
市场上有大量的不尽相同配置差别悬殊的设备,应用对GPS、摄像头、麦克风等内置配件的调用,以及使用触摸屏、触摸笔、滚球等输入设备与应用进行交互,这些行为给用户带来的体验也与传统应用完全不同,成功的测试计划必须考虑用户是如何与这些设备进行交互的,还有应用是否兼容各种不同配置的设备。
二、 移动应用测试面临的挑战
移动应用测试充满了挑战,为了更从容地应对这些挑战,对他们进行归类。主要来源于以下四个方面:网络基础设施,设备多样性,生命周期短,自动化测试。
2.1网络基础设施
程序支持多个运营商,需跨越两道难关:理解和适应运营商网络的基础设施和架构,以及克服基于位置的障碍。移动应用程序使用的不是并不是传统的基于IP协议的无线热点一类的运营商网络,而是基于射频的协议,如码分多址(CDMA)、时分多址(TDMA)或者全球移动通信系统(GSM)。基于射频的协议将基于IP协议的数据包当作有效载体,对其进行传输并分发到移动设备上,然后通过移动设备进行解码并最终呈现给应用程序。
2.2设备多样性
不断增长的设备多样性测试所带来的挑战,开发商永远在不停地发布新的设备,跟不上开发商的发布速度,越来越多妍高的设备意味着要给中的测试增加更多的测试用例。越来越多样的设备意味着需要为手中的测试增加更多的测试用例。数以百计的不同类型的设备可能会安装并使用你的程序,任何没经过测试的机型都有可能不兼容你的应用程序,意味着损失的不仅仅是一个客户。
2.3生命周期短,更新频繁
很大一部分移动应用是软件生产者为了迎合移动互联网从PC端移植过来的,或者是一些更适合移动互联网的新创意,生产商为了快速发布以抢占市场,获取更多的用户,通常会将第一版的开发周期压缩到很短。这不仅给随后的产品升级保留了很大的空间,甚至还导致了软件出现bug的概率增加,而这两点也都将直接导致应用的更新频繁。
2.4自动化测试
创建和执行测试脚本软件测试的常用技巧,但是移动设备真机的环境通常不允许加载可以反复执行的自动化测试脚本,从而需要测试人员按照写好的文档化的测试步骤在目标设备上手工执行,目标设备不可能只是一种,可以预见工作量会很大,并且人工测试用例很容易出错。
三、模拟器测试应对挑战
移动应用测试有真机测试和基于模拟器的测试两种基本选择,真机测试虽然价格不菲,但是对于网络基础设施带来的挑战,真机测试似乎是不可避免的,在真实的运营商网络测试中需要身临其境。而模拟器测试的优势也不仅仅是节约成本,还可以方便地应对设备多样性以及脚本化编程给测试带来的挑战。
3.1模拟器测试应对设备多样性
不同的模拟器模拟不同的设备,为了模拟在某一种设备上测试,只需要加载该种设备对应的模拟器配置文件即可,且基于PC的模拟器容易管理,每一个测试人员都有这个设备。为了验证那些因为程序代码改动而导致的设备兼容性问题,可能需要在各个设备上快速执行测试,有了自动化测试,可以事半功倍。
3.2模拟器脚本编程实现自动化测试
模拟器对高级脚本编程语言的支持,可以创建可持续反复运行的,较少认为失误的自动化测试脚本,而自动化测试通常要比人工测试快得多,模拟器上的脚本编程语言往往是与设备无关的,自动化测试脚本可以一处编写,随处运行。
四、结语
移动应用已经渗透到我们工作生活的方方面面,在移动设备上运行赋予其更接近用户的特殊性,其软件的质量会影响到应用的用户量和粘性。移动应用测试时软件测试的新领域,移动的环境为测试增添了更多的复杂性和人机交互途径,只有深刻的理解和掌握所面临的挑战,才能成功地测试移动应用程序。
参考文献
[1]Glenford J.Myers, Tom Badgett, Corey Sandler. The Art of Software Testing. Third Edition. ISBN:9787111376606,2012.
[2]Mobility & App testing Community. Checklist Mobile App Testing. Version 1.0, 2012.
相关专题:小说月报投稿 小说月报 小说月报官网 小说月报原创版投稿 小说月报原创版 期刊投稿地址 杂志投稿 杂志投稿邮箱 青年文学 萌芽 福建体育科技 planning