4. 正向权限授予用例:首次启动应用、正常弹出权限对话框、用户点击允许、验证CameraX初始化成功

适用场景

当用户首次安装并启动集成了 CameraX 的 Android 应用时,系统会触发运行时权限请求。本用例覆盖用户主动授予相机权限且应用成功初始化 CameraX 的完整正向链路。适用于以下条件:

  • 目标设备运行 Android 6.0(API 23)及以上版本。
  • 应用未保存任何权限状态(首次安装或清除数据后启动)。
  • 设备的相机硬件正常工作且未被其他进程独占。

前置条件

  • 测试设备已恢复出厂设置或应用数据已清除,确保无已保存的权限记录。
  • 待测应用版本为最新构建包,且已在测试机正常安装。
  • 测试环境网络连通(用于 CameraX 初始化时可能触发云端配置拉取,非强制)。
  • 测试人员准备录屏工具或屏幕截图工具,用于记录材料。

操作步骤

按下表顺序执行操作,每一步完成后须记录截图或日志时间戳:

步骤编号 操作内容 预期中间结果
1 在测试机上点击应用图标,启动应用。 应用主界面正常显示,无闪退或黑屏。
2 进入需要相机权限的功能页面(如扫码、拍照、视频录制等)。 系统弹出标准权限请求对话框,标题为“允许<应用名>拍摄照片和录制视频吗?”,包含“允许”和“拒绝”按钮。
3 点击权限对话框中的“允许”按钮。 对话框关闭,应用继续执行;无二次弹框或系统设置跳转。
4 观察应用界面,等待不超过 3 秒。 相机预览画面正常显示(若为预览界面),或扫描/拍摄功能就绪(无持续 loading 或错误提示)。
5 手动触发 CameraX 初始化完成事件(如查看日志输出“CameraX initialized successfully”)。 应用无 ANR、无堆栈溢出、无空指针异常。

输入输出物

输入物:

  • 待测应用 APK(版本号与构建标识)。
  • 测试设备信息(厂商、型号、Android 版本、相机参数)。
  • 首次启动的空白权限记录(通过清除应用数据实现)。

输出物:

  • 用例执行记录(含步骤截图、日志文件、录屏文件)。
  • 权限授予成功后的 CameraX 初始化状态确认(可通过日志关键字或 UI 反馈确认)。
  • 回归测试结论(通过/失败)。

责任边界

角色 职责
测试工程师 执行操作步骤,记录日志与截图,判断预期结果是否符合,提交缺陷报告。
开发工程师 提供 CameraX 初始化成功的日志输出标准,修复测试中发现的权限请求与初始化相关的缺陷。
产品经理 确认权限请求文案与交互是否符合产品设计规范。

记录材料

  • 录屏/截图:权限对话框弹出截图、点击“允许”后界面变化截图、CameraX 预览界面截图。
  • 日志文件:adb logcat 过滤 CameraX 相关标签(如 “CameraX” 或 “Camera2”)的完整日志,需包含时间戳。
  • 测试设备信息:使用 adb shell getprop 输出设备属性,或手动记录设置中的“关于手机”信息。
  • 异常记录:执行过程中如出现不符合预期的弹窗、卡顿、崩溃,需额外保存堆栈日志。

异常处理

异常场景 处理方式
权限对话框未弹出 检查应用是否在 manifest 中声明了 CAMERA 权限(非代码检查,仅确认清单文件完整性);若仍无弹框,记录缺陷并标记为失败。
点击“允许”后对话框不关闭 重启应用后重试;若复现,收集系统日志并标记为严重缺陷。
CameraX 初始化超时(超过 5 秒) 记录日志,检查相机硬件可用性;若非硬件问题,按性能缺陷提交。
相机预览黑屏或花屏 检查是否被其他相机应用占用后台进程;关闭后台应用后重试,若仍失败,记录渲染异常缺陷。
应用崩溃(闪退) 立刻保存完整 logcat 和 tombstone 文件;标记用例为失败,并提交崩溃缺陷。

验收标准

  1. 权限对话框在用户首次进入相机功能时正确弹出,且文字与设计稿一致。
  2. 点击“允许”后,权限状态变更为已授予(可通过 adb shell dumpsys package 验证)。
  3. CameraX 初始化成功,日志中存在 “CameraX initialized” 或等效关键字,无 ERROR 级输出。
  4. 相机预览画面正常显示,无黑屏、闪屏、绿屏或大面积噪点。
  5. 应用内存占用在初始化完成后不超过基线值的 120%(基线值由性能测试提供)。
  6. 整个操作流程无 ANR(应用无响应)发生。
关键提示: 首次启动权限授予是回归测试的基础用例,后续所有权限相关测试(如拒绝后再次请求、后台权限变更、多设备兼容等)均依赖此用例的稳定通过。建议在每轮回归中优先执行本用例,确保基础链路无退化。
正向权限授予流程(首次启动) 启动应用 进入相机功能页 弹出权限对话框 用户点击“允许” CameraX初始化成功 异常分支参考 若弹框未出现→ 检查清单文件 若点击无效→ 重启重试 若初始化超时→ 检查硬件 若崩溃→ 收集日志报告 (详细异常处理见本章)