web测试和app测试,测测试表面看都是测测试点点点,实际干起来,测测试差别大到像两个工种。测测试
去年我帮一个团队做电商项目,测测试同一套购物车逻辑,测测试web端测完一遍,测测试移到app端又冒出一堆bug。测测试开发挠头说代码一样的测测试啊。代码一样,测测试但运行环境、测测试交互方式、测测试用户预期全不一样。测测试这就是测测试问题的根子。
环境这关,测测试app比web麻烦十倍
web测试你打开Chrome,切到F12,模拟个手机尺寸就算移动端了。app不行。iOS和Android两套系统,Android下面还有华为、小米、OPPO各自改过的ROM。一台华为Mate 60上正常的弹窗,到红米Note上可能被系统拦截。我遇到过最离谱的:某品牌手机省电模式会自动杀掉后台网络请求,导致支付回调永远收不到。web端根本不存在这种问题。
还有网络。web测试切个3G慢速就差不多了。app你得测弱网、断网、网络切换。地铁里刷着刷着进隧道,4G变2G,再出来变5G,app能不能扛住?我见过一个新闻类app,断网重连后直接白屏,用户只能杀掉进程重开。web端刷新一下页面就恢复的事,app得写专门的断线重连逻辑。
安装、卸载、升级,web没这些破事
web测试不用管用户怎么打开你的页面。app测试得覆盖:首次安装、覆盖安装、卸载重装、跨版本升级。尤其是升级,数据库迁移写错了,用户一更新就闪退。我印象很深,某工具类app从2.3升到3.0,老用户升级后本地缓存格式不兼容,直接崩溃。新装用户没事。这种bugweb测试永远碰不到。
交互逻辑的差异,比想象中更影响测试用例
web端鼠标悬停、右键菜单、键盘快捷键,这些在app上全没有。反过来,app有手势:滑动返回、长按拖拽、双指缩放、摇一摇。测试用例得重写。比如列表删除,web是点删除按钮弹确认框,app可能是左滑出现删除按钮,再点一下才删。你按web的思路测app,漏测是必然的。
还有权限。app要相机、定位、通讯录、通知权限。用户拒绝授权后,app降级怎么处理?web端浏览器弹个通知请求,用户点拒绝就完了,功能基本不受影响。app不行,拒绝定位,附近商家列表就空了,你得测空状态、引导文案、跳转设置页的路径。
性能测试的关注点也分叉
web看首屏加载、FCP、LCP。app看启动时间、内存占用、CPU、耗电、流量。我测过一个视频app,播放十分钟后手机烫得能煎蛋。web端顶多风扇转快点。app性能测试得用Perfdog、GT这类工具,抓帧率、抓内存泄漏。web用Lighthouse跑个分就差不多了。
兼容性,app是碎片化的地狱
web兼容性主要看浏览器:Chrome、Safari、Firefox、Edge。app要看系统版本、屏幕分辨率、厂商定制、芯片架构。Android 14和Android 10的行为差异可能比Chrome和Safari还大。我见过一个圆角裁剪在骁龙8 Gen 2上正常,到天玑9200上就变成直角。这种问题你只能真机测,模拟器测不出来。
说回开头那个电商项目。后来我们调整了策略:web端重点测业务逻辑和浏览器兼容,app端重点测手势交互、权限降级、弱网和真机兼容。测试用例复用率不到四成。剩下的六成,全是环境差异带来的额外工作。
所以别想着写一套用例两端跑。web测试像在标准泳池游泳,app测试像在野外河流里游。水都是水,但底下有石头、有水草、有暗流。你得换种游法。