我正在写一篇简短的论文来阐述单元测试和TDD的好处。 我在结尾处包括一小段名为"超越TDD"的小节,我希望其中涵盖基于TDD,BDD和ATDD的几种不同方法。

我对BDD有点熟悉(我曾经在SpecFlow上玩过),但是在阅读了ATDD之后,听起来非常相似。 BDD和ATDD是否只是本质上相同过程的两个名称-用"普遍存在的语言"记录行为,生成自动验收测试套件,然后使验收测试通过?

stackoverflow.com/questions/4395469/tdd-and-bdd-differences和程序员的可能重复项。stackexchange.com/ questions / 135218 /

TDD和BDD之间的主要区别是什么?

感谢您提供的链接,但这些帖子涵盖了TDD和BDD之间的差异。 我很想知道ATTD和BDD的区别到底是什么-假设ATTD和TTD是不同的(据我所知)。

小的,用ATDD代替ATTD

尽管我总体上同意gishu的职位,但我在几个方面存在分歧。在IMHO部分中,他提出了BDD规范,作为Rachel Davies等人开发的用户故事规范:作为...我想要...这样。

给出了BDD规范...何时...然后...如

Given that the user is logged in, when the user clicks on x, then we should see Y.

这与条件,行动和期望有关,是BDD的核心。

正如gishu所建议的那样,ATDD是通过使用验收测试规范(作为可执行验收标准来实现)来推动开发的实践。 BDD形式的规范既不是必需的,也不是"最佳实践"。但是,实际上,它可以有效地将思想和语言集中在如何验证工作是否令人满意和满足要求上。

注意,BDD不是特别基于TDD。 ATDD宽松地基于TDD,因为它是在开发完成之前进行的测试。除此之外,它不专注于开发人员的工作,而是专注于项目的总体方向和验证。 ATDD与Story Mapping很好地结合在一起,因为它在编写更高级别的需求时在发现阶段发挥良好的作用,并且重要的是要知道"如何正确完成将如何知道?"

BDD(Dan North,Dave Astels,Dave Chelimsky等人)是一项使整个交付过程变得敏捷的运动。

也就是说,执行BDD的团队将采用ATDD的做法-即从可接受标准的可执行规范开始的过程。一个有效的图形是ATDD包裹了TDD的内部循环。

ATDD只是一种实践,即在开发之前先从可执行的接受标准开始,然后使用它来设计基础代码库的设计(与TDD相似,但层次更大一些)。

以下内容完全是一种观点,可能并不完全准确:

您可能正在执行ATDD,但仍未执行BDD:

例如我可能正在编写自动验收测试,但是不可读..无法传达意图。我可能正在编写一套全面的自动化"回归"测试套件,但没有告诉我系统做什么/如何工作。

BDD强烈强调语言和沟通。例如指定行为,而不是说

testXDoesY

BDD将其指定为

As a StakeHolder, X should do Y so that I can Z.

最后,我认为主要区别(可能发生但不一定)是ATDD可以变成一个全面的自动化套件,仅作为主动开发和回归的目标。 BDD会恳请您通过可执行示例进一步将问题转移到问题域和解决方案域之间的共享语言+实时文档,从而使将来的建设性对话成为可能

ATDD通常与行为驱动开发(BDD),故事测试驱动开发(SDD)和"示例规范"同义使用。与其他敏捷方法相比,ATDD的主要区别在于,它专注于使开发人员,测试人员,企业,产品所有者和其他利益相关者进行协作,并对需要实施的内容有清晰的了解。

我个人喜欢ATDD的概念,因为它与"左移范式"保持一致,在SDLV中应尽早开始开发和测试。从我们从SDLC开始就开始编写自动化测试时,它有助于为自动化带来更多可见性,进而有助于增强团队内部的协作。

请记住,ATDD并不是一种万能的解决方案。这是敏捷方法之一。还有其他多种方法可以帮助改善团队中的流程,但是我特别发现这种方法侧重于更好的验收测试,最重要的是强调协作。这是这种方法不可或缺的一部分。

我不会说太多。我的第一个假设是ATDD,BDD,示例规范,敏捷验收测试等都具有相同的含义。如果有人使用这些术语来表示不同的意思,那么他们会更好地解释这种情况下的区别。

C语言 行为驱动的验收测试,关于tdd:行为驱动开发(BDD)和验收测试驱动开发(ATDD)有什么区别?...相关推荐

  1. 优美的测试代码 - 行为驱动开发(BDD)

    可理解的代码非常重要,测试代码也是如此.在我看来,优秀的测试代码,必须做到一个重要的事情就是保持测试逻辑的清晰.一个完整的测试案例通常包括三个部分: 1. SetUp 2. Exercise 3. V ...

  2. BDD(行为驱动开发)

    BDD的重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识.它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法.行为驱动开发人员使用混合了领域中统一的语言的母语语言来描述他们的代 ...

  3. Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...

    <Android项目驱动式开发教程>第一章开发入门 1.4 项目框架分析 4 android:versionName="1.0" > 5 8 第9行代码andro ...

  4. ug二次开发环境可以用c语言吗,NX二次开发(1):开发环境配置

    最近小编开始走上NX的二次开发之路,驱动我学习NX二次开发主要是兴趣使然.对NX进行二次开发,首先需要配置好开发环境,下面跟着小编踏上二次开发的道路吧! 本文以NX11.0为例,介绍如何在VS2013 ...

  5. python是什么公司开发的软件-软件开发|什么是行为驱动的 Python?

    使用 Python behave 框架的行为驱动开发模式可以帮助你的团队更好的协作和测试自动化. 您是否听说过行为驱动开发behavior-driven development(BDD),并好奇这是个 ...

  6. 行为驱动开发BDD概要

    BDD脱胎于TDD 行为驱动开发(Behavior-Driven Development,简称BDD),是在测试驱动开发(Test-Driven Development,TDD)基础上发展而来的一种软 ...

  7. Linux SD卡驱动开发(二) —— SD 卡驱动分析HOST篇

    回顾一下前面的知识,MMC 子系统范围三个部分: HOST 部分是针对不同主机的驱动程序,这一部是驱动程序工程师需要根据自己的特点平台来完成的. CORE 部分: 这是整个MMC 的核心存,这部分完成 ...

  8. 【正点原子Linux连载】第六十七章 Linux USB驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. LabVIEW编程LabVIEW开发研华通用驱动XNavi 例程与相关资料

    LabVIEW编程LabVIEW开发研华通用驱动XNavi 例程与相关资料 研华通用驱动XNavi,XNavi支持DAQNavi的所有产品,提供驱动,并包括多种语言的例程,当然也包括LabVIEW.联 ...

  10. C++开发方向之windows驱动开发

    1.为什么要写这篇文章? 最近浏览招聘网站看到关于windows驱动开发的岗位,前几天一个C++客户端工作岗位,猎头也问我是否有了解windows内核. 所以,调研了一下C++的开发方向:window ...

最新文章

  1. 怎么将vue模板转换为html,vue中自定义html文件的模板
  2. android service intent-filter,如何在permission中加入intent-filter过滤器获取NotificationListenerService权限...
  3. 视频会议的分类和适用范围详解
  4. http协议报文体_HTTP协议详解
  5. spark源码编译记录
  6. PHP微信支付没有收到微信的回调怎么修改订单状态:主动查询
  7. 相机标定(二)深入理解四大坐标系与其变换关系
  8. 人工智能之语音识别技术【科普】
  9. ref out 关键字用法与区别详解
  10. 浅析busybox如何集成到openwrt
  11. 数据结构上机实验解题报告
  12. 国内地图服务对比分析
  13. 【BZOJ4049】【Cerc2014】 Mountainous landscape 【凸包】【线段树】
  14. maven jar坐标和doc引入中央创库没有的jar
  15. [人生故事] -- 花朵静悄悄地开放
  16. 将网站放到桌面快捷方式
  17. Driver/library version mismatch
  18. 华为6 有没有计算机,华为手机连电脑没有usb存储 华为手机连电脑不显示usb存储怎么回事 - 云骑士一键重装系统...
  19. C++算法之选择排序
  20. Tiny-DSOD: Lightweight Object Detection for Resource-Restricted Usages

热门文章

  1. druid中连接超时自动重试一次
  2. guava的hashing.md5.hashstring加密方法使用
  3. FFmpeg/opencv + C++ 实现直播拉流和直播推流(对视频帧进行处理)
  4. 【Java】面向对象笔记(中)(二)
  5. shell编程系列14--文本处理三剑客之awk的概述及常用方法总结
  6. springboot项目部署在阿里云上并且后台运行
  7. python程序的基本元素
  8. Redis Geospatial数据类型
  9. SEC起诉加密货币银行AriseBank
  10. 常用计算机折旧方法,【多选题】企业将一办公用计算机折旧方法从平均年限法调整为加速折旧法,且会计制度规定需采用追溯调整法,下列哪些步骤是必须的?...