我注意到一个现象,测试同学第一次接手 iOS 项目,问得最多的是同一个问题:iOS 测试到底要测什么、从哪下手?这个问题看着大,拆开其实就五类——功能、性能、兼容、稳定、安全,每类测的东西不一样,用的工具也不一样。这篇按类型把 iOS 测试的要点过一遍,给新手一个完整的下手顺序。
功能测试
功能测试是第一类,测的是"功能对不对"。用例设计上,除了正常流程,边界值和异常输入要专门补:输入框超长文本、空值、快速连点、弱网下的提交。中断场景是移动端特有的:操作一半来电话、切后台再回来、低电量弹窗,状态有没有保持。自动化用 XCTest 写单元和 UI 用例,冒烟用例单独建 target,改完代码先跑冒烟再跑全量。
性能测试
性能测试测的是"快不快、顺不顺"。重点指标:CPU 占用、内存水位、GPU 负载、帧率 FPS、卡顿次数、启动耗时、耗电。Instruments 做深度定位能精确到函数,但依赖调试连接;日常真机验证用 KeyMob 更方便:USB 或 Wi-Fi 连上设备,性能图表勾选 CPU、内存、GPU、FPS,多 App 同屏对比,改完代码跑一遍核心路径看曲线,发版前把数据保存下来和上个版本对比,性能退化提前发现。
兼容性测试
兼容性测试测的是"换环境还能不能用"。两个维度:系统版本——旧版本 iOS 的 API 行为差异、新版本的特性适配,重点测最低支持版本;机型屏幕——刘海屏、灵动岛、不同分辨率下的布局适配,横竖屏切换。资源不够全机型覆盖时,按用户占比排优先级,头部机型先测。
稳定性测试
稳定性测试测的是"长时间跑不崩"。做法是长时间运行压场景:持续操作、反复进出页面、后台驻留,看内存有没有缓慢上涨(泄漏特征)、会不会越来越卡。崩溃监控这块,线上用 Crashlytics 聚合崩溃,本地真机用 KeyMob 看设备日志和崩溃报告——按进程和关键字过滤日志,崩溃日志符号化后定位崩溃行。
安全测试
安全测试测的是"数据守不守得住"。检查点:权限申请是否合理(不给权限能不能正常降级使用)、敏感数据存储(用户凭证走 Keychain、不落明文到沙盒)、网络传输(HTTPS 是否强制、证书校验是否完整)、日志有没有打印敏感信息。
流程怎么串
流程上串起来:开发期跑单元测试和冒烟,提测前过一遍功能用例,真机性能用 KeyMob 过一遍曲线,发版前回归兼容和稳定,安全在提测阶段过一轮。五类测试各有工具,组合成一整条链路,比临到发版才补测省心得多。
iOS 测试的入口就是这五类,每类先定指标再选工具。新手按这个顺序过一遍,第一轮测试基本不会漏方向。