首页/开发/软件测试速查/验收测试驱动开发(ATDD)
测试基础与分层67 条

验收测试驱动开发(ATDD)

在开发前由业务、开发、测试共同定义验收标准与验收测试,再开展实现;是协作式的需求澄清方式,与 TDD、BDD 常配合使用。

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

ATDD 是什么

ATDD(验收测试驱动开发)是在编码之前,由业务(客户)、开发、测试三方共同澄清用户故事,先定义可执行的验收标准与验收测试,再开展实现:先对齐期望、再动手编写。与 TDD 关注单元级设计、BDD 关注行为描述语言不同,ATDD 强调验收视角与三方协作,实践中常与两者配合使用,能显著减少「做完了但不是要的」这类返工。

基本信息

参与者业务(客户)、开发、测试三方
产出可执行的验收标准与验收用例
时机迭代计划与开发之前
关键活动实例化需求、示例映射、三方评审确认
衔接方式验收用例自动化后进入回归集

典型使用场景

  • 迭代启动会:用示例映射澄清业务规则与异常分支,当场暴露理解差异
  • 需求模糊时:把抽象描述翻译成可判定的验收条件,避免开发自行脑补
  • 验收自动化:把验收标准固化为自动化测试,随版本持续回归
  • 三方评审:业务、开发、测试同场确认边界值、例外与错误提示
  • 活文档:验收用例作为系统当前行为的说明,供新人查阅
  • 外包与跨团队交付:验收标准即验收依据,减少交付争议

验收标准示例

验收标准示例
用户故事:登录连续失败超过 5 次锁定账号 10 分钟
验收标准:
  第 5 次失败:提示剩余 0 次机会,账号进入锁定状态
  锁定期间输入正确密码:拒绝登录并提示可解锁时间
  锁定到期后:允许登录且失败计数清零
# 每条标准都写成可判定通过与失败的句子,三方逐条确认

与 TDD BDD 的关系

实践关注点典型载体
ATDD验收视角与协作澄清验收标准、验收测试
TDD单元级设计驱动单元测试、重构循环
BDD行为描述语言Given-When-Then 场景
ATDD 与 BDD 的区别主要在语境:ATDD 强调验收视角,BDD 强调行为描述语言,实践中经常重叠使用。

易错点

  • 验收标准由单方写成,评审时才暴露理解差异
  • 验收测试与实现强耦合,接口调整后大量重写
  • 验收标准写成「系统应稳定可靠」这类不可判定描述,无法转化为用例
  • 只覆盖正常路径不覆盖异常分支,边界与错误处理上线后集中暴露
  • 验收标准确认后不随需求变更维护,验收时才发现口径过期

数据来源与参考

  • Markus Gärtner《ATDD by Example》
  • ISTQB 术语表(验收标准相关)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌