反模式:必须至少有两个关键元素来正式区分实际的反模式与简单的坏习惯、坏实践或坏想法:

一些重复的行为模式、过程或结构,最初看起来是有益的,但最终产生的坏结果多于有益的结果 一个重构的解决方案,清楚地记录,在实际实践中证明,并可重复。

为您在“野外”中见过太多次的TDD反模式投票。 James Carr的博客文章和testdrivendevelopment yahoogroup的相关讨论

如果你找到了一个“未命名的”…也要贴出来。请每个反模式一篇文章,让投票有意义。

我的既得利益是找到前n个子集,这样我就可以在不久的将来在午餐会上讨论它们。


当前回答

线打击

乍一看,测试覆盖了所有内容,代码覆盖率工具也100%地证实了这一点,但实际上测试只击中了代码,没有任何输出分析。

coverage-vs-reachable-code

其他回答

不恰当的共享装置——蒂姆·奥廷格 测试夹具中的几个测试用例甚至不使用或不需要设置/拆卸。部分原因是开发人员惰性地创建了一个新的测试夹具…向堆中添加一个测试用例更容易

无名的测试——尼克·佩洛

添加到错误跟踪器中以重现特定错误的测试,并且其作者认为不需要有自己的名称。不是增强现有的、缺乏的测试,而是创建一个名为testForBUG123的新测试。

两年后,当测试失败时,您可能需要首先尝试在错误跟踪器中找到bug -123,以弄清楚测试的意图。

慢戳

运行极其缓慢的单元测试。当开发人员开始测试时,他们有时间去洗手间,抽根烟,或者更糟的是,在一天结束回家之前开始测试。(来源:James Carr的帖子)

也就是那些不会像它们应该的那样频繁地运行的测试

二等公民——测试代码不像生产代码那样容易重构,包含大量重复的代码,使得维护测试变得困难。

图灵测试

由一些昂贵的工具自动生成的测试用例,该工具使用一些过于聪明的数据流分析,从被测类中收集了许多断言。让开发人员产生一种错误的信心,认为他们的代码经过了良好的测试,使他们免于设计和维护高质量测试的责任。如果机器可以为你编写测试,为什么它不能抽出手指来自己编写应用程序呢!

你好笨。——世界上最聪明的电脑卖给新学徒(出自Amiga漫画)。