软件测试中的敏捷方法
测试中的敏捷方法是什么?
敏捷方法论是一种促进 不断迭代 开发和测试贯穿整个项目的软件开发生命周期。在软件测试的敏捷模型中,开发和测试活动是同时进行的,这与瀑布模型不同。

什么是敏捷软件开发?
- 敏捷软件开发 方法论是将业务需求愿景转化为软件解决方案的最简单、最有效的流程之一。敏捷是一个术语,用于描述采用持续规划、学习、改进、团队协作、演进开发和早期交付的软件开发方法。它鼓励灵活应对变化。
敏捷软件开发强调四个核心价值。
- 个人和团队在流程和工具上的互动
- 工作软件胜于完整的文档
- 客户合作有关合同谈判
- 响应变化而不是遵循计划
敏捷模型与瀑布模型
敏捷和瀑布模型是软件开发过程的两种不同方法。尽管它们的方法不同,但这两种方法有时都很有用,具体取决于项目的要求和类型。
敏捷模型 | 瀑布模型 |
---|---|
软件测试中的敏捷方法定义:敏捷方法提出了软件设计的增量和迭代方法 | 瀑布模型:软件开发从起点到终点按顺序进行。 |
- 敏捷流程 软件测试被分解成设计师负责的单个模型 | 设计过程不会分解为单个模型 |
客户有尽早且频繁的机会查看产品并对项目做出决策和更改 | 客户只能在项目结束时看到产品 |
与瀑布模型相比,测试中的敏捷模型被认为是非结构化的 | 瀑布模型更安全,因为它们是以计划为导向的 |
小型项目可以很快实施。 对于大型项目,很难估计开发时间。 | 各种项目都可以估算和完成。 |
错误可以在项目中间修复。 | 只有在最后,整个产品才会被测试。如果发现需求错误或必须进行任何更改,则项目必须从头开始 |
开发过程是迭代的,项目在短(2-4)周的迭代内执行。规划非常少。 | 开发过程是分阶段的,而且阶段比迭代要大得多。每个阶段都以下一阶段的详细描述结束。 |
文档的优先级低于 软件开发 | 文档是重中之重,甚至可以用于培训员工以及与其他团队一起升级软件 |
每次迭代都有自己的测试阶段。它允许在每次发布新功能或逻辑时实施回归测试。 | 只有在开发阶段之后,才会执行测试阶段,因为单独的部分不能完全发挥作用。 |
在敏捷测试中,当迭代结束时,产品的可交付功能将交付给客户。新功能在发货后即可使用。当您与客户有良好的联系时,它很有用。 | 所有开发的功能都是在漫长的实施阶段之后立即交付的。 |
测试人员和开发人员一起工作 | 测试人员与开发人员分开工作 |
在每个冲刺结束时,执行用户接受 | 用户接受度是 执行 在项目结束时。 |
需要与开发人员密切沟通,共同分析需求、规划 | 开发人员不参与需求和规划过程。通常,测试和编码之间存在时间延迟 |
还检查: - 敏捷与瀑布:了解方法论之间的区别
敏捷过程
检查以下内容 敏捷方法 快速交付成功系统的流程。
有各种 敏捷方法 存在于敏捷测试中,如下所列:
争球
SCRUM 是一种敏捷开发方法,它专注于如何在基于团队的开发环境中管理任务。基本上,Scrum 源自橄榄球比赛期间发生的活动。Scrum 相信赋予开发团队权力,并提倡在小团队中工作(例如 7 到 9 名成员)。敏捷和 Scrum 由三个角色组成,他们的职责解释如下:
-
Scrum Master
- Scrum Master 负责组建团队、召开冲刺会议并消除进展障碍
-
产品所有者
-
产品负责人创建产品待办事项,确定待办事项的优先级,并负责每次迭代的功能交付
-
-
Scrum团队
-
团队管理自己的工作并组织工作完成冲刺或周期
-
产品积压
这是一个存储库,其中跟踪需求,并详细说明每个版本要完成的需求(用户故事)数量。它应该由产品负责人维护并确定优先级,并且应该分发给 Scrum 团队。团队还可以请求添加、修改或删除新的需求
Scrum 实践
具体做法如下:
Scrum 方法的流程:
工艺流程 Scrum 测试 如下:
- Scrum 的每次迭代被称为 Sprint
- 产品待办事项是一个列表,其中输入所有详细信息以获得最终产品
- 在每个 Sprint,选择产品待办事项中的顶级用户故事并将其转化为 Sprint 积压
- 团队致力于定义的冲刺待办事项列表
- 团队检查日常工作
- 在冲刺结束时,团队交付产品功能
极限编程 (XP)
当客户的需求或要求不断变化或不确定系统的功能时,极限编程技术非常有用。它提倡在较短的开发周期内频繁“发布”产品,这从本质上提高了系统的生产力,并引入了一个检查点,可以轻松实现任何客户需求。 XP 开发的软件使客户始终保持在目标之中。
业务需求以故事的形式收集。所有这些故事都存储在一个叫做停车场的地方。
在这种类型的方法中,发布基于称为“迭代”的较短周期,周期跨度为 14 天。每次迭代都包括编码、单元测试和系统测试等阶段,其中每个阶段都会在应用程序中构建一些次要或主要功能。
极限编程阶段:
Agile XP 方法有 6 个阶段,解释如下:
计划
-
利益相关者和发起人的识别
-
基础设施要求
-
安全性 相关信息及收集
-
服务水平协议及其条件
分析
-
捕捉停车场里的故事
-
优先考虑停车场的故事
-
清理故事以进行估计
-
定义迭代SPAN(时间)
-
开发和 QA 团队的资源规划
工艺设计
-
任务分解
-
每个任务的测试场景准备
-
回归自动化框架
执行
-
编码
-
执行手动测试场景
-
缺陷报告生成
-
将手动回归测试用例转换为自动化回归测试用例
-
中期迭代审查
-
迭代结束审核
包装
-
小版本发布
-
演示和评论
-
根据需要开发新故事
-
基于迭代结束评审意见的流程改进
关闭
-
试点发射
-
培训
-
生产启动
-
SLA保证保证
-
Rev查看 SOA 策略
-
生产支持
有两个故事板可用于跟踪日常工作,下面列出了这些故事板以供参考。
-
故事纸板
-
这是一种传统的方式,以便笺的形式将所有故事收集在板上,以跟踪日常 XP 活动。由于此手动活动需要更多的精力和时间,因此最好切换到在线表格。
-
-
在线故事板
-
在线工具 Storyboard 可用于存储故事。 多个团队可以使用它 出于不同的目的。
-
水晶方法论
水晶方法论基于三个概念
-
租船: 此阶段涉及的各种活动包括创建开发团队、进行初步可行性分析、制定初步计划和微调开发方法
-
循环交付: 主要开发阶段由两个或多个交付周期组成,在此期间
- 团队更新并完善了发布计划
- 通过一个或多个程序测试集成迭代来实现需求的子集
- 集成产品交付给真实用户
- Rev项目计划和所采用的开发方法
- 包起来: 此阶段执行的活动是部署到用户环境中,执行部署后审查和反思。
动态软件开发方法 (DSDM)
DSDM 是一种 快速应用开发 (RAD)软件开发方法,并提供敏捷项目交付框架。DSDM 的重要方面是要求用户积极参与,并赋予团队决策权。频繁交付产品成为 DSDM 的积极重点。DSDM 中使用的技术包括
- 时间 Box博士开发的技术萃取的
- 莫斯科规则
- 模型
DSDM项目分为7个阶段
- 预项目
- 可行性研究
- 商业研究
- 功能模型迭代
- 设计和构建迭代
- 实施
- 项目后
功能驱动开发(FDD)
该方法专注于“设计和构建”功能。与软件工程中的其他敏捷方法不同,FDD 描述了非常具体和简短的工作阶段,必须针对每个功能单独完成。它包括领域演练、设计检查、促进构建、代码检查和设计。FDD 开发产品时始终遵循目标
- 领域对象建模
- 按功能开发
- 组件/类所有权
- 特色团队
- 检查
- 配置管理
- 常规构建
- 进展和结果的可见性
精益软件开发
精益软件开发方法基于“准时生产”原则。它的目的是提高软件开发速度并降低成本。精益开发可以概括为七个步骤。
- 消除浪费
- 强化学习
- 推迟承诺(尽可能晚地做出决定)
- 提前交货
- 赋予团队权力
- 建筑物 Integrity
- 整体优化
看板
看板 最初源于日语,意思是一张卡片,上面记录了产品在完成过程中每个阶段需要完成的所有信息。这种框架或方法在软件测试方法中被广泛采用,尤其是在敏捷概念中。
Scrum 与看板
争球 | 看板 |
---|---|
在 Scrum 技术中,测试必须分解,以便可以在一个 sprint 内完成 | 没有规定特定的物品尺寸 |
规定优先产品待办事项列表 | 优先级是可选的 |
Scrum 团队致力于迭代的特定工作量 | 承诺是可选的 |
规定了燃尽图 | 没有规定特定的物品尺寸 |
在每个 sprint 之间,scrum 板都会重置 | 看板是持久的。它限制工作流状态中的项目数量 |
它无法将项目添加到正在进行的迭代中 | 只要容量可用,它就可以添加项目 |
WIP 间接受限 | WIP直接有限 |
规定的时间盒迭代 | 时间盒迭代可选 |
还检查: - Kanban 与 Scrum:有什么区别?
敏捷指标
为有效使用敏捷而可以收集的指标有:
-
阻力系数
-
无助于冲刺目标的小时努力
-
可以通过减少共享资源数量、减少非贡献工作量来改善阻力系数
-
新的估计可以增加阻力系数的百分比-新的估计=(旧的估计+阻力系数)
-
-
速度
-
积压的数量(用户故事)转换为冲刺的可交付功能
-
-
添加的单元测试数量
-
完成每日构建所需的时间间隔
-
在迭代或先前迭代中检测到的错误
-
生产缺陷泄漏