跳到主要内容

保存的帖子

TDD被认为有害?

Dave Nicolette |龙头
戴夫尼科尔特 高级顾问
阅读: TDD被认为有害?

TDD.

警告:蛇鲨警觉。

我最近读过一些东西 - 可能已经在某处迈出了社交媒体,但我并不记得是关于测试驱动的开发(TDD)造成软件开发团队允许缺陷进入其产品的故事。

有问题的特征是资金转移运作。客户可以使用申请将资金从一个帐户移动到另一个帐户。

事实是,客户可能会尝试从同一帐户转移资金。申请不应该允许这一点。然而,有可能在生产中进行。

我有一种感觉,我错过了故事的一部分。从同一账户转移资金会导致相同的平衡,不是吗?浪费的运动,也许,但否则难以灾难性的。所以也许比我记得的故事更多。当然,在那里必须更多。也许有资金转移费或其他东西。

幸运的是,缺陷的细节不是这篇文章的重点。

分享故事的人认为缺陷的原因是TDD。您看,在单位级别没有这样的情况。因此,从未在该级别检查过。显然,它也没有在集成或功能水平上进行检查。因此,TDD不起作用。

他们没有“TDD错误”,因为他们小心翼翼地遵循红绿重构模式。好吧,大多数时候,无论如何。至少,当有必要的时候。远离极端没有任何意义。所以,它一定是TDD因此这导致了缺陷。那只是基本的逻辑,对吗?

我没有机会和团队交谈,所以我不能问他们:你们用什么方法来阐明想要的功能?你有使用实例说明吗?您是否在某种设计研讨会上与关键涉众讨论过功能?你用过黑帮编程吗?结对编程吗?三个朋友吗?一个正式的Backlog细化车间?那么特性映射或故事映射呢?你是否合作建立了一个矩阵,包含不同的可能输入和预期输出?您是否有一个专业的业务分析人员与团队一起审查规范?亚博vip9通道

在整个开发过程中,都有很多方法来检查和仔细检查要求,频繁频繁。如果他们明确地缩小了TDD的原因,那么它就不言而喻,他们至少有一个或两个这些东西,或者等同于某种东西。

让我们说“要求”忽略了这种情况。团队是否包括任何专业的软件测试人员?他们本来已经注意到了任何缺少的边缘案例。这对测试人员来说是非常基本的东西。当他们第一次开始推理一个特征时,他们倾向于立即想到这样的案例。

让我们说团队中没有测试专家。团队中的任何人都在自己的生命中使用银行申请吗?如果是这样,他们可能会有所了解资金转移应该做的是,甚至从产品所有者或商业分析师缺乏具体的“要求”。亚博vip9通道他们会说,“嘿,怎么样......?”但显然没有人这样做。所以我想团队中没有人使用银行系统。他们支付现金或比特币的一切。也许这是一个千禧一代的事情。

在我看来,程序员在设计Microtests推动代码的正常过程中,程序员将偶然发现这种情况。示例1:帐户a帐户b,足够平衡。示例2:帐户A为帐户B,平衡不足。考试 - “嘿,怎么样......?”

漂亮的程序员常规场景,特别是当使用类似配对和溺爱的实践时。即使在独奏工作时也仍然是漂亮的常规。当您设计足够细粒度的Microtist示例时,边缘案例在您身上跳出出来。当然,程序员经常设计“单位”测试,这些测试太大,无法让他们看到森林的树木,对吧?

朋友,这种东西变老了。请停下指责你的工具为了你取得的成果。

下一个>敏捷工业综合体和迈克科尔米勒举行敏捷实践

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*