• TDD、BDD、ATDD都是什么、有什么区别?(下)


    《TDD、BDD、ATDD都是什么、有什么区别?(上)》一文中,探讨了TDD、BDD和ATDD的概念。虽然TDD、BDD和ATDD都是软件开发中使用的测试方法,但它们在方法和重点上有所不同。

     

    TDD、BDD和ATDD之间的主要区别在于关注点、抽象层级和协作。

    1、关注点

    TDD侧重于测试代码并确保它满足需求。BDD关注软件的行为,并确保它满足业务需求。ATDD关注于验收标准,并确保软件满足业务需求。

    2、抽象层级

    TDD专注于代码级别,并使用单元测试来验证代码的功能。BDD专注于功能级别,并使用场景来描述所需的行为。ATDD专注于验收标准,并使用验收测试来验证软件是否满足要求。

    3、协作

    TDD主要是一个以开发人员为中心的过程,包括编写测试和代码。BDD和ATDD涉及开发人员、测试人员和涉众之间的协作,以确保软件满足业务需求。

    虽然这三种方法有一些相似之处,但它们在方法、范围和目的上有所不同。

    1、范围

    TDD专注于代码的开发和验证其行为的测试。这个过程从编写一个失败的测试用例开始,然后编写通过测试所需的最低数量的代码,然后重构代码。TDD确保代码在发布之前经过彻底测试并满足要求。

    BDD将TDD的范围扩展到包括整个系统的行为。BDD关注的是系统的行为,而不是它的实现细节。BDD场景以一种称为Gherkin的特定格式编写,该格式使用Given When Then语法来描述系统行为的前提条件、操作和预期结果。这些场景作为系统的验收标准,确保团队正在构建正确的东西,并确保系统满足用户的需求。

    ATDD侧重于系统的验收标准。该团队合作以自动测试的形式定义系统的验收标准。测试以所有利益相关者都可以访问的特定格式编写,并使用Given When Then语法来描述系统的预期行为。ATDD测试是系统的验收标准,确保团队正在构建正确的东西,并确保系统满足用户的需求。

    2、术语

    TDD使用术语词汇表,并专注于代码的行为。TDD测试是由开发人员编写的,旨在确保代码的行为符合预期。TDD测试通常使用与测试代码相同的编程语言编写。

    BDD使用对业务友好的词汇表,并专注于系统的行为。BDD场景以一种称为Gherkin的特定格式编写,该格式使用Given When Then语法来描述系统行为的前提条件、操作和预期结果。BDD场景通常由业务分析师或产品所有者编写,他们对用户的需求和要求有深入的了解。

    ATDD使用对业务友好的词汇表,并专注于系统的验收标准。ATDD测试以所有利益相关者都可以访问的特定格式编写,并使用Given When Then语法来描述系统的预期行为。ATDD测试通常由对用户的需求和要求有深入了解的业务分析师或产品所有者编写。

    3、目的

    TDD的目的是确保代码在发布之前经过彻底测试并满足要求。TDD测试作为代码的规范,帮助开发人员在开发周期的早期发现bug和缺陷。

    BDD的目的是确保团队正在构建正确的东西,并且系统满足用户的需求。BDD场景作为系统的验收标准,确保团队正在构建正确的东西,并确保系统满足用户的需求。

    ATDD的目的是确保团队正在构建正确的东西,并且系统满足用户的需求。ATDD测试是系统的验收标准,确保团队正在构建正确的东西,并确保系统满足用户的需求。ATDD测试还推动开发过程,确保代码在发布前经过测试并符合验收标准。

    4、方法

    TDD遵循自上而下的软件开发方法。它首先编写一个测试用例,然后编写通过该测试的代码。重复该循环,直到满足所有要求。TDD鼓励开发人员编写可测试和可维护的代码,从而获得更高质量的产品。

    BDD遵循行为驱动的软件开发方法。它首先以场景的形式定义系统的期望行为,描述系统在不同情况下的行为。这些场景是用一种名为Gherkin的特定格式编写的,该格式使用Given When Then语法来描述系统行为的前提条件、操作和预期结果。BDD场景通常由业务分析师或产品所有者编写,他们对用户的需求和要求有深入的了解。

    ATDD遵循与BDD类似的方法,但侧重于系统的验收标准。该团队合作以自动测试的形式定义系统的验收标准。测试以所有利益相关者都可以访问的特定格式编写,并使用Given When Then语法来描述系统的预期行为。ATDD测试通常由对用户的需求和要求有深入了解的业务分析师或产品所有者编写。

    总结

    测试驱动开发(TDD)、行为驱动开发(BDD)和验收测试驱动开发都是近年来流行的软件开发方法。虽然这三种方法都旨在提高软件质量和减少缺陷,但它们的方法、范围和目的各不相同。

  • 相关阅读:
    Node_exporter主机探针部署
    Lombok常用方法及原理介绍
    div的并列和包含关系
    顶级“Redis 笔记”, 缓存雪崩 + 击穿 + 穿透 + 集群 + 分布式锁,NB 了
    aop-动态代理,cglib动态代理,面向切面编程,aop的实现方法
    CSS3新增特性(一)
    朴素,word,任何参考文献导入endnote
    【牛客刷题-SQL】SQL4 查询结果限制返回行数
    Spring Boot Actuator自定义监控集成到/health接口实战
    使用AWK进行文本处理
  • 原文地址:https://www.cnblogs.com/chenqiAaron/p/17942560