📜  测试驱动开发(TDD)的优缺点

📅  最后修改于: 2021-08-24 04:33:00             🧑  作者: Mango

测试驱动开发(TDD):
测试驱动开发(TDD)也称为测试驱动设计。 TDD可能是一种软件开发方法,在此过程中,将对ASCII文本文件进行一次又一次的测试(单元测试)。

对于紧密结合在一起的三个活动而言,测试驱动的开发可能是一种平衡的方法,将三个活动紧密结合在一起:编码,测试(编写单元测试)和设计(重构)首先要纠正规范的目标,而不是首先要进行验证。换句话说,TDD可能是在遵循敏捷性原则编写功能代码之前了解并简化需求的明智方法。

TDD的优势:

  • 您只需编写所需的代码–
    遵循这些原则,当所有测试通过时,您必须防止编写生产代码。如果您的项目需要其他功能,则需要进行测试以推动该功能的实施。您编写的代码是最简单的代码。因此,真正需要使用产品中所有的最终代码来实现这些功能。
  • 更具模块化的设计–
    在TDD中,您一次要考虑一个微特征。而且,当您首先编写测试时,代码将自动变得易于检查。易于检查的代码具有清晰的界面。这导致了针对您的应用程序的模块化设计。
  • 易于维护–
    由于应用程序的不同部分彼此分离并且具有清晰的接口,因此代码变得更易于处理,因此您可以将微功能的实现与更好的实现互换,而不会影响另一个模块。您甚至可以保留测试并重写整个应用程序。所有测试通过后,您就完成了。
  • 易于重构–
    每个功能都经过全面测试。您不必担心会形成巨大的变化,因为如果所有测试仍然通过,那么一切都会好起来的。现在,这非常重要,因为您作为开发人员每天都在提高自己的技能。如果您在执行其他工作六个月后很可能打开了项目,那么您将对改进代码有很多想法。但是,您对所有各个部分以及它们组装在一起的方式的记忆不再新鲜。因此,进行更改通常很危险。借助整个测试套件,您可以轻松地改进代码,而不必担心会破坏您的应用程序。
  • 高测试覆盖率–
    每个功能都有一个测试。这会导致较高的测试覆盖率。它会增强您对代码的信心。
  • 测试记录代码–
    测试代码向您展示了应如何使用代码。因此,它记录了您的代码。测试代码是一个示例代码,显示了代码的功能以及必须使用的接口方式。
  • 调试更少–
    您每天有多少次浪费时间寻找讨厌的错误?您多久从Xcode复制一条错误消息并在网上查找它。

TDD的缺点:

  • 没有银弹–
    测试有助于发现错误,但找不到您只是在测试代码和实现代码中引入的错误。如果您不了解要解决的问题,编写测试很可能无济于事。
  • 过程缓慢–
    如果开始进行TDD,您会感觉到,您只需花很长时间进行简单的实现即可。在最终开始编写代码之前,您需要相信这些接口,编写测试代码并运行测试。
  • 团队的所有成员都必须做到这一点–
    由于TDD会影响代码的计划,因此建议团队中的所有成员都使用TDD或至少不使用TDD。此外,到目前为止,有时很难向管理人员证明TDD的合理性,因为他们常常会感到,如果开发人员编写的代码在产品中发现一半的时间无法找到自己,那么最新功能的实现将花费更长的时间。如果整个团队都同意单元测试的重要性,这将有所帮助。
  • 需求变化时必须保持测试–
    可能,针对TDD的最有力的论据是,由于代码必须完成,因此必须维护测试。每当需求发生变化时,您都希望更改代码和测试。但是您正在使用TDD。这表明您只需先更改测试,然后使测试通过即可。因此,实际上,这个缺点是与编写明显需要较长时间的代码时一样。y需要很长时间。