测试驱动开发(TDD)概述
测试驱动开发(TDD)是软件开发的一个伟大的方法。TDD只不过是在代码中添加一个功能之前开发测试。这种方法是基于这样的原则:我们应该写小代码,而不是写长代码。在TDD中,每当我们想在我们的代码中添加更多的功能时,我们首先要为它写一个测试。之后,我们用小的代码行组合添加新的功能,然后用我们的测试来测试它。这种方法有助于我们减少在生产层面遇到重大问题的风险。
极限编程的一个关键实践;它表明代码的开发或修改完全由单元测试来完成。 点击探索,测试驱动开发(TDD)工具
什么是测试驱动开发(TDD)?
测试驱动开发是一种方法,我们首先建立一个测试,然后测试失败,最后重构我们的代码以通过测试。
测试驱动开发(TDD)的方法
顾名思义,我们应该首先添加测试,然后再在代码中添加功能。现在我们的目标是通过在我们的程序中添加新的代码来使测试通过。所以我们重构我们的代码以通过书面测试。这使用了以下过程 -
- 编写一个失败的单元测试
- 使单元测试通过
- 重复进行
什么是测试驱动开发过程周期?
如流程所示
- 首先,为功能添加测试。
- 接下来,我们运行我们的测试,使其失败。
- 接下来,我们根据我们收到的错误编写代码。
- 然后,我们再次运行测试,看测试是失败还是通过。
- 然后重构代码,再按照这个过程进行。
测试驱动开发(TDD)的好处是什么?
现在问题来了,为什么要选择TDD方法。实行TDD会带来很多好处。其中一些好处列举如下
- 在TDD中,我们在添加任何新功能之前建立测试,这意味着在TDD方法中,我们的整个代码都在测试范围内。与没有测试覆盖的代码相比,这是TDD的一大好处。
- 在TDD中,在添加新功能之前应该有一个特定的目标。这意味着在添加任何新功能之前,应该清楚其结果。
- 在一个应用程序中,一个方法依赖于另一个。当我们在方法之前写测试时,意味着我们应该对方法之间的接口有清晰的想法。这使我们能够有效地将我们的方法与整个应用程序结合起来,并有助于使我们的应用程序模块化。
- 由于整个代码都被测试所覆盖,这意味着我们最终的应用程序将减少错误。这是TDD方法的一个很大的优势。
测试驱动开发提高了软件/程序的生产力和整体发展。 点击探索,使用JUnit进行Java的测试驱动开发
什么是验收测试驱动开发(ATDD)?
ATDD是验收测试驱动开发的简称。在这个过程中,用户、业务经理和开发人员都要参与。首先,他们讨论用户在他的产品中想要什么;然后业务经理为开发人员创建冲刺故事。之后,开发人员在开始项目之前写测试,然后开始为他们的产品编码。每个产品/软件都被划分为小模块,所以开发人员为第一个模块编码,然后进行测试,并看到它失败。如果测试通过,并且代码是按照用户要求工作的,它就会被转移到下一个用户故事;否则,就会对编码或程序进行一些修改,以使测试通过。这个过程被称为验收测试驱动的开发。
什么是行为驱动开发(BDD)?
行为驱动测试与测试驱动开发类似,在BDD中也是先写测试,然后再添加更多的代码以使测试通过。这两者的主要区别在于,BDD中的测试是以简单的描述性英语类型的语法来写的。BDD中的测试旨在解释应用程序的行为,也更注重用户。这些测试使用例子,以更好的方式澄清用户需求。
行为驱动开发(BDD)的特点是什么?
- 主要的变化是在思维过程中,从测试中分析转向行为中分析。
- 使用的是通用语言,因此很容易被解释。
- BDD方法是由商业价值驱动的。
- 它可以被看作是TDD的延伸;它使用自然语言,非技术性的利益相关者也很容易理解。
数据库测试可以在Web应用程序或桌面上进行,因为数据库可以在应用程序中使用。 点击探索关于,数据库单元测试
**行为驱动开发(BDD)的方法有哪些?
**
我们认为,测试和测试自动化TDD(测试驱动开发)的作用对于任何BDD计划的成功至关重要。测试人员必须编写测试来验证正在生成的产品或系统的行为。形成的测试结果对非技术用户来说也更容易阅读。为了使行为驱动开发获得成功,关键是要对那些能直接产生业务结果的行为进行分类和验证。在BDD环境下,开发人员必须确定哪些程序需要测试,哪些不需要测试,并了解测试失败的原因。与测试驱动开发一样,BDD也建议首先编写测试,并应描述产品的功能,以满足需求。