操作流畅度测试

适用场景

操作流畅度测试适用于DVT阶段中对所有用户可交互功能模块的实时响应性能验证。当产品涉及手势滑动、页面滚动、列表加载、动画过渡、弹窗弹出/关闭、输入框光标跟随等操作时,必须进行该项测试。典型场景包括:

  • 首次启动引导页滑动流畅度
  • 主界面列表快速翻页/滚动
  • 弹窗/对话框从触发到完全显示的时间
  • 输入框内连续输入汉字的表情预测/联想响应
  • 多媒体资源(图片、视频)加载过程中的UI无阻塞

前置条件

  • 待测产品已完成软件集成并处于稳定运行状态(无持续Crash)。
  • 测试环境网络延迟≤10ms,后台进程除必要系统服务外全部关闭。
  • 测试工具:视频录制工具(屏幕录制帧率≥60fps,推荐使用OBS Studio 或内置录屏工具)、时间戳分析器(如FFmpeg逐帧解析或专用流畅度分析仪)。
  • 记录模板:预制操作流畅度测试记录表(含时间轴、操作类型、预期指标)。
  • 测试人员已签署保密协议并熟悉操作任务清单。

操作步骤

  1. 准备录制:将测试手机/平板固定于支架,打开屏幕录制(设置分辨率1080p,帧率60fps),确认录制时间戳可见。
  2. 执行基准操作:按操作任务清单依次执行以下子任务,每项重复执行5次:
    • 滑动主界面列表(从顶部到底部,匀速)
    • 快速点击导航栏切换Tab
    • 连续输入中文短语(不少于15字符)
    • 弹出/关闭系统弹窗
  3. 停止录制:保存视频文件,命名规则为流畅度_设备ID_日期_序号.mp4。
  4. 逐帧分析:使用FFmpeg逐帧导出JPG序列,统计每帧时间戳,计算:
    操作耗时 = 操作完成帧时间戳 - 操作开始帧时间戳
    流畅度指标 = 1 / (操作耗时 / 帧间隔)   (帧间隔=16.67ms@60fps)
    丢帧数 = 实际帧数 - 期望帧数(期望帧数 = 耗时 / 16.67ms)
  5. 记录数据:将每次操作的耗时、丢帧数、流畅度指标填入记录表。
  6. 异常判定:对超出阈值的数据标注异常标记,并截图保存关键帧。

输入输出物

输入物说明
操作任务清单由测试计划定义的10~15项标准操作描述
设备固件版本号待测产品的当前软件版本
屏幕录制工具OBS / 系统录屏 + 时间戳设置
FFmpeg 环境用于帧序列提取
输出物说明
操作流畅度测试记录表(Excel)含原始帧分析数据、指标计算、异常标记
异常关键帧截图每项异常操作取2张截图(开始帧+结束帧)
测试报告摘要概括各操作类型的平均耗时、丢帧率、合格/不合格项

责任边界

  • DVT工程师:负责搭建测试环境、执行录制、进行帧分析、填写记录表、输出异常截图。
  • 开发团队:提供被测软件版本,配合修复影响流畅度的代码逻辑(如长列表复用、动画性能)。
  • 测试经理:审核记录表的完整性、异常判定的合理性,审批测试报告。
  • 禁止:DVT工程师不得在测试过程中修改系统参数或注入加速代码;所有操作必须在同一物理环境下完成,避免外接设备干扰。

记录材料

操作流畅度测试记录表(示例行):

操作编号操作类型操作耗时(ms)丢帧数流畅度指标(%)异常标记备注
F001列表滑动 – 第1次120198.3%正常——
F001列表滑动 – 第2次180395.0%异常滑动中途卡顿0.5s,截图见附件F001-2
F002Tab切换850100%正常——
F003连续输入(15字)1050298.1%正常首字延迟稍高,后续正常

异常处理

异常判断规则:

  • 丢帧数≥2 且 流畅度指标<95% → 标记为“异常”。
  • 单次操作耗时超过同类操作历史均值的1.5倍 → 标记为“潜在异常”需复测。
  • 同一操作类型在5次测试中超过3次异常 → 判定为“该操作类型流畅度不合格”,需提交Bug。
  • 若出现单次操作耗时超过500ms(用户感知明显卡顿),即使丢帧数=0也标记为“异常”。

异常处理流程:

  1. 在记录表异常标记列标注“异常”并提供截图。
  2. 登录Bug管理系统,填写标题、复现步骤、判断依据(帧分析数据)。
  3. 指派给开发团队,预期解决后回归验证。
  4. 回归测试重复该操作5次,若仍异常则升级至测试经理评审。

验收标准

  • 所有必测操作类型的流畅度指标≥95%,且丢帧数≤1。
  • 单次操作耗时中位数不超过同类操作基线(基线由初次DVT建立)的1.2倍。
  • 无因操作流畅度导致的用户误触或界面错乱(如点击后无响应、界面重叠)。
  • 所有标记异常项均已在Bug管理系统关闭,且回归通过。
  • 测试记录表数据完整,关键帧截图归档至项目共享目录。

✏️ 讲义要点:操作流畅度测试的核心是“帧间隔一致性”。丢帧≠掉帧,丢帧指期望帧数(理论帧数)与实际帧数的差值;保持60fps录制是准确分析的前提。FFmpeg逐帧提取命令:

ffmpeg -i screen_recording.mp4 -vf "select=not(mod(n\,1))" -vsync vfr frames_%04d.png

💡 小技巧:如果测试场景包含大量列表滚动,可在录制前打开开发者选项中的“GPU渲染模式分析”条形图(Android系统),辅助肉眼识别卡顿。iOS可使用Xcode Instruments的Core Animation调试。

操作流畅度测试流程 1. 前置条件就绪 2. 启动屏幕录制 3. 执行5次操作 4. 逐帧分析 & 计算 5. 异常判定 / 记录 关键工具 • OBS 60fps录制 • FFmpeg逐帧提取 • 帧间隔16.67ms • 流畅度指标 = 1/(耗时/16.67) • 异常阈值:丢帧≥2

⚠️ 常见错误:录制帧率低于30fps时无法准确测量丢帧数;操作过程中不可暂停录制或插入系统弹窗;若使用第三方录屏APP,需确认其不会因为性能开销而影响待测应用的流畅度(推荐使用硬件录屏卡或内置ADB录屏)。