TDD,ATDD,BDD都是什么
TDD在我还在Foxconn的时候就知道,当时我们部门就是TDD/TDE(老是变名字,不是我记不住)
这次在查看RobotFrame时看到Robot Framework is a Python-based, extensible keyword-driven automation framework for acceptance testing, acceptance test driven development (ATDD), behavior driven development (BDD) and robotic process automation (RPA).
,于是去查了查概念,在这里做一个记录:
简单来说,TDD是Development在自己理解requirement后设计好unit tests,然后去实现功能,进而进行测试验证。但是Development可能理解是错的,这就导致最初设计的unit tests只是代码上的正确,function层面未必有意义。ATDD是在Development,QA,User一起确认后用英文语言写出的Example,是站在用户的视角写的Example,然后Development基于此去实现与验证。BDD粗看与ATDD完全一样,都是英文语言写Example,都是Development,QA,User三方对话确认。不同点在于二者的着重点不同(某种意义上也可以当一个去用),ATDD关注的是代码是在做它该做的事吗?
,BDD关注的是我们测试的应该是什么?
,BDD首先会在Dev,QA,User三方的协作下去回答为什么有这个Story,谁去做,做什么的问题,进而才是具体到设计好Example去卡功能的实现。ATDD is a technique used WITHIN BDD
,对于BDD而言,最重要的是conversation。
Having the conversation, is more important than capturing the conversation, is more important than automating the conversation
ATDD和TDD的区别是什么?
The differences between ATDD and BDD
Quick Guide to Test-Driven Development (TDD) vs. BDD vs. ATDD
7 Things About Acceptance Test Driven Development Everyone Should Know