软件测试中的敏捷方法

敏捷方法论

测试中的敏捷方法是什么?

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

敏捷方法论
敏捷方法论

什么是敏捷软件开发?

- 敏捷软件开发 方法论是将业务需求愿景转化为软件解决方案的最简单、最有效的流程之一。敏捷是一个术语,用于描述采用持续规划、学习、改进、团队协作、演进开发和早期交付的软件开发方法。它鼓励灵活应对变化。

敏捷软件开发强调四个核心价值。

  1. 个人和团队在流程和工具上的互动
  2. 工作软件胜于完整的文档
  3. 客户合作有关合同谈判
  4. 响应变化而不是遵循计划

敏捷模型与瀑布模型

敏捷和瀑布模型是软件开发过程的两种不同方法。尽管它们的方法不同,但这两种方法有时都很有用,具体取决于项目的要求和类型。

敏捷模型 瀑布模型
软件测试中的敏捷方法定义:敏捷方法提出了软件设计的增量和迭代方法 瀑布模型:软件开发从起点到终点按顺序进行。
- 敏捷流程 软件测试被分解成设计师负责的单个模型 设计过程不会分解为单个模型
客户有尽早且频繁的机会查看产品并对项目做出决策和更改 客户只能在项目结束时看到产品
与瀑布模型相比,测试中的敏捷模型被认为是非结构化的 瀑布模型更安全,因为它们是以计划为导向的
小型项目可以很快实施。 对于大型项目,很难估计开发时间。 各种项目都可以估算和完成。
错误可以在项目中间修复。 只有在最后,整个产品才会被测试。如果发现需求错误或必须进行任何更改,则项目必须从头开始
开发过程是迭代的,项目在短(2-4)周的迭代内执行。规划非常少。 开发过程是分阶段的,而且阶段比迭代要大得多。每个阶段都以下一阶段的详细描述结束。
文档的优先级低于 软件开发 文档是重中之重,甚至可以用于培训员工以及与其他团队一起升级软件
每次迭代都有自己的测试阶段。它允许在每次发布新功能或逻辑时实施回归测试。 只有在开发阶段之后,才会执行测试阶段,因为单独的部分不能完全发挥作用。
在敏捷测试中,当迭代结束时,产品的可交付功能将交付给客户。新功能在发货后即可使用。当您与客户有良好的联系时,它很有用。 所有开发的功能都是在漫长的实施阶段之后立即交付的。
测试人员和开发人员一起工作 测试人员与开发人员分开工作
在每个冲刺结束时,执行用户接受 用户接受度是 执行 在项目结束时。
需要与开发人员密切沟通,共同分析需求、规划 开发人员不参与需求和规划过程。通常,测试和编码之间存在时间延迟

还检查: - 敏捷与瀑布:了解方法论之间的区别

敏捷过程

检查以下内容 敏捷方法 快速交付成功系统的流程。

敏捷过程模型
敏捷过程模型

有各种 敏捷方法 存在于敏捷测试中,如下所列:

争球

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

Scrum 方法
Scrum 方法
  • Scrum Master
    • Scrum Master 负责组建团队、召开冲刺会议并消除进展障碍
  • 产品所有者
    • 产品负责人创建产品待办事项,确定待办事项的优先级,并负责每次迭代的功能交付
  • Scrum团队
    • 团队管理自己的工作并组织工作完成冲刺或周期

产品积压

这是一个存储库,其中跟踪需求,并详细说明每个版本要完成的需求(用户故事)数量。它应该由产品负责人维护并确定优先级,并且应该分发给 Scrum 团队。团队还可以请求添加、修改或删除新的需求

Scrum 实践

具体做法如下:

Scrum 实践
Scrum 实践

Scrum 方法的流程:

工艺流程 Scrum 测试 如下:

  • Scrum 的每次迭代被称为 Sprint
  • 产品待办事项是一个列表,其中输入所有详细信息以获得最终产品
  • 在每个 Sprint,选择产品待办事项中的顶级用户故事并将其转化为 Sprint 积压
  • 团队致力于定义的冲刺待办事项列表
  • 团队检查日常工作
  • 在冲刺结束时,团队交付产品功能

极限编程 (XP)

当客户的需求或要求不断变化或不确定系统的功能时,极限编程技术非常有用。它提倡在较短的开发周期内频繁“发布”产品,这从本质上提高了系统的生产力,并引入了一个检查点,可以轻松实现任何客户需求。 XP 开发的软件使客户始终保持在目标之中。

极限编程
极限编程

业务需求以故事的形式收集。所有这些故事都存储在一个叫做停车场的地方。

在这种类型的方法中,发布基于称为“迭代”的较短周期,周期跨度为 14 天。每次迭代都包括编码、单元测试和系统测试等阶段,其中每个阶段都会在应用程序中构建一些次要或主要功能。

极限编程阶段:

Agile XP 方法有 6 个阶段,解释如下:

计划

  • 利益相关者和发起人的识别
  • 基础设施要求
  • 安全性 相关信息及收集
  • 服务水平协议及其条件

分析

  • 捕捉停车场里的故事
  • 优先考虑停车场的故事
  • 清理故事以进行估计
  • 定义迭代SPAN(时间)
  • 开发和 QA 团队的资源规划

工艺设计

  • 任务分解
  • 每个任务的测试场景准备
  • 回归自动化框架

执行

  • 编码
  • 执行手动测试场景
  • 缺陷报告生成
  • 将手动回归测试用例转换为自动化回归测试用例
  • 中期迭代审查
  • 迭代结束审核

包装

  • 小版本发布
  • 演示和评论
  • 根据需要开发新故事
  • 基于迭代结束评审意见的流程改进

关闭

  • 试点发射
  • 培训
  • 生产启动
  • SLA保证保证
  • Rev查看 SOA 策略
  • 生产支持

有两个故事板可用于跟踪日常工作,下面列出了这些故事板以供参考。

  • 故事纸板
    • 这是一种传统的方式,以便笺的形式将所有故事收集在板上,以跟踪日常 XP 活动。由于此手动活动需要更多的精力和时间,因此最好切换到在线表格。
  • 在线故事板
    • 在线工具 Storyboard 可用于存储故事。 多个团队可以使用它 出于不同的目的。

水晶方法论

水晶方法论基于三个概念

  1. 租船: 此阶段涉及的各种活动包括创建开发团队、进行初步可行性分析、制定初步计划和微调开发方法
  2. 循环交付: 主要开发阶段由两个或多个交付周期组成,在此期间
    1. 团队更新并完善了发布计划
    2. 通过一个或多个程序测试集成迭代来实现需求的子集
    3. 集成产品交付给真实用户
    4. Rev项目计划和所采用的开发方法
  3. 包起来: 此阶段执行的活动是部署到用户环境中,执行部署后审查和反思。

动态软件开发方法 (DSDM)

DSDM 是一种 快速应用开发 (RAD)软件开发方法,并提供敏捷项目交付框架。DSDM 的重要方面是要求用户积极参与,并赋予团队决策权。频繁交付产品成为 DSDM 的积极重点。DSDM 中使用的技术包括

  1. 时间 Box博士开发的技术萃取的
  2. 莫斯科规则
  3. 模型

DSDM项目分为7个阶段

  1. 预项目
  2. 可行性研究
  3. 商业研究
  4. 功能模型迭代
  5. 设计和构建迭代
  6. 实施
  7. 项目后

功能驱动开发(FDD)

该方法专注于“设计和构建”功能。与软件工程中的其他敏捷方法不同,FDD 描述了非常具体和简短的工作阶段,必须针对每个功能单独完成。它包括领域演练、设计检查、促进构建、代码检查和设计。FDD 开发产品时始终遵循目标

  1. 领域对象建模
  2. 按功能开发
  3. 组件/类所有权
  4. 特色团队
  5. 检查
  6. 配置管理
  7. 常规构建
  8. 进展和结果的可见性

精益软件开发

精益软件开发方法基于“准时生产”原则。它的目的是提高软件开发速度并降低成本。精益开发可以概括为七个步骤。

  1. 消除浪费
  2. 强化学习
  3. 推迟承诺(尽可能晚地做出决定)
  4. 提前交货
  5. 赋予团队权力
  6. 建筑物 Integrity
  7. 整体优化

看板

看板 最初源于日语,意思是一张卡片,上面记录了产品在完成过程中每个阶段需要完成的所有信息。这种框架或方法在软件测试方法中被广泛采用,尤其是在敏捷概念中。

Scrum 与看板

争球 看板
在 Scrum 技术中,测试必须分解,以便可以在一个 sprint 内完成 没有规定特定的物品尺寸
规定优先产品待办事项列表 优先级是可选的
Scrum 团队致力于迭代的特定工作量 承诺是可选的
规定了燃尽图 没有规定特定的物品尺寸
在每个 sprint 之间,scrum 板都会重置 看板是持久的。它限制工作流状态中的项目数量
它无法将项目添加到正在进行的迭代中 只要容量可用,它就可以添加项目
WIP 间接受限 WIP直接有限
规定的时间盒迭代 时间盒迭代可选

还检查: - Kanban 与 Scrum:有什么区别?

敏捷指标

为有效使用敏捷而可以收集的指标有:

  • 阻力系数
    • 无助于冲刺目标的小时努力
    • 可以通过减少共享资源数量、减少非贡献工作量来改善阻力系数
    • 新的估计可以增加阻力系数的百分比-新的估计=(旧的估计+阻力系数)
  • 速度
    • 积压的数量(用户故事)转换为冲刺的可交付功能
  • 添加的单元测试数量
  • 完成每日构建所需的时间间隔
  • 在迭代或先前迭代中检测到的错误
  • 生产缺陷泄漏

每日Guru99新闻简报

通过立即获取最新、最重要的人工智能新闻报道来开始您的一天。