敏捷测试开发快速入门教程1什么是敏捷方法论?
AGILE方法是一种在整个项目的软件开发生命周期中促进开发和测试的连续迭代的实践。 与Waterfall模型不同,开发和测试活动都是并发的。
敏捷软件开发强调四个核心价值观。
- 流程和工具之间的个人和团队互动
- 综合文档
- 客户协作
- 响应遵循计划的变更
敏捷和瀑布模型是软件开发过程的两种不同方法。 虽然它们的方法不同,但两种方法有时都很有用,具体取决于项目的要求和类型。
敏捷模型 | 瀑布模型 |
---|---|
敏捷方法提出了软件设计的增量和迭代方法 | 软件的开发从起点到终点顺序进行。 |
敏捷过程分解为设计人员所处理的各个模型 | 设计过程不会分解为单个模型 |
客户可以及早和频繁地查看产品并对项目进行决策和更改 | 客户只能在项目结束时看到产品 |
与瀑布模型相比,敏捷模型被认为是非结构化的 | 瀑布模型更安全,因为它们是如此的计划导向 |
小项目可以很快实施。 对于大型项目,很难估计开发时间。 | 各种项目都可以估算和完成。 |
可以在项目中间修复错误。 | 只有在最后,整个产品才经过测试。如果发现需求错误或必须进行任何更改,则项目必须从头开始 |
开发过程是迭代的,项目在短(2-4)周的迭代中执行。 规划非常少。 | 开发过程是分阶段的,阶段比迭代大得多。 每个阶段都以下一阶段的详细描述结束。 |
文档的优先级低于软件开发 | 文档是首要任务,甚至可以用于培训员工并与其他团队一起升级软件 |
每次迭代都有自己的测试阶段。 它允许在每次释放新函数或逻辑时执行回归测试。 | 只有在开发阶段之后,才会执行测试阶段,因为单独的部件不能完全正常工作。 |
在迭代结束时进行敏捷测试时,产品的可交付功能将交付给客户。 新功能在发货后即可使用。 当您与客户保持良好联系时,它非常有用。 | 所有开发的功能都是在长期实施阶段后立即交付的。 |
测试人员和开发人员一起工作 | 测试人员与开发人员分开工作 |
在每个sprint结束时,执行用户接受 | 用户接受在项目结束时执行。 |
它需要与开发人员密切沟通,共同分析需求和规划 | 开发人员不参与需求和计划过程。 通常,测试和编码之间的时间延迟 |

SCRUM
SCRUM是一种敏捷开发方法,专门用于如何在基于团队的开发环境中管理任务。 基本上,Scrum源自橄榄球比赛期间发生的活动。 Scrum相信授权开发团队和倡导者在小团队中工作(比如7到9名成员)。 它由三个角色组成,其职责解释如下

Scrum Master: 负责组建团队,冲刺会议并消除进展障碍
产品负责人创建产品待办事项,确定待办事项的优先级,并负责在每次迭代时交付功能
Scrum团队:团队管理自己的工作并组织工作以完成sprint 或迭代。

- Scrum的每次迭代都称为Sprint
- 产品待办事项列表是输入所有详细信息以获取最终产品的列表
- 在每个Sprint期间,选择产品待办事项的最高用户故事并将其转换为Sprint积压
- 团队在定义的sprint backlog上工作
- 团队检查日常工作
- 在sprint结束时,团队提供产品功能
极限编程(XP)
当客户不断变化的需求或要求或者他们不确定系统的功能时,极限编程技术非常有用。 它主张在短的开发周期中频繁“发布”产品,这本身就提高了系统的生产率,并且还引入了一个检查点,可以轻松实现任何客户需求。 XP开发软件使客户保持目标。

业务需求按故事收集。 所有这些故事都存放在一个叫停车场的地方。
在这种类型的方法中,版本基于称为迭代的较短周期,跨度为14天的时间段。 每次迭代都包括编码,单元测试和系统测试等阶段,在每个阶段,将在应用程序中构建一些次要或主要功能。
极限编程的阶段:
Agile XP方法有6个阶段,解释如下:
规划
-
确定利益相关者和赞助者
-
基础设施要求
-
安全相关信息和收集
-
服务水平协议及其条件
分析
-
在停车场捕捉故事
-
优先考虑停车场的故事
-
擦洗故事以供估算
-
定义迭代SPAN(时间)
-
开发和QA团队的资源规划
设计
-
分解任务
-
测试每个任务的场景准备
-
回归自动化框架
执行
-
编码
-
单元测试
-
执行手动测试场景
-
缺陷报告生成
-
将手动转换为自动化回归测试用例
-
中期迭代审查
-
迭代审核结束
Wrapping
-
小版本
-
回归测试
-
演示和评论
-
根据需要开发新故事
-
基于迭代审核评论结束的流程改进
关闭
-
试点发布
-
培训
-
生产发布
-
SLA担保保证
-
查看SOA策略
-
生产支持
有两个故事板可用于每天跟踪工作,下面列出了这些故事板以供参考。
-
故事纸板
- 这是一种传统方式,以便条形式收集董事会中的所有故事,以跟踪每日XP活动。 由于此手动活动需要更多精力和时间,因此最好切换到在线表单。
-
在线故事板
- 在线工具Storyboard可用于存储故事。 几个团队可以将它用于不同的目的。
水晶方法论
Crystal Methodology基于三个概念
-
租船:此阶段涉及的各种活动包括创建开发团队,执行初步可行性分析,制定初始计划和微调开发方法
-
循环交付:主要开发阶段包括两个或更多交付周期,在此期间
- 团队更新并优化发布计划
- 通过一个或多个程序测试集成迭代实现需求的子集
- 集成产品交付给真实用户
- 审查项目计划并采用发展方法
-
总结:在此阶段执行的活动是部署到用户环境中,执行部署后审核和反射。
动态软件开发方法(DSDM)
DSDM是一种用于软件开发的快速应用程序开发(RAD)方法,并提供灵活的项目交付框架。 DSDM的重要方面是要求用户积极参与,并且团队有权做出决策。 频繁交付产品成为DSDM的主动关注点。 DSDM中使用的技术是
- 时间箱
- MoSCoW规则
- 原型
DSDM项目包括7个阶段
- 前期项目
- 可行性研究
- 商业研究
- 功能模型迭代
- 设计和构建迭代
- 实现
- 项目后处理
特征驱动开发(FDD)
该方法主要围绕“设计和构建”特征。 与其他敏捷方法不同,FDD描述了必须按功能单独完成的非常具体和短期的工作。 它包括领域演练,设计检查,促进构建,代码检查和设计。 FDD开发产品保持目标中的事物
- 域对象建模
- 按功能开发
- 组件/类所有权
- 特色团队
- 检查
- 配置管理
- 定期构建
- 进展和结果的可见性
精益软件开发
精益软件开发方法基于“及时生产”原则。 它旨在提高软件开发速度和降低成本。 精益开发可以归纳为七个步骤。
- 消除浪费
- 扩大学习
- 推迟承诺(尽可能晚决定)
- 提前交货
- 赋予团队权力
- 建立诚信
- 优化整体
看板
一张卡片包含了产品在每个阶段完成所需的所有信息。 该框架或方法在软件测试方法中被广泛采用,尤其是在敏捷测试中。
Scrum与看板
Scrum |看板
在scrum技术中,必须对测试进行细分,以便在一个sprint中完成测试 | 没有规定特定的项目大小
- 规定优先产品队列 | 优先级是可选的
Scrum团队为迭代承诺了特定的工作量 | 承诺是可选的
Burndown图表是规定的 | 没有规定特定的项目大小
在每个sprint之间,重置scrum板| 看板是持久的。 它限制了工作流状态中的项目数
它无法将项目添加到正在进行的迭代中 | 只要容量可用,它就可以添加项目
WIP间接限制 | WIP直接限制
规定了时间盒迭代 | Timeboxed迭代可选
敏捷指标:
可以收集以有效使用敏捷的度量标准是:
-
阻力因子
-
几个小时的努力,这对冲刺目标没有贡献
-
可以通过减少共享资源的数量来减少拖动因子,从而减少非贡献工作量
-
可以通过阻力系数的百分比来增加新的估计值 - 新估计值=(旧估计值+阻力系数)
-
-
速度
- 积压(用户故事)转换为sprint的可发送功能的数量
-
没有增加单元测试
-
完成每日构建所需的时间间隔
-
在迭代或先前迭代中检测到的错误
-
生产缺陷泄漏