ATDD整体研发流程
有了前面的基于story的敏捷基础,接下来来介绍一下验收测试驱动开发的整个流程。
名词解释:
ATD,即验收测试设计(acceptancetest design)
PM,即需求整理方(product manager)
RD,即开发人员(Research and Development)
QA,即品质保证人员(quality assurance)
如上图所示,整个流程被分为三个粒度,分别是:项目、迭代、story。
一个项目被划分为若干个迭代;
每个迭代由若干个story组成。
Ø 项目粒度(图中水平向右的箭头)
1. 一系列需求催生了一个项目;
2. 项目启动后,将已有的需求拆分成若干可独立上线的story,或补充新的story;
3. 每个story都有一个优先级,将story按优先级从高到低排序;
4. 把一段固定的时间(比如两周)作为一个迭代;
5. 将一定量的高优先级story进行需求澄清;
6. 按团队的研发能力(参照前文提到的“昨日天气”原则),将澄清后的高优先级story纳入到当前迭代中;
7. 完成迭代,并上线(可不上线);
8. 重复2到7,直到所有需求均上线。
Ø 迭代粒度(图中标有“迭代”的圆形箭头)
1. 迭代启动;
2. ATD编写&&详细设计(如果必要),同步进行;
3. 并行的story开发和测试;
4. Showcase;
5. PM线下验收;
6. 上线清单准备&&上线;
7. 迭代回顾;
Ø story粒度(图中标有“story”的圆形箭头)
1. story启动
开始一个高优先级的story(如果该story较大,可先开始一个优先级稍低但估点较小的story,以提高测试并发度)
2. review详细设计(如果有的话)
3. ATD的review和完善;
4. RD开发并根据ATD编写自动化(所有单测+大部分集成测试),并标记;
5. RD签章通过大部分ATD;
6. 提测;
7. QA进一步完善ATD;
8. QA对未签章部分进行测试(手工+编写少量集成测试,及必要的系统级测试);
9. QA进行探索性测试(如高风险点的二次确认、整体流程,以及回归等);
10. 并行地重复1到9,完成所有迭代中的story。
从以上三个维度的解释,以及整体流程图,对整体的ATDD有了大概了解,具体细节后面会详细介绍。