一、用户为什么会卸载APP
《增长黑客》中提出一个公式:_“转化 = 欲望 - 摩擦”,_所有让用户感觉不舒服的地方,都会带来一定的“摩擦”,如果摩擦大于用户的使用欲望,用户就会离开。根据各大应用商店的研究表明,安装应用后的30天内,大部分用户会卸载APP,平均只有不到30%的用户留存下来,导致用户离开的top10原因为:
•APP功能对自己没用,不能满足期望•太多的烦人推送 & 侵入式广告•经常Crash、卡顿或卡死•包体积太大•申请太多的授权•耗流量、耗电、耗内存•加载时间太长,对网速过度依赖•有更好用的竞对APP•隐私问题•易上瘾、套路多
以上可归纳出,“隐私安全”、“实用性”、“性能”、“体验”是用户遇到的四个主要摩擦,因此测试团队要做的事情就是:如何从质量的视角来降低这四个方面的摩擦。
二、建立改善模型
要消除摩擦,首先需要建立一个可以指导我们改进的模型,APP在用户手机中能否存活,取决用户主观感受,也就是我们常说的“用户体验”,下图借鉴了马斯洛人类需求层次结构,抽象出来APP的体验层次金字塔模型:
从图中可以看出,从塔底到塔顶,分为五个层次:安全性、功能性、稳定性、易用性、愉悦性,每个层次都在前面的基础之上提出了更高的期待,随着层次的升高,APP的用户粘性逐步增强,就像人类的生存条件一样,APP能否在用户的手机上存活,取决于满足了低层次功能需求之上高层次精神需求,下图模拟了用户内心的OS:
测试人员可以依据这个模型,来做质量上的改进,下面介绍下闲鱼的一些实践:
三、具体改善措施
3.1 隐私安全是底座
不安全的APP很容易被用户卸载,原因是:会让人产生焦虑感甚至恐慌,尤其是涉及个人隐私方面的。举个实际案例,为了抗击疫情,英国推出了“新冠追踪APP”,下载量超过2600万次,但是已经超过30%的民众卸载了该APP,另外还有30%的用户打算在未来一周内卸载它,原因是这款APP的侵犯了个人的隐私安全。 规避安全问题其实非常简单,但是很多APP却做不到,原因是需要关注的点实在太多,在发版频次比较高的情况下,经常会疏忽隐私安全问题。最好的方式是由测试团队发起,在整个产研过程中推行“清单革命”,根据工信部颁布的《APP隐私政策》和各大《应用商店安全规定》,整理一系列“核查清单”,在研发的各个阶段对照清单进行核查,这样就会将安全风险控制在可控范围内。
3.2 跳出功能测试“陷阱”
随着产研团队规模的不断壮大,自然就形成了“筒仓效应”,每个产品模块从“产品-研发-测试-运营”都是固定的一个小分队,大家都只关注局部模块优化迭代,进行功能验证时,也以某个局部功能可不可用作为质量标准,忽略了用户真实使用场景,常常听到用户反馈:
- 为什么打开APP后有这么多弹框?•这个优惠券领完后怎么用?•我的订单在哪里可以看到?
造成这种状况的原因是:产品模块之间的衔接不流畅,不是每个用户都像测试一样熟悉APP功能,所以在做功能测试时,要小心“用户已经足够了解我们”的陷阱,应该把用户想象成初次使用APP,可以引入“探索性测试”、“新用户视角测试”、“Bug Bash”来作为功能测试补充。
1.探索性测试
和传统的测试不同,探索性测试方法相对非结构化,给了测试人员很多的自由,无需编写测试用例,无需限定测试范围,测试人员可以自由地以他们认为合适的方式和时间进行测试。
1.新用户视角测试
每个版本会有数十项优化和更新,老用户很容易接受这些优化,却忽略了对新用户是否友好,新用户的容忍度低于老用户,如果我们让新用户使用这些新功能时“困难重重”,被卸载可能性会很大,一个用户一旦离开,再拉回来的可能性就非常低了。闲鱼在每次发版之前,都会以新用户视角去体验一下新功能。
1.Bug Bash
Bug Bash是短时间内发现质量问题最有效的手段之一,组织团队的产品、开发、测试、UED、运营,甚至是客服、市场人员,放下他们手中的日常工作,一起来用他们能够想到的各种方式“训练”APP。Bug Bash的频次可以自由控制,闲鱼每个月都会组织一次“全民体验官”的活动。
3.3 重视全链路性能
APP是承载我们服务的载体,随着越来越多的功能被塞进APP ,性能也会随之劣化,导致APP性能变差主要有三方面的因素:
- 设备性能
- 网络性能
- 服务端接口性能
APP性能差,用户最直观的感受就是“慢”,每当遇到页面加载缓慢时都会异常烦躁,要解决这个问题,测试可以制定影响性能的指标,针对每项指标定一个基线值,然后推动研发去优化,常见的指标如下表所示:
我们相信,经过一段时间的专项治理,性能肯定能够回到理想水位,但是如何守住已有成果,比较好的方法是:版本间做数据比对,当有劣化趋势时,及时推动研发排查优化。闲鱼APP在每个版本都会做一轮全面的性能测试,测试报告会列出最近五个版本的性能数据对比,下图是低端机上的一些性能数据:
影响性能的原因是多方面的,每次的结果会有一些波动,除了版本间比对外,还需要设置合理波动范围,用来减少不必要的排查成本,下面的例子是闲鱼制定的部分波动指标:
- Android
冷启动时长 恶化 <= 300ms 搜索加载时长 恶化 <= 200ms 相册加载时长 恶化<=200ms 详情页加载时长 恶化<=100ms
- iOS
冷启动时长 恶化 <= 300ms 搜索加载时长 恶化 <= 150ms 相册加载时长 恶化<=100ms 详情页加载时长 恶化<=100ms
3.4 引入可用性测试
通常情况下,产品经理和UED会在APP交付前,做一次还原度验收来保障产品的体验,不过项目实际运转过程中,效果并不理想。因此可以通过可用性测试,作为这一环的补充。可用性测试没有固定的用例,主要是从普通用户视角去体验APP,测试过程中把自己觉得有“摩擦”的点抛出来,比如:
- 为什么这个入口如此隐蔽?•为什么不能左滑回到原来的界面?•为什么点开页面直接播放声音?
衡量可用性可以从下图展示的四个方面入手,每个功能都套一下这个句式:某某功能是${xxx}的吗?相信很快就能找到让人不满意的地方。可用性测试可以让我们更有用户同理心,回到最
四、总结与展望
过去一年,闲鱼在APP体验方面投入了大量的精力,在用户留存方面取得了一些短期成绩,留存趋势如下图所示:
让用户感受到产品的诚意,是质量团队的第一目标,测试作为整个研发环节的最后交棒人,需要在每个细节上下功夫。未来闲鱼测试团队会继续基于APP体验模型,持续投入APP体验方面的测试,同时在智能化适配、精准测试等方面做一些突破,期望为用户留存做更多的贡献。
以上笔者的经历更像一张横向的知识网,创建了一个交流平台 914172719 ,群内有各种技术同行交流、学习资料、面试经验等。其中用到jenkins、docker、moutebank、python编程等,还需要花更多的精力去深入学习,当每项技能都能掌握到一定深度,才能称为一个完整的知识体系。
最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!