敏捷测试 - 概述



敏捷是一种迭代式开发方法,其中开发和测试活动是并发进行的。测试不是一个单独的阶段;编码和测试是交互式和增量式进行的,从而产生满足客户需求的优质最终产品。此外,持续集成可以尽早发现缺陷,从而节省时间、精力和成本。

敏捷宣言

敏捷宣言由一个软件开发团队于2001年发布,强调了开发团队的重要性、适应变化的需求以及客户参与。

敏捷宣言是:

我们正在通过实践和帮助他人实践来发现更好的软件开发方法。通过这项工作,我们已了解到:

  • 个体和交互胜过流程和工具。
  • 可工作的软件胜过面面俱到的文档。
  • 客户合作胜过合同谈判。
  • 响应变化胜过遵循计划。

也就是说,尽管右项也具有价值,但我们更重视左项。

什么是敏捷测试?

敏捷测试是一种遵循敏捷软件开发原则的软件测试实践。

敏捷测试涉及项目团队的所有成员,测试人员贡献特殊的专业知识。测试不是一个单独的阶段,而是与所有开发阶段(如需求、设计和编码以及测试用例生成)交织在一起。测试贯穿整个软件开发生命周期。

此外,测试人员与跨职能团队成员一起参与整个软件开发生命周期,这使得测试人员能够根据客户需求,以更好的设计和代码来构建软件成为可能。

敏捷测试涵盖所有测试级别和所有类型的测试。

敏捷测试与瀑布测试

在瀑布式开发方法中,软件开发生命周期活动按顺序分阶段进行。因此,测试是一个单独的阶段,只有在开发阶段完成后才会开始。

以下是敏捷测试和瀑布测试差异的重点:

敏捷测试 瀑布测试
测试不是一个单独的阶段,与开发同时进行。 测试是一个单独的阶段。所有级别和类型的测试只有在开发完成后才能开始。
测试人员和开发人员一起工作。 测试人员与开发人员分开工作。
测试人员参与提出需求。这有助于将需求映射到现实世界场景中的行为,并制定验收标准。此外,逻辑验收测试用例将与需求一起准备。 测试人员可能不参与需求阶段。
每次迭代后进行验收测试,并征求客户反馈。 验收测试仅在项目结束时进行。
每次迭代都完成自己的测试,从而允许每次发布新功能或逻辑时都实施回归测试。 回归测试只能在开发完成后实施。
编码和测试之间没有时间延迟。 编码和测试之间通常有时间延迟。
持续测试,测试级别重叠。 测试是一个定时活动,测试级别不能重叠。
测试是一种最佳实践。 测试经常被忽视。

敏捷测试原则

敏捷测试的原则包括:

  • 测试推动项目前进 - 持续测试是确保持续进展的唯一途径。敏捷测试提供持续的反馈,最终产品满足业务需求。

  • 测试不是一个阶段 - 敏捷团队与开发团队一起进行测试,以确保在给定迭代期间实现的功能实际上已完成。测试不会留到以后阶段。

  • 每个人都进行测试 - 在敏捷测试中,整个团队,包括分析师、开发人员和测试人员,都会测试应用程序。每次迭代后,甚至客户也会进行用户验收测试。

  • 缩短反馈循环 - 在敏捷测试中,业务团队可以了解每次迭代的产品开发情况。他们参与每次迭代。持续反馈缩短了反馈响应时间,从而降低了修复成本。

  • 保持代码清洁 - 缺陷在同一迭代中提出后立即修复。这确保在任何开发里程碑中代码都是干净的。

  • 轻量级文档 - 敏捷测试人员使用轻量级文档,而不是全面的测试文档:

    • 使用可重用的清单来建议测试。

    • 关注测试的本质,而不是偶然的细节。

    • 使用轻量级文档样式/工具。

    • 在探索性测试的章程中捕捉测试想法。

    • 利用文档实现多重用途。

  • 利用一个测试工件进行手动和自动化测试 - 相同的测试脚本工件可用于手动测试,并作为自动化测试的输入。这消除了手动测试文档以及等效的自动化测试脚本的需求。

  • “真正完成”,而不仅仅是“完成” - 在敏捷中,一个功能在开发和测试完成后才算完成,而不仅仅是开发完成。

  • 测试最后 vs. 测试驱动 - 测试用例与需求一起编写。因此,开发可以由测试驱动。这种方法称为测试驱动开发 (TDD) 和验收测试驱动开发 (ATDD)。这与瀑布测试中测试作为最后阶段形成对比。

敏捷测试活动

项目级别的敏捷测试活动包括:

  • 发布计划(测试计划)

    • 对于每次迭代:

    • 迭代期间的敏捷测试活动

  • 回归测试

  • 发布活动(与测试相关)

迭代期间的敏捷测试活动包括:

  • 参与迭代计划
  • 从测试的角度估计任务
  • 使用功能描述编写测试用例
  • 单元测试
  • 集成测试
  • 功能测试
  • 缺陷修复
  • 集成测试
  • 验收测试
  • 测试进度状态报告
  • 缺陷跟踪
广告