敏捷测试 - Scrum



Scrum 提倡全员参与,即每个团队成员都必须参与每个项目的活动。Scrum 团队是自组织的,对项目交付成果负责。决策权交给团队,从而能够在适当的时间采取适当的行动,而不会延误时间。这种方法也鼓励团队才能的充分利用,而不是局限于一项活动。测试人员也参与所有项目和开发活动,贡献他们在测试方面的专业知识。

整个团队共同完成测试策略、测试计划、测试规范、测试执行、测试评估和测试结果报告。

协作式用户故事创建

测试人员参与用户故事的创建。测试人员贡献他们对系统可能行为的想法。这有助于客户和/或最终用户理解真实环境中的系统,从而明确他们真正想要的结果。这导致更快地确定需求,并降低以后需求变更的可能性。

测试人员还会提出并与客户协商每个场景的验收标准。

测试人员有助于创建可测试的用户故事。

发布计划

发布计划是为整个项目制定的。但是,Scrum 框架涉及在执行 sprint 的过程中获得更多信息时的迭代决策。因此,项目开始时的发布计划会议不需要为整个项目制定详细的发布计划。它可以随着相关信息的出现而不断更新。

并非每个 sprint 结束都需要发布。发布可以在一组 sprint 之后进行。发布的主要标准是为客户提供业务价值。团队根据发布计划作为输入来决定 sprint 的长度。

发布计划是发布测试方法和测试计划的基础。测试人员估计测试工作量并计划发布测试。当发布计划发生变化时,测试人员必须处理这些变化,并考虑发布的更大范围,获得足够的测试基础。测试人员还提供所有 sprint 结束时所需的测试工作量。

Sprint 计划

Sprint 计划在每个 sprint 开始时进行。sprint backlog 从 product backlog 中挑选出要在该特定 sprint 中实施的用户故事创建。

测试人员应该:

  • 确定为 sprint 选择的用户故事的可测试性
  • 创建验收测试
  • 定义测试级别
  • 确定测试自动化

测试人员使用 sprint 中测试工作量和持续时间的估算值更新测试计划。这确保了在有限时间 sprint 中为所需测试提供时间,并对测试工作量负责。

测试分析

当 sprint 开始时,随着开发人员进行故事分析以进行设计和实现,测试人员会对 sprint backlog 中的故事进行测试分析。测试人员创建所需的测试用例——手动测试和自动化测试。

测试

Scrum 团队的所有成员都应该参与测试。

  • 开发人员在为用户故事开发代码时执行单元测试。单元测试在编写代码之前就在每个 sprint 中创建。单元测试用例源自低层设计规范。

  • 测试人员执行用户故事的功能和非功能特性。

  • 测试人员指导 Scrum 团队中的其他成员,利用他们在测试方面的专业知识,以便整个团队对产品质量承担集体责任。

  • 在 sprint 结束时,客户和/或最终用户进行用户验收测试并向 Scrum 团队提供反馈。这作为下一个 sprint 的输入。

  • 收集和维护测试结果。

自动化测试

Scrum 团队非常重视自动化测试。测试人员投入时间创建、执行、监控和维护自动化测试和结果。由于 Scrum 项目中随时可能发生变化,测试人员需要适应对已更改功能的测试以及相关的回归测试。自动化测试有助于管理与更改相关的测试工作量。所有级别的自动化测试有助于实现持续集成。自动化测试运行速度比手动测试快得多,而且无需额外的工作量。

手动测试更侧重于探索性测试、产品漏洞和缺陷预测。

测试活动的自动化

测试活动的自动化减少了重复工作的负担,并降低了成本。自动化

  • 测试数据生成
  • 测试数据加载
  • 构建部署到测试环境
  • 测试环境管理
  • 数据输出比较

回归测试

在一个 sprint 中,测试人员测试该 sprint 中新增/修改的代码。但是,测试人员还需要确保在早期 sprint 中开发和测试的代码也能与新代码一起工作。因此,回归测试在 Scrum 中非常重要。自动化回归测试在持续集成中运行。

配置管理

Scrum 项目使用使用自动化构建和测试框架的配置管理系统。这允许在将新代码检入配置管理系统时重复运行静态分析和单元测试。它还管理新代码与系统的持续集成。在持续集成期间运行自动化回归测试。

需要对手动测试用例、自动化测试、测试数据、测试计划、测试策略和其他测试工件进行版本控制,并确保相关的访问权限。这可以通过在配置管理系统中维护测试工件来实现。

敏捷测试实践

Scrum 团队中的测试人员可以遵循以下敏捷实践:

  • 结对编程 - 两名团队成员坐在一起协同工作。这两个人可以是两名测试人员,也可以是一名测试人员和一名开发人员。

  • 增量式测试设计 - 测试用例随着 sprint 的进行和用户故事的增加而逐步开发。

敏捷指标

在软件开发过程中,指标的收集和分析有助于改进流程,从而提高生产力、交付质量和客户满意度。在基于 Scrum 的开发中,这是可能的,测试人员必须注意他们需要的指标。

建议使用多个指标进行 Scrum 开发。重要的指标包括:

  • 成功 sprint 比率 - (成功 sprint 数量 / sprint 总数)* 100。成功 sprint 是团队能够完成其承诺的 sprint。

  • 速度 - 团队的速度基于团队在一个 sprint 中获得的故事点数。故事点是在估算期间计算的用户故事的度量。

  • 专注系数 - (速度 / 团队工作能力)/ 100。专注系数是团队的工作量中导致完成故事的百分比。

  • 估算准确性 - (估计工作量 / 实际工作量)/ 100。估算准确性是团队准确估算工作量的能力。

  • Sprint 燃尽图 - 剩余工作(以故事点或小时为单位)与理想情况下需要剩余的工作(根据估算)。

    • 如果更多,则意味着团队承担的工作超过了他们能够完成的工作。

    • 如果更少,则意味着团队没有准确地进行估算。

  • 缺陷数量 - 一个 sprint 中的缺陷数量。缺陷数量是软件中相对于 backlog 的缺陷数量。

  • 缺陷严重性 - 根据严重性,缺陷可以分为轻微、严重和严重级别。测试人员可以定义分类。

Sprint 回顾

在 Sprint 回顾中,所有团队成员都将参与。他们分享:

  • 进展顺利的事情
  • 指标
  • 改进的范围
  • 要应用的操作项
广告