敏捷测试流程 Scrum敏捷测试
什么是敏捷测试
敏捷测试的定义
首先敏捷测试是敏捷一种测试,原有测试定义中通过执行被测系统发现问题,通过测试这种活动能够提供对被测系统提供度量等概念还是适用的。在传统的测试定义上,还需要添加
敏捷测试是遵循敏捷宣言的一种测试实践:
l 强调从客户的角度,即使用系统的用户的角度,来测试系统
l 重点关注持续迭代的测试新开发的功能,而不再强调传统测试过程中严格的测试阶段。
l 建议尽早开始测试,一旦系统某个层面可测,比如提供了模块功能,就要开始模块层面的单元测试,同时随着测试
1
深入,持续进行回归测试保证之前测试过内容的正确性。
什么是Scrum,
Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周。在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团队总是先开发对客户具有较高价值的需求。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog。在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。 Scrum起源于软件开发项目,但它适用于任何复杂的、创新性的项目。
Scrum由三个角、六个时间箱和四个工件组成:
三个角
1. 产品负责人(Product Owner) 2. Scrum Master 3.
Scrum团队
六个时间箱
2
1. Sprint
2. 发布计划会议(Release Planning Meeting)可选 3. Sprint计划会议(Sprint Planning Meeting) 4. 每日站会(Daily Scrum Meeting)
5. Sprint评审会议(Sprint Review Meeting) 6. Sprint回顾会议(Sprint Retrospective Meeting)
四个工件
1. 产品Backlog(Product Backlog)
2. 发布燃尽图(Release Burndown Chart)可选
3. SprintBacklog
4. Sprint燃尽图(Sprint Burndown Chart) 软件测试流程
Scrum最早由Jeff Sutherland在1993年提出,Ken Schwaber 在1995年OOPSLA会议上形式化了Scrum开发过程,并向业界公布。目前Scrum是应用最为广泛的敏捷方法之一
SCRUM理论基础
Scrum是以经验过程控制理论作为理论基础,通过迭代、增量的方法来增强产品开发的可预见性,并控制风险。Scrum经验过程控制理论的实施由三大支柱支撑: 第一:透明性(Transparency)
透明度是指,在软件开发过程的各个环节保持高度的可见性,影响交付成果的各个方面对于参与交付的所有人、管理
3
生产结果的人保持透明。管理生产成果的人不仅要能够看到过程的这些方面,而且必须理解他们看到的内容。也就是说,当某个人在检验一个过程,并确信某一个任务已经完成时,这个完成必须等同于他们对完成的定义。 第二:检验(Inspection)
开发过程中的各方面必须做到足够频繁地检验,确保能够及时发现过程中的重大偏差。在确定检验频率时,需要考虑到检验会引起所有过程发生变化。当规定的检验频率超出了过程检验所能容许的程度,那么就会出现问题。幸运的是,软件开发并不会出现这种情况。另一个因素就是检验工作成果人员的技能水平和积极性。
第三:适应(Adaptation)
如果检验人员检验的时候发现过程中的一个或多个方面不满足验收标准,并且最终产品是不合格的,那么便需要对过程或是材料进行调整。调整工作必须尽快实施,以减少进一步的偏差。
Scrum中通过三个活动进行检验和适应:
每日例会检验Sprint目标的进展,做出调整,从而优化次日的工作价值;
Sprint评审和计划会议检验发布目标的进展,做出调整,
4
从而优化下一个Sprint的工作价值;
Sprint回顾会议是用来回顾已经完成的Sprint,并且确定做出什么样的改善可以使接下来的Sprint更加高效、更加令人满意,并且工作更快乐。
Scrum三个角及其职责介绍
每个Scrum团队包括3个角: 产品负责人(Product Owner), ScrumMaster和 Scrum 团队。
产品负责人
产品负责人的职责:
? 确定产品的功能,负责维护产品Backlog。 ? 决定产品的发布日期和发布内容。 ? 为产品的投资回报率(ROI)负责。 ? 根据市场价值确定功能优先级。
? 在每个Sprint开始前调整功能和调整功能优先级。
? 在Sprint结束时接受或拒绝接受开发团队的工作成果。
产品负责人是一个人,而不是一个委员会。可能会有一些委员会向产品负责人提出建议或影响他的决策,但要想改变某条目的优先级必须先说服产品负责人。实施Scrum的企业可能发现这样会影响他们制定优先级和需求的方法。
5
为保证产品负责人的工作取得成功,企业中的所有人员都必须尊重他的决定。任何人都不得要求团队按照另一套优先级开展工作,团队也不允许听从任何人带有威胁恐吓性的指令。产品负责人所作的决定需要通过产品Backlog内容和优先级使其可视化。这种可视化要求产品负责人全力以赴,同时也使其成为一个费心费力但又值得去做的角。
ScrumMaster
ScrumMaster 作为Team Leader和Product owner紧密地工作在一起,他可以及时地为团队成员提供帮助。他必须:
保证团队资源完全可被利用并且全部是高产出的。 保证各个角及职责的良好协作。
解决团队开发中的障碍。