敏捷测试 - 概述
敏捷 是一种迭代开发方法,其中开发和测试活动是同时进行的。测试不是一个单独的阶段;编码和测试以交互和增量方式进行,从而产生符合客户要求的优质最终产品。此外,持续集成可尽早消除缺陷,从而节省时间、精力和成本。
敏捷宣言
敏捷宣言由软件开发团队于 2001 年发布,强调了开发团队、适应不断变化的需求和客户参与的重要性。
敏捷宣言是 −
我们正在通过实践和帮助他人来发现更好的软件开发方法。通过这项工作,我们开始重视−
- 个人和互动比流程和工具更重要。
- 可工作的软件比详尽的文档更重要。
- 客户协作比合同谈判更重要。
- 响应变化比遵循计划更重要。
也就是说,虽然右边的项目有价值,但我们更重视左边的项目。
什么是敏捷测试?
敏捷测试是一种遵循敏捷软件开发原则的软件测试实践。
敏捷测试涉及项目团队的所有成员,测试人员贡献了特殊的专业知识。测试不是一个单独的阶段,而是与所有开发阶段交织在一起,例如需求、设计和编码以及测试用例生成。测试在开发生命周期中同时进行。
此外,测试人员与跨职能团队成员一起参与整个开发生命周期,测试人员将能够根据客户要求构建具有更好设计和代码的软件。
敏捷测试涵盖所有测试级别和所有类型的测试。
敏捷测试与瀑布测试
在瀑布开发方法中,开发生命周期活动按顺序分阶段进行。因此,测试是一个单独的阶段,仅在开发阶段完成后才启动。
以下是敏捷测试和瀑布测试之间的主要区别 −
敏捷测试 | 瀑布测试 |
---|---|
测试不是一个单独的阶段,与开发同时进行。 | 测试是一个单独的阶段。所有级别和类型的测试只能在开发完成后开始。 |
测试人员和开发人员一起工作。 | 测试人员与开发人员分开工作。 |
测试人员参与提出需求。这有助于将需求映射到现实世界场景中的行为,并制定验收标准。此外,逻辑验收测试用例将与需求一起准备好。 | 测试人员可能不参与需求阶段。 |
验收测试在每次迭代后进行,并寻求客户反馈。 | 验收测试仅在项目结束时进行。 |
每次迭代都会完成自己的测试,因此每次发布新功能或逻辑时都可以实施回归测试。 | 回归测试只能在开发完成后实施。 |
编码和测试之间没有时间延迟。 | 编码和测试之间通常有时间延迟。 |
连续测试,重叠测试级别。 | 测试是一项计时活动,测试级别不能重叠。 |
测试是一种最佳实践。 | 测试经常被忽视。 |
敏捷测试原则
敏捷测试的原则是 −
测试推动项目向前发展 − 持续测试是确保持续进步的唯一方法。敏捷测试持续提供反馈,最终产品满足业务需求。
测试不是一个阶段 − 敏捷团队与开发团队一起测试,以确保在给定迭代期间实现的功能确实已完成。测试不会保留到以后的阶段。
每个人都测试 −在敏捷测试中,包括分析师、开发人员和测试人员在内的整个团队都会测试应用程序。每次迭代之后,甚至客户也会执行用户验收测试。
缩短反馈循环 − 在敏捷测试中,业务团队了解每次迭代的产品开发情况。他们参与每次迭代。持续的反馈缩短了反馈响应时间,因此修复它的成本更低。
保持代码清洁 − 缺陷在同一迭代中出现时得到修复。这可确保在开发的任何里程碑上代码都是干净的。
轻量级文档 − 敏捷测试人员不需要全面的测试文档, −
使用可重复使用的清单来建议测试。
关注测试的本质而不是偶然的细节。
使用轻量级文档样式/工具。
在章程中捕捉测试想法以进行探索性测试。
将文档用于多种用途。
利用一个测试工件进行手动和自动测试 − 相同的测试脚本工件可用于手动测试,并可作为自动测试的输入。这消除了对手动测试文档和等效的自动化测试脚本的要求。
"完成",而不仅仅是完成 −在 Agile 中,功能不是在开发之后完成的,而是在开发和测试之后完成的。
测试最后与测试驱动 − 测试用例与需求一起编写。因此,开发可以通过测试来驱动。这种方法称为测试驱动开发 (TDD) 和验收测试驱动开发 (ATDD)。这与瀑布测试的最后阶段测试形成对比。
敏捷测试活动
项目级别的敏捷测试活动包括 −
发布计划(测试计划)
对于每次迭代,
迭代期间的敏捷测试活动
回归测试
发布活动(测试相关)
迭代期间的敏捷测试活动包括 −
- 参与迭代计划
- 从测试的角度估计任务
- 使用功能编写测试用例描述
- 单元测试
- 集成测试
- 功能测试
- 缺陷修复
- 集成测试
- 验收测试
- 测试进度状态报告
- 缺陷跟踪