第1章 了解App测试
1.1 App测试与普通软件测试的差异
1.软件载体的不同
传统软件都部署和安装在计算机(台式机和笔记本电脑)上,而App的载体是手机等智能移动终端,因此我们可以将手机这个概念扩充为"智能移动终端"或者"智能终端"。
2.软件规模的不同
传统软件的规模动辄几千万行代码,研发周期长达一两年,甚至数年之久。
App软件很少有这么大的代码量,并且其研发周期也都是采用快速迭代、小步快跑的形式。其研发流程的快速迭代化、需求变更的速度,都是传统软件研发没有过的情形。
这给从传统测试转向App或手机测试的广大同仁带来了不小的挑战,其实也在挑战着传统的研发管理模式。
3.测试场景的不同
对于传统的PC端测试场景,读者都很熟悉,通过测试工具,并能够借用鼠标、键盘等外设进行操作,PC的大屏幕实时显示各种测试数据,加之PC的性能也比较高,通过PC计算可以非常直观地产生各种测试图表,还能找到一点"测试的感觉"。转移到手机端测试后,很多人拿着手机,坐在一个角落里,面对一个操作有限、带有子屏幕的设备,感觉无从下手,甚至测试手机的过程貌似就是在"玩手机"。
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测试,这个测试要严重依赖自动化测试手段。功耗测试更是必须借助自动化测试手段来完成,为了使结果更为客观有效,甚至要用到机械臂这种"硬"的自动化工具,不仅仅是传统的"软"自动化测试方案了。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。