最小复现

最小复现:逐步删除与现象无关的输入与操作,保留能稳定触发问题的最短步骤;缩减过程本身常能暴露根因,缩小后的步骤也便于固化为回归用例。

软件测试速查开发更新于 2026-10-13

最小复现是什么

最小复现:逐步删除与现象无关的输入与操作,保留能稳定触发问题的最短步骤。缩减过程本身常能暴露根因,缩小后的步骤也便于固化为回归用例;报告里同时保留原始场景与最小步骤,修复者与验证者各取所需。

基本信息

目标最短且稳定的触发步骤
方法逐步删除或替换输入,观察现象是否保持
偶现处理先记录频率与日志,再谈缩减
留档要求原始场景与最小步骤同时保留
产物回归用例与缺陷单关联
边界步骤回退前确认现象确定性未变
工具辅助输入多时可用脚本半自动二分删除

缩减思路

缩减思路
1) 记录原始步骤与数据
2) 逐项删除或替换输入,观察现象是否保持
3) 得到最短稳定步骤
4) 固化为回归用例并关联缺陷单
# 偶现问题:先记录频率与日志,为缩减提供线索

缩减检查

检查项要求
单变量每轮只改一个因素,现象突变先回退
稳定性最短步骤多次复现确认,偶现问题记录频率
原始场景核对前置条件未遗漏,两者一并入单

典型使用场景

  • 缺陷报告:给修复者最短路径,减少来回沟通。
  • 根因分析:缩减过程暴露依赖条件与触发变量。
  • 回归方案:最小步骤直接转化为自动化用例。
  • 偶现问题:用频率与日志辅助判断缩减方向。
  • 交接协作:复现步骤明确后任何人可独立验证。
  • 复盘沉淀:把典型缩减案例放进团队知识库。
  • 二分排查:输入组合多时,用二分删除代替逐项尝试。
只报「偶现」而不给频率与日志,修复方向不明。
缩减后未核对原始场景,可能遗漏关键前置条件。
最小步骤与原始场景并存:修复验证按最小步骤,验收覆盖原始场景。
缩减前先固定环境变量:版本、数据与配置钉住后再删输入。

易错点

  • 只报「偶现」而不给频率与日志,修复方向不明。
  • 缩减后未核对原始场景,遗漏关键前置条件。
  • 把「无法复现」当结论,不记录尝试过的变量。
  • 跳过缩减直接写缺陷,修复者重复做定位工作。
  • 缩减过程中顺手换了环境,现象变化无法归因。

数据来源与参考

  • Andreas Zeller:Delta Debugging(论文与资料)
  • ISTQB CTFL 4.0 大纲(缺陷复现)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌