敏捷测试 - 方法论
敏捷是一种迭代开发方法,整个项目团队参与所有活动。通过客户和自组织团队之间的协作,需求随着迭代的进展而变化。由于编码和测试是交互且增量地完成的,因此在开发过程中,最终产品将具有高质量并确保客户的要求。
每次迭代都会产生集成的工作产品增量,并交付用于用户验收测试。由此获得的客户反馈将作为下一个/后续迭代的输入。
持续集成、持续质量
持续集成是敏捷开发成功的关键。经常集成,至少每天一次,以便您准备好在需要时发布。敏捷测试成为开发所有阶段的重要组成部分,确保产品的持续质量。参与项目的每个人的持续反馈增加了产品的质量。
在敏捷中,沟通是最重要的,并且在必要时接收客户的请求。这让客户感到满意,因为所有的输入都得到考虑,并且在整个开发过程中都可以获得工作质量的产品。
敏捷方法论
有多种支持敏捷开发的敏捷方法。敏捷方法论包括 -
Scrum
Scrum 是一种强调以团队为中心的敏捷开发方法。它提倡整个团队参与所有项目开发活动。
XP
极限编程以客户为中心,关注不断变化的需求。通过频繁的发布和客户反馈,最终产品的质量将满足客户在此过程中更加明确的要求。
水晶
Crystal以租船、循环交付和打包为基础。
特许包括组建开发团队、进行初步可行性分析、达成初步计划和开发方法。
具有两个或多个交付周期的循环交付侧重于开发阶段和最终集成产品交付。
在总结期间,将执行部署到用户环境、部署后审查和反思。
频分双工
功能驱动开发(FDD)涉及设计和构建功能。FDD与其他敏捷开发方法的区别在于,功能是在特定的、短的阶段中分别开发的。
DSDM
动态软件开发方法 (DSDM) 基于快速应用程序开发 (RAD) 并与敏捷框架保持一致。DSDM 专注于产品的频繁交付,让用户积极参与并授权团队快速做出决策。
精益软件开发
在精益软件开发中,重点是消除浪费并为客户提供价值。这会带来快速的发展和有价值的产品。
浪费包括部分完成的工作、不相关的工作、客户未使用的功能、缺陷等,这些都会增加交付的延迟。
精益原则是 -
- 消除浪费
- 强化学习
- 延迟承诺
- 赋予团队权力
- 快速交付
- 建立诚信
- 查看整体
看板
看板专注于管理工作,强调准时 (JIT) 交付,同时不会让团队成员超负荷。显示任务以供所有参与者查看,并供团队成员从队列中提取工作。
看板基于 -
- 看板(整个开发过程中的视觉和持久性)
- 在制品 (WIP) 限制
- 交货时间
敏捷测试方法
每个项目(无论是否敏捷)都明确定义了测试实践,以交付高质量的产品。传统的测试原则在敏捷测试中经常使用。其中之一是早期测试,重点是 -
编写测试用例来表达系统的Behave。
早期缺陷预防、检测和消除。
确保正确的测试类型在正确的时间运行并作为正确测试级别的一部分。
在我们讨论的所有敏捷方法中,敏捷测试本身就是一种方法。在所有方法中,测试用例都是在编码之前编写的。
在本教程中,我们将重点关注 Scrum 作为敏捷测试方法。
其他常用的敏捷测试方法是 -
测试驱动开发 (TDD) - 测试驱动开发 (TDD) 基于测试引导的编码。
验收测试驱动开发 (ATDD) - 验收测试驱动开发 (ATDD) 基于客户、开发人员和测试人员之间的沟通,并由预定义的验收标准和验收测试用例驱动。
Behave驱动开发(BDD) - 在Behave驱动开发(BDD)中,测试基于正在开发的软件的预期Behave。
敏捷测试生命周期
在 Scrum 中,测试活动包括 -
根据描述为测试用例的系统的预期Behave贡献用户故事
基于测试工作和缺陷的发布计划
基于用户故事和缺陷的冲刺计划
持续测试的冲刺执行
Sprint 完成后的回归测试
报告测试结果
自动化测试
测试是迭代的并且基于冲刺,如下图所示 -