专栏首页chenchenchenTDD测试驱动开发

TDD测试驱动开发

在各种敏捷开发实践中,测试驱动开发(TDD)一直处在最核心的位置。

TDD的核心在于严格规定开发节奏,一次把需求理清,一次做对、消除返工,不用调试就能获得反馈。

这是一个找虐的过程,他让你在走每一步前都必须先想好要达到什么效果,每一步都有充分的测试覆盖。

里边有三个关键:

第一步任务分解:测试先行,分离关注点,并用单元测试表达;

第二步单元测试:遵循 Given-When-Then 三段式,符合极限编程原则;

第三步小步快走:此处的坑在于很多人容易一下写多,破坏TDD节奏。

但一旦会用,节省出的时间会远大于编写测试代码而产生的工作量总和。

你有没有想过为什么明明都知道有用,但我们就是不爱写单元测试?

很多人说需求急、没时间,就算想测试也找不到接缝。为啥呢?因为你写代码的时候压根就没想一会儿怎么测啊大哥。

那怎么办,后面交付压力还跟着呢。要不就先这样吧,先放着,等过两天有空了我再补。

基本功不过关不能全赖程序员,但凭本能开发+单元测试不到位,两个加起来就是天坑。

  • 对需求把握不准,写完PM不认;
  • 代码有没有坑不知道,3个月前写的代码一碰就虚;
  • 添加新功能就破坏旧功能,测出一堆bug加班修,bug越修越多; 以上循环,就会陷进无限返工、低效率的焦油坑。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL中的字段约束 null、not null、default、auto_increment

    在MySQL中,每个字段定义都包含附加约束或者修饰符,这些可以用来增加对所输入数据的约束。今天我们来看一下MySQL的字段约束:NULL和NOT NULL修饰符...

    chenchenchen
  • API网关

    假设你正在开发一个电商网站,那么这里会涉及到很多后端的微服务,比如会员、商品、推荐服务等等。

    chenchenchen
  • Jackson快速替换Fastjson,Cannot construct......cannot deserialize

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

    chenchenchen
  • 谷歌开源文本生成新方法 LaserTagger,直击 seq2seq 效率低、推理慢、控制差三大缺陷!

    因此,Google 提出了一种新型的文本生成模型 LaserTagger,该模型旨在解决 seq2seq 模型运行过程中的上述缺陷,可以预测将将源文本转换为目标...

    AI研习社
  • 不重启JVM,替换掉已经加载的类,偷天换日?

    在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:

    搜云库技术团队
  • 骚操作 | 不重启 JVM,替换掉已经加载的类,偷天换日?

    在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:

    芋道源码
  • 避坑指南 | 我非要把这个bug优雅的解决掉

    之前写过手把手教你编写一个operator在中间件容器化中的实践,以及自定义代码生成:

    我的小碗汤
  • OSG C++ 获取文件后缀 OSG修改文件后缀名

    在使用OSG开发时,可以使用OSG提供的接口快速实现文件后缀名的修改,而不用麻烦地自己去写C++代码。

    acoolgiser
  • 10件5G能实现但4G不能做的事

    一周前,工信部正式向中国电信、中国移动、中国联通、中国广电发放5G商用牌照,这表明中国正式进入了5G商用的阶段。一时间关于5G的讨论更加热烈,那么对于普通用户而...

    Spark学习技巧
  • 科普 | 硬核充电来咯!有关Blockcerts V3提案你应该知道的事(二)

    上期我们为大家介绍了 Open Badges 和 Blockcerts Schema 以及两者之间的区别,本期我们将继续连载翻译 Rebooting Web o...

    本体Ontology

扫码关注云+社区

领取腾讯云代金券