首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >TDD是否是一项测试任务?

TDD是否是一项测试任务?
EN

Stack Exchange QA用户
提问于 2021-11-20 02:55:39
回答 4查看 153关注 0票数 3

我在一个团队中工作,开发一个web应用程序前端(使用角)和后端(使用Java)。

经理和团队要求我负责TDD (因为我是一名测试自动化工程师),所以他们告诉我在开发人员开始编写新特性和重新运行这些测试之前,编写TDD场景并将它们与代码联系起来。

测试人员做TDD是正常的吗?

EN

回答 4

Stack Exchange QA用户

回答已采纳

发布于 2021-11-20 03:50:32

定义“正常”

更严重的是,在编写代码之前编写(失败)测试是TDD和BDD的本质。它意味着设计测试,然后是可测试代码。首先编写(失败)测试的结果是,它实际上改变了编写应用程序代码的方式,即可测试性。这将导致完全不同的代码。小方法只是这种方法结果的一个例子。尽管TDD意味着首先进行测试,但它通常意味着编写测试和代码,并在发现负面和边缘情况时在两者之间进行大量讨论。有两个不同的人(不是现场配对)在这将是非常缓慢的。

当另一个人(如自动化工程师)编写测试时,这通常是在给定的BDD形式下进行的。

在编写单元测试时,当您是不同角色的不同人员时,事先编写正确的测试是不实际的,因为在编写应用程序代码时,您会发现方法和负/边缘测试用例,并在编写解决方案时执行重构。以这种方式将测试和应用程序代码分离,将减缓过程,并导致质量较低的解决方案。

回到“正常”这个词。

这可能是不常见的,但使用正确的方法,如高级别的BDD,这是正确的方式。如果对你有用的话。但是,您将需要与开发人员进行大量的交互。你不一定要实施黄瓜。您可以指定给定、何时,然后在票据中供开发人员使用。我已经有效地做到了这一点,并发现它为他们提供了他们需要的规范。

外卖:

问:

  • 我们希望自动化工程师指定行为(声明性)或实现细节(命令式).,例如,“用户完成添加项表单”是声明性行为,当“用户单击完整项按钮和数据库并将其带到详细信息页”是命令式行为,即“什么”(命令)与“如何”(声明性)。
票数 2
EN

Stack Exchange QA用户

发布于 2021-11-20 03:50:23

那就没说重点了。

TDD是关于快速反馈的,所以开发人员编写一个检查,运行它,它失败,编写进行检查所需的最低限度的代码,再次运行检查,这一次它通过,继续写另一个检查,.

我想,除非你在一台电脑上工作并共享键盘,否则两个人不可能同步。

当然,你可以在一段时间内把它当作一个实验,然后评估它是如何为你工作的。我猜这不会有多大效果,您甚至可能在开发人员完成他的代码之后完成测试代码。很明显这根本不是TDD。

票数 1
EN

Stack Exchange QA用户

发布于 2021-11-20 04:02:16

就像其他人说的那样,这将是没有意义的。

正如肯特贝克在TDD按例中所说,TDD是关于代码设计的。通过逐步定义应用程序的使用情况,测试将驱动应用程序的体系结构.

最后,建议的情况将把您转变为一个低级别的软件架构师--可能效率不高,因为您将成为团队中每一个编码工作的瓶颈。

您可能需要考虑的两个备选方案是:

  • 行为驱动开发:您可能希望与团队的其他成员合作,定义描述软件工作的场景,并创建模拟用户与软件交互的自动化,使用这些模拟来驱动应用程序本身的开发。下面是应用程序API的设计,而不是它的体系结构。
  • 对编程:对于架构工作,您可以与开发人员并肩工作,与他们一起编写将驱动软件设计的测试,这样您就不是瓶颈,而是一个助手。您可以看到对编程这里的一些好处。
票数 1
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/49379

复制
相关文章
TDD测试驱动开发
TDD的核心在于严格规定开发节奏,一次把需求理清,一次做对、消除返工,不用调试就能获得反馈。
chenchenchen
2019/09/03
1K0
TDD测试驱动开发
测试驱动开发(TDD)入门
测试驱动开发,英文全称 Test-Driven Development(简称 TDD),是由Kent Beck 先生在极限编程(XP)中倡导的开发方法。以其倡导先写测试程序,然后编码实现其功能得名。
顾翔
2019/12/12
2.1K0
测试驱动开发(TDD)入门
TDD( 测试驱动开发) Overview
第一篇技术博客,希望有人支持,您的关注是我的动力... 本文主要是基于本人的开发经验,概叙一下TDD,也就是测试驱动开发。我比较喜欢用问题方式来写,语言水平有限 希望读者看得懂且有帮助 TDD这个东西 你一般用了之后会上瘾:) 它可能改变你以后的编程习惯 什么是TDD 故名思意就是用测试的方法驱动开发。简单说就是先写测试代码,再写开发代码,和传统的方式是反的。 为什么要用TDD 用TDD的方法可以使代码干净(代码重构的结果),测试覆盖率高(先写测试的结果),软件做集成测试的时候一般问题会比较少。 而且你敢改
麦克-堂
2018/04/12
1.4K0
【单元测试】--测试驱动开发(TDD)
测试驱动开发(Test-Driven Development,TDD)是一种软件开发方法,其核心思想是在编写实际代码之前,首先编写测试用例。TDD 的主要步骤如下:
喵叔
2023/10/22
6480
TDD测试驱动开发的基础
敏捷性和速度是赋予测试驱动开发运动力量的两个概念。但是什么是TDD,流程如何运作?
FunTester
2019/11/10
9170
TDD和自动化测试
TDD 是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。
Johns
2022/06/28
9940
TDD(测试驱动开发)死了吗?
很早之前,曾在网络上见到过 TDD 这 3 个大写的英文字母,它是 Test Driven Development 这三个单词的缩写,也就是“测试驱动开发”的意思——听起来很不错的一种理念。
沉默王二
2019/07/01
7870
TDD(测试驱动开发)死了吗?
为什么要做TDD测试驱动开发?
1. 我们在开发过程中经常会使用数据库字段, API接口字段(参数), 封装类参数不一致的情况,导致传参或取值错误.
louiezhou001
2021/09/29
6700
TDD(测试驱动开发)之一二事
测试驱动开发(Test-Driven Development),在极限编程中应用广泛,但测试驱动开发完全可以单独应用。 TDD的基本思路就是通过测试来推动整个开发的进行。而测试驱动开发技术并不只是单纯的测试工作。 优势 需求向来就是软件开发过程中感觉最不好明确描述、易变的东西。这里说的需求不只是指用户的需求,还包括对代码的使用需求。很多开发人员最害怕的就是后期还要修改某个类或者函数的接口进行修改或者扩展,为什么会发生这样的事情就是因为这部分代码的使用需求没有很好的描述。测试驱动开发就是通过编写测试用例,先
rectinajh
2018/05/17
7590
前端测试驱动开发模式(TDD)快速入门
测试驱动开发(Test-Driven Development)是一种软件开发的思维和方法,我的理解是它是一种开发的循环,先写测试代码,再用最小的代码实现这个测试,再继续写测试代码,继续用最小的代码实现。当实现所有的测试用例,代码也就完成了。
顾翔
2019/12/12
2.6K0
前端测试驱动开发模式(TDD)快速入门
​JS基础测试: 下列哪一项的返回值是5?
逻辑运算符用于测定变量或值之间的逻辑。除了常用的返回布尔值,也可以利用运算符的逻辑来获得我们想要的数字或枚举变量:
舒克
2019/08/09
1K0
TDD测试驱动开发的实践心得
笔者对此深以为然,但这并不是信口雌黃的结论,也不是因为谁说了就认定他是对的,这是基于笔者自己在TDD上的一些实践的经验得出来的结论。而且笔者关于TDD的一些细节,可能也与Robert C.Martin的看法并不一致,这一点后续笔者会再在专门阐述TDD的文章中再来说明。但整体上笔者对TDD是深信不疑的。
御剑
2021/06/21
7250
TDD测试驱动开发的实践心得
测试驱动开发TDD注意事项
测试驱动开发(Test-Driven Development,TDD)可以帮助我们更好地组织思路、提前预见潜在问题并提高代码质量。然而,在实际应用中,TDD并不总是适用于所有场景,特别是当需求和设计不够明确时。以下是一些建议,以帮助我们在开发过程中灵活地应用TDD:
运维开发王义杰
2023/08/16
1960
测试驱动开发TDD注意事项
Spring Boot下的TDD(测试驱动开发)
首先来看下TDD三原则吧: You are not allowed to write any production code unless it is to make a failing unit test pass. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures. You are not allowed to wri
ImportSource
2018/04/03
4.9K0
Spring Boot下的TDD(测试驱动开发)
测试驱动开发(TDD)及测试框架Mocha.js入门学习
宋凯伦
2018/01/04
2.4K0
测试驱动开发(TDD)及测试框架Mocha.js入门学习
.NET Core TDD 前传: 编写易于测试的代码 -- 缝
举个例子, 如果一辆汽车在产出后没完成测试, 那么没人敢去驾驶它. 代码也是一样的, 如果项目未能进行该做的测试, 那么客户就不敢去使用它, 即使使用了也会遇到“车祸”. 
solenovex
2018/08/01
4470
.NET Core TDD 前传: 编写易于测试的代码 -- 缝
ChatGPT 是 ENTJ,GPT4 竟是 INTJ?一项关于LLMs的MBTI测试
当前已经有不少针对大模型知识和推理等能力(如 [MMLU], [HellaSwag] )进行评判的方法,
zenRRan
2023/08/22
4300
ChatGPT 是 ENTJ,GPT4 竟是 INTJ?一项关于LLMs的MBTI测试
译:如何用Swift进行TDD(测试驱动开发)
如果你还没有用类似Swift的编译型语言进行过TDD,你可能想问:如果测试引用的对象不存在,你怎么进行代码编译,又怎么进行TDD呢? 相对于类似Swift的编译型语言,类似Ruby和JavaScript的解释型语言可能天生更适合TDD,因为你可以编写不存在的测试对象,并且不会产生编译错误。 所以该如何用编译型语言进行TDD? 你可以直接编写测试代码,放任它编译失败。如果你把“编译失败”当作解释型语言的测试失败,就简单多了。失败就是失败,无论是由于编译器还是你的测试。 为了说明这一点,我们对Project类进
rectinajh
2018/05/17
1.2K0
“TDD 就是死亡”?我要为单元测试辩护
作者 | Guilherme Ferreira 译者 | 马可薇 策划 | 丁晓昀 在 2014 年的时候,David Heinemeier Hansson 在软件开发界引起了轩然大波。他在 RailsConf 的台上公然宣布“TDD 就是死亡”。 这是个大胆的举动,但他也成为了很多不满于测试的人所寻找的领头人。很多人选择了跟随,开发者们就此分成了两个阵营。 当时所掀起的新浪潮一路带我们到了今天,单元测试不再重要,集成测试占据上风。Mike Cohn 所提出的著名测试金字塔如今被重塑为菱形形状。推
深度学习与Python
2023/03/29
2910
“TDD 就是死亡”?我要为单元测试辩护
究竟该如何进行测试驱动开发(TDD)?
前两天,一个微信好友,也是我《Rust 第一课》的读者,就我课程中这段话跟我讨论了几句 TDD(Test Driven Development):
tyrchen
2022/03/29
1.4K0
究竟该如何进行测试驱动开发(TDD)?

相似问题

依赖注入是否适用于TDD?

20

编写TDD测试用例的最佳方法是什么?我能通过JMeter实现TDD吗?

20

为什么在TDD开始时测试总是失败?

20

您能使用Azure DevOps测试计划来发现TDD单元测试吗?

10

是否有任何工具来确定测试是否是片状的?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文