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