敏捷测试 - 方法论



敏捷是一种迭代开发方法,整个项目团队参与所有活动。通过客户和自组织团队之间的协作,需求在迭代过程中不断演变。由于编码和测试在开发过程中交互式且增量地进行,因此最终产品将具有高质量并确保满足客户需求。

每次迭代都会产生一个集成的可工作产品增量,并交付进行用户验收测试。由此获得的客户反馈将作为下一个/后续迭代的输入。

Project Team

持续集成,持续质量

持续集成是敏捷开发成功的关键。频繁集成,至少每天集成一次,以便在需要时随时准备发布。敏捷中的测试成为所有开发阶段的重要组成部分,确保产品的持续质量。来自参与项目的所有人的持续反馈提高了产品的质量。

在敏捷中,沟通至关重要,并根据需要接收客户请求。这使客户满意,因为所有输入都被考虑在内,并且在整个开发过程中都提供高质量的产品。

敏捷方法

有几种敏捷方法支持敏捷开发。敏捷方法包括:

Scrum

Scrum 是一种敏捷开发方法,强调以团队为中心的方法。它提倡整个团队参与所有项目开发活动。

XP

极限编程以客户为中心,专注于不断变化的需求。通过频繁发布和客户反馈,最终产品将具有高质量,满足在过程中变得更清晰的客户需求。

Crystal

Crystal 基于制定章程、循环交付和收尾。

  • 制定章程包括组建开发团队、进行初步可行性分析、制定初始计划和开发方法。

  • 具有两个或多个交付周期的循环交付专注于开发阶段和最终集成产品的交付。

  • 在收尾阶段,执行部署到用户环境、部署后审查和反思。

FDD

特征驱动开发 (FDD) 涉及设计和构建特征。FDD 与其他敏捷开发方法的区别在于,特征是分别在特定且短的阶段中开发的。

DSDM

动态软件开发方法 (DSDM) 基于快速应用开发 (RAD) 并与敏捷框架保持一致。DSDM 专注于频繁交付产品,积极参与用户并授权团队快速做出决策。

精益软件开发

在精益软件开发中,重点在于消除浪费并为客户创造价值。这导致快速开发和有价值的产品。

浪费包括部分完成的工作、不相关的工作、客户不使用的功能、缺陷等,这些都会导致交付延迟。

精益原则是:

  • 消除浪费
  • 放大学习
  • 延迟承诺
  • 授权团队
  • 快速交付
  • 构建内在完整性
  • 看到全局

Kanban

Kanban 专注于管理工作,强调准时 (JIT) 交付,同时不给团队成员造成过载。任务会显示给所有参与者查看,团队成员可以从队列中提取工作。

Kanban 基于:

  • 看板(在整个开发过程中可视化且持久)
  • 在制品 (WIP) 限制
  • 交付周期

敏捷测试方法

对于每个项目,无论是否敏捷,测试实践都定义明确,以交付高质量的产品。传统测试原则经常用于敏捷测试。其中之一是早期测试,其重点在于:

  • 编写测试用例以表达系统的行为。

  • 尽早预防、检测和消除缺陷。

  • 确保在正确的时间以及作为正确测试级别的一部分运行正确的测试类型。

在我们讨论的所有敏捷方法中,敏捷测试本身就是一种方法。在所有方法中,测试用例都在编码之前编写。

在本教程中,我们将重点关注 Scrum 作为敏捷测试方法。

其他常用的敏捷测试方法包括:

  • 测试驱动开发 (TDD) - 测试驱动开发 (TDD) 基于由测试引导的编码。

  • 验收测试驱动开发 (ATDD) - 验收测试驱动开发 (ATDD) 基于客户、开发人员和测试人员之间的沟通,并由预定义的验收标准和验收测试用例驱动。

  • 行为驱动开发 (BDD) - 在行为驱动开发 (BDD) 中,测试基于正在开发的软件的预期行为。

敏捷测试生命周期

在 Scrum 中,测试活动包括:

  • 根据系统预期行为(以测试用例的形式描述)为用户故事做出贡献

  • 基于测试工作量和缺陷的发布计划

  • 基于用户故事和缺陷的冲刺计划

  • 持续测试的冲刺执行

  • 冲刺完成后进行回归测试

  • 报告测试结果

  • 自动化测试

测试是迭代的,并且基于冲刺,如下图所示:

Lifecycle
广告