4月份进入了一家教育APP的公司,该公司全部精力都投放在移动端。对于我而言是个不小的挑战,之前虽然也有移动端的测试经验,但是对于全部是移动端的项目还是捉襟见肘的。现在用这篇长文记录我在移动端的工作心得。
移动端和Web端从本质上来说,测试理论,测试方法是大致一样的。因为它们调用的都是同样的后台,同样的API,所以都离不开测试的基础知识。但是移动端(手机和平板电脑)也需要一些特殊的测试方法,而且相对而言,移动APP的测试更为复杂。这里我以目前公司的流程作为概述:
1 需求评审
移动APP都是面向普通用户的,所以要让自己站在用户的角度分析需求,彻底的了解业务逻辑,所有功能的出入口是否清晰流畅。特别要关注用户体验,用户大部分的操作都是小小的屏幕上完成的。比如一个删除操作,尽量在三步之内完成删除。需求评审往往由产品经理发起,项目组的成员全部参加。前期主要针对需求的不清晰处进行讨论确认,会后由开发和测试给出工作周期,产品给出最后的定稿需求。(这里有的公司会要求写测试策略或测试方案)
2 测试用例
移动互联网的开发节奏很快,而且版本快速迭代,一般都是一个星期一个版本。建议是完全摒弃传统的测试用例设计,而采用思维导图工具+功能点的方法。这样能节省大量的时间,而且思维导图也比较直观,不容易漏掉功能。示例如下:直播分享需求
移动端学习笔记(小强测试品牌学员作品)
小强点评:对于熟悉且变化快的产品用思维导图形式体现测试点是最常用的方法
3 测试的执行
测试工作采用的是测试左移的思想,在开发的接口文档出来后。就开始做后台接口的自动化测试,省时省力省心。采用的是python的接口自动化测试框架,从接口分析→测试用例→融入框架→jenkins集成→测试报告一气呵成。
小强点评:很好的运用了课程中的自动化框架代码并进行了优化改造应用于实际中。很多时候大家总担心学的无法应用,其实是你自己根本不知道咋用,凡事学的知识都可以应用起来关键是看你知不知道怎么用了。
一般开发有提测包过来,首先看下主要场景的流程是否是通的,主流程不通建议快速打回开发修复。UI设计图的比对可以用电脑控制手机的软件进行,如TC、小罗贝等。可以快速过安卓和苹果的UI图在电脑上同步对比UI图,而且支持无线连接。后面就是测试用例的执行和Bug提交和复测。
这里强调下移动端测试需要注意点:
用户体验,这里就不赘述了,因为真的很重要!!!
注意手势,用户喜欢通过手势进行操作,比如右划、下拉,放大等。这里针对重要场景一定要注意手势,因为开发不做适配或处理的话,很容易就崩溃闪退了。
中断测试,很多情况电话、短信、抽拔USB等特殊情况,在充值、提现这些关乎用户钱财的操作场景一定要注意这些特殊情况。重要场景的话也要关注用户在操作过程过程中把应用切换后台,再进入操作时能否正常处理。
弱网测试,模拟APP在网速差的环境下的处理。(Fiddler可实现,可参考小强老师的fiddler视频)
Web端和移动端的同步,用户在web端操作后,在移动端可以正常的同步,反之亦然。(数据同步的重要性)
如果还有时间的话,建议做兼容性测试,针对市场上的热门机型进行测试。同样推荐TotalControl软件,它支持群控手机,可Wify连接还支持简单的自动化很是方便。当然若你跟我一样是在小公司,测试周期只有2到3天可以酌情考虑方案。
4 上线测试
测试工作完成了,并不代表工作结束,因为你测试的只是APP的开发和Debug版本,而不是最终的Release版本。因为很多情况下,在Debug版本是完全工作正常,但上线后是立马崩溃。一般都是在晚上进行上线,上线后需要立马对终于的功能场景进行冒烟,并且要做下列的“安装卸载测试”“升级测试”。
安装卸载测试:
应用市场安装
官网安装
Apk文件安装
卸载安装
升级测试
从上一个版本/上两个版本直接升级到最新版。
全新安装最新版
卸载旧版本, 安装新版本
卸载新版本, 安装新版本
提示更新和强制更新
项目上线后,会有一两天的观察期。这个时间首先是动员全公司进行产品内测,更大程度覆盖整个APP的正常运转和测试力度。一般是先由我测试这边给出这个版本的主要功能图,和测试账号,如下图
另外强调一点,一旦上线后APP出现严重错误,你修复版本不可能在很短时间内在App Store上架。所以光对这个项目进行测试是远远不够的,还要对APP的常用功能进行冒烟。需要常备一份APP线上常用功能的测试用例,我这里还做了一个线上监控系统,监控APP内常用功能接口的运转情况和处理逻辑。一有问题提前发送邮件给项目负责人,避免把问题暴露给用户造成用户流失。
5 项目总结
项目做完后,由项目经理发起项目总结会。开始由测试提供项目操作演示视频,用TC和屏幕录制专家完成。然后会上开发给出开发过程中的问题和经验总结,测试给出Bug分析和测试总结,最后由项目经理给出整个项目进度和完成情况的总结。
以上就是根据目前所在公司的上线流程总结归纳的APP测试经验,当然对于大公司而言,还有用例评审、产品验收、灰度发布等流程。APP的测试过程中也有可能会涉及到APP专项测试、性能测试等测试技术,但每一项技术都不是一篇长文能简述清楚的,最好是有系统的学习和实践。学习的长路永不停止,加薪之路才会越走越宽啊!