敏捷DoD完成定义的多种形态

作者:张克强    作者微博:张克强-敏捷307

关于Definition of Done 完成的定义

在以往的说法中,常见用 退出标准 , 完成条件,成功标准,等等

在敏捷软件开发中,存在多级的不同的完成定义。

典型的是迭代的DoD,这也是最初DoD应用的地方。

常见在Scrum中,需要预先定义DoD,常见的迭代DoD条款有:

1,所有完成的用户故事得到PO的验证

2,所有代码得到静态分析,纠正最高级别的不符合项,静态分析的规则参见...

3,所有新增代码得到人工评审

4,所有完成的用户故事都有对应的测试用例

而对于发布,一般就有更加严格的要求,发布DoD的典型条款有:

1,完成发布规划所要求的重点内容

2,通过发布的全量测试,回归测试范围是全范围,回归比率不低于50%

3,修复所有等级为1、2、3的缺陷,4级及4级以下缺陷不超过200个。1、2级缺陷必须修复,3级缺陷经过带缺陷发布审批后可以发布。

由于发布需要达到比迭代更高的要求,所以一般很难强制规定发布测试所需要的时间长度,也就是说敏捷中常用的时间箱方法不适宜用在发布前的测试上,因为高质量发布是第1要务,如果到了原计划测试结束的时间,仍然留有妨碍发布的缺陷的话,应当修复后才能发布。

而迭代成果一般是为了内部或者可控范围内的展示,相对发布而言,要求较低,所以适用时间箱方法,当然迭代本身就是时间箱,迭代内的测试本来就有时间限制。采用时间箱来安排迭代内的测试可以获得时间箱安排的种种好处,在这样的安排下,回归覆盖率就应当是一个变量,用于观察,而不应当是一个要求指标。

为了更好的达成迭代DoD,就需要提前注意,所以有些更加细节的DoD得到识别并使用。

最典型的是每日DoD,典型条款有:

1,搭建每日构建环境,晚上自动静态代码检查、编译、部署和测试,每日修复前一日构建和测试发现的缺陷和问题。

2,下班前必须检入当天书写的代码

3,当天的代码必须在当天或者第2天邀请同伴进行代码评审

4,搭建持续集成环境,当天上下午必须至少各检入代码一次(这与第1条可能冲突)

5,采用TDD,凡是检入的功能代码必须要有对应的单元测试(严格采用TDD)

还有针对用户故事(或者用例)的DoD,比如

1,用户故事最终的描述符合INVEST

2,用户故事得到测试用例的对应覆盖

3,用户故事得到对应的自动化测试用例

4,用户故事得到用户代表试用并初步认可

有少数组织考虑到测试集过于庞大,无法在1天之内测试完成,开展每周全量回归自动化测试,这样就有每周DoD,典型条款有:

1,上上周发现的缺陷是否解决

2,上周新增功能的自动化测试是否加入到每周测试集。

时间: 2024-10-07 05:18:21

敏捷DoD完成定义的多种形态的相关文章

敏捷测试的定义

敏捷开发的最大特点是:积极响应用户的需求,快速高质量的交付软件. 所以很多需求会按照用户需求程度以及模块之间的关联程度划分为多个迭代,这里的迭代你可以看做是一个小的完整的版本周期,每个迭代包含多个story,一个story相当于一个功能点,一个小的需求,而一个大的完整的发布版本一般由几个迭代版本组成.   OK,下面就开始写测试是从什么时候介入以及有哪些工作的.   1.story澄清会议(即需求澄清),参与人员:开发人员.资料开发人员.测试人员.TSE.需求接口人等.目的顾名思义就是让所有参与

转:你不可不知的敏捷测试-定义,原则,方法和生命周期

随着软件开发过程复杂性的不断增加,客户希望得到新软件的期望周期也越来越短,所以软件测试方法需要不断的发展快速适应新的开发模式,敏捷测试的呼声越来越高,以下是CC先生对敏捷测试的一些思考. 敏捷测试的定义 在CC先生初次遇到敏捷的时候,认为敏捷只是有关于流程和工具,学习了一系列有关于敏捷的流程和自动化测试的工具,随着对敏捷理解的深入,越发能体会到敏捷不仅仅是关于流程和工具,它是关于人和文化的! 受到这种认识的启发,CC先生开始深入了解敏捷的历史 - 事实证明,人和文化一直是敏捷的核心.敏捷测试也是

一站式大数据敏捷分析平台

OpenFEA是一站式大数据敏捷分析系统,融合了内存计算.集群运算.机器学习.交互分析.可视化分析等技术,涵盖数据收集.数据探索.构建模型.模型发布等功能,分析性能卓越,使用简便,无需复杂编程即可快速实现大数据分析,助力数据分析师激扬数据,塑造业务标杆.          数据收集         OpenFEA能够融合更多类型的数据来进行运算,支持关系型数据源. Hadoop数据源.数据文件.第三方数据源. 支持数据源与接口/格式的双向自定义机制.表示各种复杂结构或LOAD和STORE各类数据

任务3.站会或DoD

三选一 1.为开展敏捷团队:尝试一下引入站会 2.正在实践敏捷团队:定义DoD 3.从本次和上次学习中自己找出一个任务 <我们知道何时才算完成> <富有成效的每日站会> 目前所带团队有站会,前期成员均在同一办公地,站会固定时间固定地点开,采用物理白板.后来成员分隔两地,无法在同一个地点进行,所以我们目前采用Skype电话会议,并用ice s c ru m工具更新进度. 电话站会基本也是按照3个基本问题的格式进行.一般时间不超过15分钟,偶尔会涉及多个同学讨论问题,时间可能超出,视情

你真的知道敏捷和迭代吗?

在这敏捷开发横行的时代中,人人都在谈敏捷,人人都在谈迭代,似乎大家好像都尝到了敏捷带来的甜头,记得有一次跟朋友吃饭,说他们现在的项目用敏捷开发,每个迭代都能看到不断完善的产品,非常有成就感,客户的满意度也提升了不少:另一个朋友说,我们用迭代开发,也是这样,而且客户想加什么需求就加什么,直接按照优先级排到迭代周期就行,也不用为改需求而烦躁.当时我就想,敏捷开发不就是分迭代周期的吗,他俩好像说的是一回事吧.回去过了好长一段时间,突然想起这件事了,在网上一查,还真不是一回事- 迭代开发流程: 什么叫迭

Scrum3.0 敏捷开发白皮书

一.什么是敏捷? 敏捷是一种以用户需求为核心.采用不断迭代的方式进行的软件开发模式.敏捷依靠自组织 的跨职能小团队,在短周期内,做出小块的东西来,通过快速.频繁的迭代,迅速的获取反 馈,进而不断的完善产品,给用户带来更大的价值.敏捷的特点是轻文档.频繁发布.高效 沟通. 二.为什么敏捷? 1)拥抱变化.信息时代瞬息万变,存在着太多不确定性.今天有价值的东西,可能明天会 变得不那么有价值.我们没有变法让一切不变,也没有办法来控制变化,我们只能选择去拥 抱变化.快速迭代的敏捷就是拥抱变化的方法. 2

敏捷软件开发和传统软件工程

一.   传统软件工程 从上个世纪60年代开始,人们开始逐渐认识到了确实存在着"软件危机" 这样一个事实,软件开发人员被诸如下列问题困扰: 软件生产不能满足日益增长的需要 软件开发成本和开发进度估计往往不准确 软件开发人员和用户之间信息交流不充分,用户对完成的软件满意度很低 软件价格昂贵,软件成本在整个计算机系统中所占的比例急剧上升,软件已成为许多计算机系统中花钱最多的项目 软件质量难以保证 软件可维护性差,程序中的错误很难改正,适应性或完善性维护都极其困难 导致危机问题的一个重要原因

究竟什么是敏捷测试

时至今日,还讨论这样一个老话题,是否感觉老调重弹?因为两年前(2010年底)时任谷歌中国测试经理的段念先生就写了一篇文章<什么是敏捷软件测试>, 就已经谈到这个话题,“敏捷软件测试更多的是一种理念,而非过程”.在2011年,我自己也写了一篇文章<敏捷测试的思考和新发展>,谈到“在BDD.ATDD和TDD最根本的.共同的思想基础上,构成一个全新的.更完善的敏捷测试框架”.而更早的时候(2010年10月),写了一篇<敏捷测试的方法和实践>,开始的那一小节就在讨论 “什么是敏

敏捷软件工程(agile software development) VS传统软件工程(traditional software development)

敏捷软件工程(agile software development) VS传统软件工程(traditional software development)      Agile principle    The Agile Manifesto is based on twelve principles(敏捷开发12原则) 1. Customer satisfaction by early and continuous delivery of valuable software 2. Welcom