自动检测无法失败的测试的方法,检入以获得最小的代码覆盖率?

时间:2008-09-19 20:30:50

标签: testing build-automation

我有一个开发人员,通过编写永不失败的测试来解决我们的代码覆盖问题。

代码只是残暴,但测试从未捕获它,因为它们断言(true)。

我进行了代码审核,但我不能让所有人都为他们工作。你如何让这样的人有动力制作好的软件?

是否有用于检测不会失败的测试的构建插件?

C#,mbUnit测试。

8 个答案:

答案 0 :(得分:3)

真正的动机来自内心。有些人有时会在没有其他原因的情况下有机会对系统进行游戏。其他人这样做只是因为他们是黑客。

那就是说,假设你的经理,与开发者进行“来耶稣会”。如果仍然不起作用,总会有门。

如果你不是经理,那就把它拿出来吧。

答案 1 :(得分:1)

我想你在那里几乎已经回答了这个问题。如果你有人为你或你工作(你不清楚你是不是这个开发经理)那么如果他们没有正确地完成工作那么肯定有一些程序可以让这个人明白他们没有按照可接受的标准生产工作。

开发新手TDD?也许他们需要一些学费来编写好的测试等。否则他们需要启动屁股并向他们强调测试似乎并不比他/她生成的代码更重要。

哦,是的,在插件上,忘记了,只是检查你正在做的相同代码应该足够好。

答案 2 :(得分:0)

您应该真正指定您正在使用的语言/框架。

在最简单的情况下,我认为使用简单的assert(true) - ping来检测grep字符串应该很容易。

答案 3 :(得分:0)

您总是可以尝试使用垃圾进行测试运行以获取应用程序配置值。

任何通过的测试都是可疑的吗?

答案 4 :(得分:0)

而不是花时间寻找不会失败的测试,如何稍微扩展测试 - 使代码在很多方面失败。那会

  • 告诉他如何写出更好的测试
  • 强制他修复他的代码,并防止更多错误的代码被检入

你必须使用的一些有缺陷的代码是一个很好的起点 - 你必须确保它有效......

答案 5 :(得分:0)

使用他正在测试的界面并将其缩小为最简单的形式。换句话说,采用类/方法签名,只添加编译所需的代码。对此进行测试。问问他为什么他的测试在程序什么也没做的时候就过去了。

答案 6 :(得分:0)

由两个或更多已经受到测试感染的开发人员进行的代码审查可能是让有问题的开发人员看到自动化单元测试确实不那么困难,也不常见的最好方法。在每次审核中有两个受测试的感染开发者将强化质量单元测试对他的重要性。 另外,为他分配经过充分测试的其他开发人员代码的评论将有助于他学习如何进行单元测试。

你应该看看做一些mutation testing,以检测弱测试。 Nester,(.Net等效于Jester)是您可能会觉得有用的一种工具。

请告诉我们你的进展情况!

更新:我遇到了"Why do most developers not write unit tests, still?"并且认为在这里阅读也会很好。

答案 7 :(得分:0)

我认为你需要先尝试让他写一个失败的测试。试着让他养成这种习惯。通常新的单元测试很难写出它们。

还有一些工具可以帮助您“探索所有可能的代码路径”。我建议你看看, PEX 会产生自动化测试,而且很可能会破坏他的代码......虽然这可能不是最佳的灵魂,但是尝试提升共享的概念代码库。

让你的开发人员配对程序,当你在同一个函数上与其他人一起工作时,“懒得”会更加困难,并且会扩展代码所有权。你似乎没有这样做,因为你谈论“他的”代码。如果有2个人在同一个岗位上工作,那可以说明你可以完成多少工作,这会使质量提高很多。

单位测试也不是消除所有问题的圣杯......它们应该是你可以使用的工具之一。

您的代码涵盖要求是什么?