什么是测试驱动开发(TDD)?

2022/9/4 6:22:49

本文主要是介绍什么是测试驱动开发(TDD)?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

什么是测试驱动开发(TDD)?

自从我的软件工程之旅开始以来,我的脑海中就没有几个关键问题,特别是关于测试策略

  • 我是否编写了足够的测试,我的测试套件是否完全适合所有用户场景?
  • 我是否在编写高质量的测试,我的测试套件是否正确模拟了我的应用程序?
  • 其中最大的一个, 我只是想让我的测试套件通过吗?

让我详细说明最后一点,在传统设置中,当我们先编写代码然后对其进行测试时,其想法只是将一些测试与新编写的代码相关联。我的测试策略过去是由代码驱动的,例如在单元测试中,所有的模拟对象、服务、数据集、断言都像我的代码一样编写。本质上,代码被认为优于测试。

我需要考虑功能/代码和测试套件以及单独的实体来改变这种方法,然后我遇到了 测试驱动开发(TDD)。

什么是 TDD?

根据维基百科 , 测试驱动开发 ( TDD ) 是一个软件开发过程,依赖于在软件完全开发之前将软件需求转换为测试用例,并通过针对所有测试用例重复测试软件来跟踪所有软件开发。这与首先​​开发软件和稍后创建测试用例相反。

简单来说,TDD 是一种软件开发策略,其中应用程序中的每个新功能都由为其编写的测试用例套件驱动。测试套件是在实际功能之前编写的,它不仅确保了代码的正确性,而且间接地发展了应用程序的设计和架构。

实施 TDD:红绿重构周期

让我们考虑一个简单的例子,一个新的特性来实现对输入字段的验证,其中某些字符集是不允许的

第 1 步:在这个阶段它会失败——RED ​​​​​​​​
在这一步中,我们将针对我们即将实现的用户场景编写一个测试套件,在这一阶段,我们将编写一个测试套件,考虑到与它对应的生产代码已经存在。

果然测试失败了:​​​​​​​

第 2 步:代码可能很难看,但它可以工作! - 绿色

在这个阶段,我们将编写一个简单的解决方案,使测试通过,我们被允许违反最佳实践,甚至重复代码。​​​​​​​​​

第 3 步:提高效率和可读性——重构

在这个阶段,我们将通过重写和重构现有代码来展示我们的编程技能,同时确保所有测试保持绿色。

我的观点:

TDD 不是我们需要首先学习的框架/技术堆栈,而是我们可以在团队文化中采用的一种行为。

以下是我在接受 TDD 后的一些重要收获:

  1. 让事情变绿: 由于我总是在实际实施之前编写详尽的测试用例套件,因此我认为让事情变得绿色是一个挑战 **** 在执行的同时。
  2. 简单的代码,好的设计: TDD 可帮助您编写最少的代码,而不会出现未来代码,并始终保持精简和干净,因此有时也称为测试驱动设计。
  3. 很多问题: 写作 **** 测试最初会在用户故事的初始阶段提出很多问题,例如“我们返回的日期应该是什么格式?”、“我们应该考虑在不同的屏幕尺寸上运行应用程序吗?”、“我们应该返回一个数字还是一个字符串?”
  4. 文件: 在敏捷的工作方式中,需要满足交付时间表,因此编写详尽的测试套件往往会退居二线,采用 TDD 帮助我编写了高质量的测试用例,作为新加入团队的人的功能文档​​​​​​​​​​​

奖励:TDD 和配对

我们可以利用结对编程和 TDD 的潜力来进一步提高可交付成果的质量。这将确保在全面的测试用例集以及代码和设计质量方面的最佳输出。带有结对编程的 TDD 可以通过多种方式完成:

  • 一个编写测试,另一个编写代码以使这些测试通过。
  • 两者一起编写详尽的测试,然后编写相应的代码。
  • 一个人可以考虑整体设计(测试和代码),其他人可以同时实现它

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/11896/20380405



这篇关于什么是测试驱动开发(TDD)?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程