编程

移动端测试

试用

当需要测试 iOS/Android 原生 App、H5 页面或小程序的移动端专项场景时使用此技能。移动端的坑主要不在功能逻辑上——中断(电话/通知/低电量)、弱网/断网/网络切换、前后台切换、系统权限管理、多机型适配和各种系统版本兼容才是重灾区。不要只测功能流程,移动端的 Bug 有一半以上是中断和兼容性相关的。输出按中断/网络/权限/兼容/性能分类的测试要点清单。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

它能做什么

当需要测试 iOS/Android 原生 App、H5 页面或小程序的移动端专项场景时使用此技能。移动端的坑主要不在功能逻辑上——中断(电话/通知/低电量)、弱网/断网/网络切换、前后台切换、系统权限管理、多机型适配和各种系统版本兼容才是重灾区。不要只测功能流程,移动端的 Bug 有一半以上是中断和兼容性相关的。输出按中断/网络/权限/兼容/性能分类的测试要点清单。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

技能文档

移动端测试专项

核心原则

移动测试的核心挑战——设备碎片化、网络不稳定性、用户场景多样性。

移动端测试深度要求(参考值)

复杂度用例数要求设备覆盖
简单App30条2-3台主流设备
中等App50条5-8台设备
复杂App80条10+台设备+多系统版本

必须覆盖的6个维度

维度占比说明
功能测试35%核心功能、业务流程
兼容性测试25%设备/系统/屏幕
中断测试15%来电/短信/通知/切换
性能测试10%启动/内存/电量/流量
弱网测试10%网络切换/弱网/离线
安全测试5%权限/数据保护

平台专项参考:不同平台有各自的高风险场景,加载对应参考文件可获取专项测试要点:

  • references/platform-mobile-app.md — iOS/Android 原生 App 专项
  • references/platform-mobile-web.md — H5/移动 Web 专项
  • references/platform-mini-program.md — 小程序专项

桌面端 / PC Web 专项不属于本技能范围,如需测试桌面端或 PC Web 请使用通用测试策略技能。

移动端测试检查清单

功能测试检查

  • 安装/卸载/升级正常
  • 核心功能完整
  • 中断测试通过
  • 离线功能可用

兼容性测试检查

  • 主流设备覆盖
  • 系统版本覆盖
  • 屏幕尺寸适配
  • 横竖屏切换

中断测试检查

  • 来电/短信中断
  • 通知中断
  • 低电量处理
  • 网络切换
  • 后台/前台切换

性能测试检查

  • 启动时间达标
  • 内存占用正常
  • 帧率流畅
  • 电量消耗合理

弱网测试检查

  • WiFi/4G切换
  • 弱网环境表现
  • 离线状态处理
  • 网络恢复后同步

功能测试

测试范围:
├─ 安装/卸载/升级
│   ├─ 全新安装
│   ├─ 覆盖安装
│   ├─ 升级安装
│   ├─ 卸载重装
│   └─ 跨版本升级
│
├─ 核心功能
│   ├─ 业务流程测试
│   ├─ 功能交互测试
│   ├─ 数据持久化测试
│   └─ 离线功能测试
│
└─ 中断测试
    ├─ 来电/短信中断
    ├─ 通知中断
    ├─ 低电量中断
    ├─ 网络切换中断
    └─ 后台/前台切换

兼容性测试

设备维度:
├─ 屏幕尺寸:小屏/标准/大屏/折叠屏
├─ 分辨率:720p/1080p/2K/4K
├─ 系统版本:iOS 14+/Android 8+
├─ 设备类型:手机/平板/折叠屏
└─ 品牌厂商:三星/华为/小米/OPPO

系统特性:
├─ 权限管理:不同权限策略
├─ 通知管理:不同通知行为
├─ 后台策略:不同后台限制
└─ 存储策略:不同存储权限

性能测试

性能指标:
├─ 启动时间
│   ├─ 冷启动:<2秒
│   ├─ 热启动:<1秒
│   └─ 温启动:<1.5秒
│
├─ 内存使用
│   ├─ 内存占用:<200MB
│   ├─ 内存泄漏:无持续增长
│   └─ 内存峰值:<300MB
│
├─ 电量消耗
│   ├─ 待机耗电:<5%/天
│   ├─ 使用耗电:<15%/小时
│   └─ 后台耗电:<3%/小时
│
├─ 流量消耗
│   ├─ 首次加载:<5MB
│   ├─ 每次操作:<1MB
│   └─ 后台同步:<10MB/天
│
└─ 帧率
    ├─ 滑动帧率:>55fps
    ├─ 动画帧率:>55fps
    └─ 页面切换:>50fps

网络测试

网络场景:
├─ 网络类型
│   ├─ WiFi
│   ├─ 4G/5G
│   ├─ 弱网(高延迟、低带宽)
│   └─ 断网
│
├─ 网络切换
│   ├─ WiFi → 4G
│   ├─ 4G → WiFi
│   ├─ 有网 → 断网
│   └─ 断网 → 有网
│
└─ 弱网模拟
    ├─ 高延迟:>500ms
    ├─ 低带宽:<100kbps
    ├─ 高丢包:>10%
    └─ 网络抖动:延迟不稳定

自动化测试

工具选型

├─ Appium
│   ├─ 优点:跨平台、语言无关
│   ├─ 缺点:速度较慢、稳定性一般
│   └─ 适用:跨平台项目
│
├─ XCTest(iOS)
│   ├─ 优点:官方支持、性能好
│   ├─ 缺点:仅iOS
│   └─ 适用:iOS原生应用
│
├─ Espresso(Android)
│   ├─ 优点:官方支持、速度快
│   ├─ 缺点:仅Android
│   └─ 适用:Android原生应用
│
└─ Airtest
    ├─ 优点:图像识别、游戏测试
    ├─ 缺点:维护成本高
    └─ 适用:游戏、H5混合应用

Page Object模式

# 示例:Android Page Object
class LoginPage:
    def __init__(self, driver):
        self.driver = driver
    
    username_field = ResourceId("com.example:id/username")
    password_field = ResourceId("com.example:id/password")
    login_button = ResourceId("com.example:id/login")
    
    def login(self, username, password):
        self.driver.find_element(*self.username_field).send_keys(username)
        self.driver.find_element(*self.password_field).send_keys(password)
        self.driver.find_element(*self.login_button).click()

兼容性测试矩阵

| 设备 | 系统版本 | 屏幕尺寸 | 测试状态 |
|------|---------|---------|---------|
| iPhone 14 | iOS 16 | 6.1寸 | ✅ 通过 |
| iPhone 12 | iOS 15 | 6.1寸 | ✅ 通过 |
| Samsung S23 | Android 13 | 6.1寸 | ✅ 通过 |
| Huawei Mate 50 | HarmonyOS 3 | 6.7寸 | ⚠️ 待测 |
| Xiaomi 13 | Android 13 | 6.36寸 | ✅ 通过 |

输出示例

测试移动端登录功能 → 五维覆盖:

  • 功能:登录/登出/自动登录/多设备登录
  • 兼容性:iOS15/16/17 + Android 12/13/14 + 主流机型
  • 中断:来电/短信/通知/低电量/闹钟弹出
  • 性能:启动时间/页面加载/内存占用
  • 弱网:3G/弱WiFi/飞行模式/网络切换

App首页加载慢(iOS 3秒,Android 5秒) → 触发性能测试清单,检查首页接口、图片加载、缓存策略

检查清单

移动端测试完成后检查:

  • 安装/卸载/升级是否测试?
  • 核心功能是否覆盖?
  • 中断场景是否测试?
  • 兼容性矩阵是否覆盖?
  • 性能指标是否达标?
  • 网络场景是否测试?
  • 自动化脚本是否可维护?

相关技能

当功能测试做完之后需要做进一步的质量验证时使用此技能。覆盖性能测试(负载/压力/稳定性)、安全测试(OWASP Top 10 TOP 漏洞)、兼容性测试(多浏览器/多设备)的测试方法。不要在功能测试还没做完时就做专项——先保证功能正确,再评估性能和安全。专项测试的产出是一组可复用的测试方案(性能指标基线、安全渗透用例、兼容性矩阵)。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

1 次安装

当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 次安装

当开发提了 PR、代码变更需要确定测试范围、或者想通过分析代码来预测可能出 Bug 的区域时使用此技能。从测试视角分析代码变更的影响范围、识别高危模式和典型风险区域。不要看完整代码逻辑——你只需要关注变更类型(新增/修改/删除/重构)、影响范围(接口定义/数据库字段/业务逻辑)和相关依赖,据此确定最小回归测试范围。输出代码变更影响分析报告。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 次安装

当功能已经上线了但还担心线上质量、或者需要设计灰度发布后的验证方案时使用此技能。通过生产监控(APM/日志/用户反馈)、线上巡检拨测、A/B 验证和混沌工程将测试延伸到生产环境。不要把上线当成终点——用户在生产环境的使用方式是永远测不全的。输出右移验证方案(灰度监控指标 + 拨测用例 + 告警阈值 + 回滚触发条件)。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

1 次安装

当测试发现"这个功能测不了"、"加个日志就能定位"、"这个模块没法 Mock"时使用此技能。从可控性(能否控制测试条件)、可观察性(能否看到内部状态)、可隔离性(能否独立测试)、自动化性和可诊断性五个维度评估系统的可测试性水平,给出具体的系统改进建议和推动策略。可测试性差的系统一定质量差——不是因为系统本身不好,是因为你根本测不透它。输出可测试性评估报告和各维度的改造建议。 ⚠️ 本技能含废弃测试清理建议,执行前请确认非关键数据。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

3 次安装

提供登录、支付、搜索、购物车、导入导出、审批、消息通知、权限管理等不同类型功能的测试要点模板。当面对一个新功能类型不知道从哪里开始测试、或者担心遗漏了某个功能类型的特有测试点时,应当使用此技能。特别适合测试新人——照着清单逐项检查就不会漏掉该功能类型的典型问题。例如支付类要测金额精度和幂等性,导入导出类要测格式兼容和性能,每个功能类型都有其特有的高风险区域。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 次安装