来源:http://www.51testing.com
第1章 了解App测试
1.1 App测试与普通软件测试的差异
1.软件载体的不同
传统软件都部署和安装在计算机(台式机和笔记本电脑)上,而App的载体是手机等智能移动终端,因此我们可以将手机这个概念扩充为"智能移动终端"或者"智能终端"。
2.软件规模的不同
传统软件的规模动辄几千万行代码,研发周期长达一两年,甚至数年之久。
App软件很少有这么大的代码量,并且其研发周期也都是采用快速迭代、小步快跑的形式。其研发流程的快速迭代化、需求变更的速度,都是传统软件研发没有过的情形。
这给从传统测试转向App或手机测试的广大同仁带来了不小的挑战,其实也在挑战着传统的研发管理模式。
3.测试场景的不同
对于传统的PC端测试场景,读者都很熟悉,通过测试工具,并能够借用鼠标、键盘等外设进行操作,PC的大屏幕实时显示各种测试数据,加之PC的性能也比较高,通过PC计算可以非常直观地产生各种测试图表,还能找到一点"测试的感觉"。转移到手机端测试后,很多人拿着手机,坐在一个角落里,面对一个操作有限、带有子屏幕的设备,感觉无从下手,甚至测试手机的过程貌似就是在"玩手机"。
面对新的测试场景,尤其是手机自动化测试,从技术上看,其难度和挑战不低于传统软件的自动化测试。新入行的同仁需要认真对待,转行App测试的同事需要积极转变心态,手机载体里面还是大有乾坤的。
4.测试关注点的不同
1)性能
在传统软件中,软件的性能可能聚焦在大数据情况下的查询效率、吞吐量等重量级指标上,而App的性能不仅包含传统的服务端性能指标,还包括客户端应用启动时间、应用安装后占用的磁盘空间大小、滑屏的响应时间。这些指标都会受到关注,而且是重点测试内容。
2)易用性
虽然传统软件测试也注重易用性,但是这个易用性测试在App软件测试中的地位无疑被提升到了很高。同质化的软件很多,用户将会选择最好用的软件。
3)吸引性
过去大部分时间,软件的吸引性只是挂在测试工程师的嘴边,甚至只被看作在"软件质量模型"(ISO9126的易用性大项中的吸引性指标)中的一个名词。在App测试中,吸引性之重要性不言而喻。我们在很多时候把易用性当作了吸引性,其实吸引性的范畴更广泛。它是一个综合性概念,这项质量指标也在App测试中立刻被重视了起来。
4)App的稳定性
在App时代,软件稳定性问题非常突出。当手机充当了我们生活、工作甚至社交等方面的"钥匙"时,软件的稳定性不仅仅给客户带来了一个使用感受方面的问题,更多的是关乎安全性的问题。比如一个支付软件频繁闪退、频繁死机,这样的软件还敢 用吗?
5)自动化测试
虽然传统软件的自动化测试已经开展了很多年,而且业界各大公司也有自己专职的自动化开发团队、自动化执行团队,并且都各有建树。但是在App的开发节奏中,这种快速迭代、小巧灵活的软件形式,让App测试超乎以前所有的软件形式而存在。大家普遍认为,要做好App测试,必须要进行App自动化测试。但是App自动化测试又在快速迭代的软件开发周期中显得捉襟见肘,难度非常大,不仅考验着自动化测试手段,还考验着自动化测试的管理。
不管怎么困难,很多的测试类型和测试内容是离不开自动化测试的,离开自动化手段,则根本无法完成该测试内容,相关内容在第2章中会详述。但是手机载体的种种限制,使得App火爆的年代中,成熟的商用自动化测试工具方面形成了一个大大的空档期。所有测试界从业者,不得不挽起袖子,自力更生,在诸多开源框架的基础上,自己开发自动化测试框架,完成相关测试。这也是本书的主旨:在商业成熟的自动化测试工具不具备的情况下,帮助更多的测试团队开发相关自动化测试框架。
1.2 App测试的难点
App的测试难点确实很受关注,尤其是刚刚进入App测试领域的人员。根据笔者的相关经验以及和App专业测试人员的交流,App的难点大概有以下4个方面:
" App的兼容性测试;
" App的稳定性测试;
" App的功耗测试;
" App的自动化测试。
我们可以深入地分析一下,在更大层面上,这些测试之所以让广大App测试同行感觉头疼,本质上是因为App自动化测试手段的不成熟。因为兼容性(详细的兼容性测试内容参见2.3节)、稳定性和功耗测试在很大程度上都要依赖自动化测试手段,才能高效和高质量完成。尤其是对于App的稳定性测试,自动化测试手段更是至关重要。
此外,兼容性测试在测试物料准备方面也存在困难,目前快速解决兼容性测试的突破口就是"云测试",也就是一种在云概念下的自动化测试,但是目前的云测还处于起步阶段,测试深度和广度还有待加强。不过这已经是一个使用自动化测试手段来解决手机兼容性测试问题的好方法了。
对于稳定性测试,可以套用一个概念-MTBF测试,这个测试要严重依赖自动化测试手段。功耗测试更是必须借助自动化测试手段来完成,为了使结果更为客观有效,甚至要用到机械臂这种"硬"的自动化工具,不仅仅是传统的"软"自动化测试方案了。
1.3 App测试中的网络信号概述
目前我国的移动通信网络信号主要是2G、3G、4G的混合信号。2G信号的信号制式比较简单,就是GSM。3G、4G信号就比较复杂,简要描述见表1-1和表1-2。
一般来讲,专门从事手机终端测试的工作人员,需要重点关注网络信号,而专门从事App测试的工作人员则不太需要关注移动网络信号。
但是,CSFB(Circuit Switched FallBack,电路域回落)的概念也需要了解一下,以便于在一些冲突测试的场景中合理选择冲突时间。
在4G网络时代,不管是TD-LTE还是FDD-LTE,当进行语音业务时,都要将网络回落到2G网络上进行语音通信,待通话完成后,再返回4G网络。这是对CSFB机制一个最简单的描述。
其实每个手机都存在一个CSFB,或者返回时的延时问题、返回驻留4G网是否成功的问题。如果一个手机正在使用某App时,而另一个手机拨电话进来,这时候4G网络就会回落到2G网络,4G网络中断;当重回4G网络后,App的唤醒表现等,都是需要特别注意的情况。
1.4 智能终端中的App测试
智能终端的外延很广,手机、PAD是常见的智能化终端产品。其实智能可穿戴设备(比如手环、手表)也是智能终端。家里的智能路由器,甚至一些机顶盒在广义上都可以纳入智能终端行列。
国内的手机品牌很多,经历了功能机、智能机这样一个发展历程。近几年功能机逐渐退出历史舞台,智能机占有了绝对的优势,并且智能机已经不仅是一个通信工具,还成为人们生活的中心支撑点。手机的互联互通领域越来越大,人们的生活和工作对手机的依赖程度也越来越大。与其说是对手机的依赖,不如说是对手机上服务的依赖,即对数量庞大、涵盖领域广泛的App的依赖。App的蓬勃发展依赖于手机这个载体在硬件配置上的提升,手机深度嵌入人们的生活和工作,且需要靠App提供良好的内容和服务。两者相辅相成,缺一不可。
传统的国产品牌中华酷联,在进入2017年时就已经发生了很大的变化。智能手机行业的发展也是日新月异,不断地涌现出新的品牌和具备新功能的智能手机。每一次智能手机功能的提升,都会给App测试带来机遇和挑战。
对于在手机终端上做App测试来讲,常见的关注点有以下几个方面。
1.移动终端品牌
在国内不仅要注意众多的手机品牌,测试时要考虑尽可能多地覆盖比较流行的品牌,同时还要考虑运营商这个维度,即终端还可以按照运营商的定制与否划分为通用版机、移动定制机、联通定制机、电信定制机。
当然,随着4G、未来5G技术的普及和国家要求的全频段支持,运营商定制机的特殊化越来越淡了。各厂商生产的手机都将以通用性版本为主。
2.手机的解决方案提供商
目前的厂商主要有高通、华为海思、MTK、大唐联芯、马维尔、展讯科技等。
3.Android的开源特性导致的定制系统差异化
操作系统繁杂,在智能手机兴起的时候,苹果的iOS、谷歌的Android、诺基亚的塞班、微软的Windows Mobile和黑莓的黑莓系统并存。
经过一段时间的洗礼,现在的智能手机系统主要还剩3家-iOS、Android和Windows Mobile。
iOS和Windows Mobile厂商比较单一,尤其是iOS厂商,只有苹果公司一家。而Android系统的手机遍地开花,但仅Android系统就给App测试带来了很大的挑战,同一版本的Android系统在各个手机品牌厂商的定制化中皆有不同。另外,设备品牌纷杂,而且市场混乱,Android手机不仅有正规品牌厂商提供不同版本的大量手机,还有少量的山寨机。
星云测试
http://www.teststars.cc
奇林软件
http://www.kylinpet.com
联合通测
http://www.quicktesting.net