2012-04-12 70 views
2

我一直在想“测试?我不需要任何怪异的测试!我没有它就好!”如果我已经有一个没有任何测试的庞大代码库,如何开始编写测试?

然后我的代码变长了。

现在我明白为什么编写测试很重要。我总是害怕一点点改变就会导致某些事情发生。我真的想开始写测试。但是代码库变得非常庞大,我真的不知所措。我不知道从哪里开始。其中大部分我甚至不记得我为什么要这样编写代码,所以如果我开始回去写测试,它将会持续下去。

如果我已经有一个大的代码库,有人可以提供关于如何开始编写测试的建议吗?

+0

你在传统的代码阵营。请参阅WELC书籍,通过测试进行小小的安全更改,保持承诺并希望最好。但它不会在任何地方接近TDD从起跑线的场景。 – Gishu 2012-04-13 06:43:53

+0

重复? http://stackoverflow.com/questions/6713645/building-a-test-suite-in-a-large-existing-java-code-base – Mathias 2012-04-13 17:49:30

回答

5

首先,我会推荐阅读the WELC book,这应该在您的情况下真的派上用场。

开始下次您触摸代码时,下一次您需要更改代码中的某些内容时,请先为其编写一个测试,然后继续编写有关必须更改,更新和修复所有内容的测试,或添加。这样一来,随着时间的推移,您将为所有正在改变的领域添加测试,并且在为其余代码编写测试看起来并不那么令人难以接受的时候,测试会得到一个点。

但是,我会重申一下,我将这本书链接到遗留代码将会非常有用的方面,因为它涉及了解决此问题方法的大量细节。

1

编写测试,特别是好的需要花费很多时间,有时它可能需要50%的开发时间/成本,有时甚至更多。我将首先为所有函数编写单元测试,并尝试尽可能多地获取语句覆盖范围。如果你不知道一个方法是如何工作的,那么它可能没有很好的文档记录和/或写法,并且无论如何你会更好地重写它。

这不是一个直接的问题的答案,但有一点忠告: 你真的应该花时间,现在来修复和清理你的代码,否则它会继续失控。通过编写更多的代码,代码不会变得更好,它只会变得更糟,如果你希望它变得更好,你必须返回并重写它。

+0

该行的代码+1通过编写更多的代码,代码不会变得更好”。我希望你不介意,我会借用它。 – Gishu 2012-04-13 06:53:15

+0

当然,我可能从我读过的书中得到它。随意引用它,有或没有归属=)。 – drew212 2012-04-13 07:25:55

相关问题