第一帖,😄 ~~
随着 ReactNative, Weex 等框架的引入,移动 app 开发及测试都悄悄的发生着革命。
去年完成了一个 RN 的 app,通过对开发及测试过程的整理总结,这里主要分享下相关经验。
首先简单介绍下 ReactNative 和 Weex。 从本质上讲 RN 就是 React-Native, Weex 为 Vue-Native。 框架本质都为 JS-Native, 通过 JS-Bridge 与 OC-Bridge 之间的转化来生成想要的效果。
新的框架带来新的优势,其中一个很大的优势在于 OTA 升级或者伪 OTA 升级,更便利的即时修复 bug。
(在实际使用中 React-Native-Android 由于国内 rom 的定制化及低版本 rom 的存在还是存在不少 bug。也需要谨慎使用)
这样线上修复 bug 的成本降低了,那么移动测试更应该关注哪方面呢?前端?后端?还是其他?
个人的看法是 移动测试将会渐渐向 控制层覆盖测试及线上监控为主,体验测试为辅的测试阶段。
那么如何来做好 控制层覆盖测试 及 线上监控 呢?
1. 控制层覆盖测试
(1) 需要比较完整的区分 MVC 或者 MVVM。 比较好的区分 View 及 Controller 层。
(2) 通过 Enzyme + Mocha + Sinon + React Test Utils 来针对 View 及 Controller 做覆盖性测试。
2. 线上监控
(1) 监控关注点
Crash Rate: 只做归类但不去重的 crash rate 可以知道当前的版本的稳定性。
服务端 Error: Error 根据触发事件,版本分类,可回溯。
3. 体验测试
(1) 流畅性及使用简便性
(2) 高频使用 app 的耗电量, 低频使用 app 的首次打开速度等关键指标
那么 UI 自动化测试怎么办?
个人觉得在之后的测试时间中,由于 UI 可变成本的降低,UI 自动化的回归测试的维护成本降越来越高,所以其重要性也会降低。因此测试前置到控制层并提高覆盖率就显得极为重要了。但是 big company 仍然会关注 UI 自动化,这也和其组织结构有关,但是测试更加开发化的趋势已经不可逆转。