SpecFlow - 测试驱动开发

测试驱动开发也称为 TDD。它由以下步骤组成,需要逐一执行 −

步骤 1 − 创建测试。

步骤 2 − 验证测试是否失败。

如果测试通过,则创建第二个测试。

如果测试失败,则转到步骤 3。

步骤 3 − 修复测试以使其通过。

如果测试通过,则转到步骤 4。

如果测试失败,则跳至步骤 3。

步骤 4 −启动代码折射器并重复上述所有步骤,直到开发完成。

TDD 的好处

TDD 的好处如下 −

  • 开发人员需要理解需求,以了解场景的结果应该是什么以及如何测试它。

  • 只有当所有测试用例通过且代码重构完成后,模块的实现才算完成。因此,在将其移至下一个测试之前,应进行验证和重构。

  • 重构完成后,将运行单元测试套件。

  • 单元测试可用作实时文档。

  • 如果发现错误,则创建测试以获取错误的详细信息。脚本已更新,以通过测试。同时,还会执行其他测试,以确保修复不会破坏现有功能。

  • 开发人员可以在测试执行阶段随时参与设计决策并改进设计,以确保应用程序正常运行。这样做是为了提高产品的可维护性。

  • 开发人员可以放心进行任何修改。这是因为如果修改影响任何现有功能,则应通过执行测试来反映出来。这样可以快速解决错误。

  • 在连续运行测试时,所有先前的错误修复也都得到了验证,并且可以避免类似的错误。

  • 由于主要测试是在开发阶段进行的,因此交付前所需的测试时间很短。

TDD 的缺点

TDD 的缺点如下 −

  • 开发人员很难决定何时开始测试。

  • 开发人员对要测试的内容感到困惑。

  • 开发人员不知道是否涵盖了所有需求规范。

  • 开发人员不确定他们的代码是否增加了商业价值。

周围的神话TDD

关于 TDD 的误解如下−

误区

事实

TDD 只关注自动化测试。

TDD 是一种遵循测试优先方法的开发技术。

TDD 不包含设计。

TDD 根据需求进行彻底的研究和设计。设计在开发阶段完成。

TDD 仅用于单元测试。

TDD 也用于系统和集成测试。

TDD 不能用于正统的测试项目。

TDD 用于敏捷开发。但它也可以用于传统的测试项目。

TDD 被认为是一种工具。

TDD 是一种开发技术,在每次新的单元测试通过后,它与自动化套件结合在一起,每当代码发生修改和重构活动后,它就会运行自动化套件。