兼容性测试的误区是设备越多越好。预算有限时,用 6 到 10 台覆盖关键维度,比 30 台同质设备更有价值。
四个覆盖维度
- 系统版本:Android 8、10、12、14、15,至少覆盖 minSdk、主流版本、最新版本;
- 分辨率与 DPI:1080p、2K、折叠屏、平板;
- 厂商 ROM:原生、小米、华为、OPPO 或 vivo、三星;
- 芯片:高通、联发科、麒麟、Exynos。
再加一个维度:屏幕形态,例如刘海、挖孔、折叠。
最小矩阵怎么搭
- 主力机 2 台:覆盖当前主流系统与分辨率;
- 边界机 2 台:minSdk 附近的老系统、最新系统;
- 厂商机 3 台:不同 ROM 的权限与后台策略;
- 特殊形态 1 到 2 台:折叠屏或平板;
- 云手机补充:临时覆盖更多机型,不必全买。

群控在测试中的角色
- 批量安装被测包与测试工具;
- 同步执行固定回归步骤;
- 批量截图、拉日志;
- 统一清数据、恢复环境;
- 多设备并行,缩短回归时间。
注意:位置录制不适合做复杂断言,结果校验仍要靠日志、截图和人工确认。
测试流程
- 冒烟:1 台主力机跑通核心路径;
- 全量:矩阵内所有设备安装;
- 回归:按版本或模块分组执行;
- 兼容性专项:权限、后台、推送、深色模式、字体放大;
- 记录:设备信息、系统版本、结果、截图。
版本与签名
- 测试包与正式包签名不同,覆盖安装会失败;
- 固定包名,避免与正式版冲突;
- 记录 commit 或版本号,别只写最新版;
- 安装失败先看INSTALL_FAILED 错误码。
数据怎么留
- 设备清单表:型号、系统、分辨率、DPI、芯片;
- 每次测试记录:版本、设备、结果、日志;
- 崩溃按 AndroidRuntime 过滤;
- 截图按设备和时间归档。
采集方法见截图与 logcat。
成本控制
- 二手主力机加云手机补边界;
- 不必追新,覆盖 minSdk 与主流版本即可;
- 同型号只留 1 到 2 台;
- 用分组复用测试流程;
- 把环境恢复做成脚本,减少人工。
什么时候需要真机
模拟器适合早期功能验证,但以下场景必须真机:
- 厂商权限与后台限制;
- 推送、指纹、人脸、NFC;
- 摄像头、传感器;
- 性能与发热;
- 真实网络切换。
矩阵也要维护
- 每季度核对系统版本与机型覆盖;
- 淘汰无法开机、接口损坏的设备;
- 新系统发布后补 1 台边界机;
- 记录每台设备的测试历史与故障率;
- 云手机额度按需开停,避免闲置。
先定目标再买设备
先列出要覆盖的版本、机型、功能,再反推设备清单。不要先买一堆手机,再想测什么。
常见问题
兼容性测试至少需要几台设备?
6 到 10 台可以覆盖主要系统版本、分辨率、厂商和芯片,关键是覆盖面而不是数量。
云手机能替代真机测试吗?
能补机型覆盖,但厂商权限、传感器、性能发热等场景仍需真机。
测试包和正式包能共存吗?
包名相同会冲突,签名不同也无法覆盖安装,需要区分包名或先卸载正式版。