我一直在想“测试?我不需要任何怪异的测试!我没有它就好!”如果我已经有一个没有任何测试的庞大代码库,如何开始编写测试?
然后我的代码变长了。
现在我明白为什么编写测试很重要。我总是害怕一点点改变就会导致某些事情发生。我真的想开始写测试。但是代码库变得非常庞大,我真的不知所措。我不知道从哪里开始。其中大部分我甚至不记得我为什么要这样编写代码,所以如果我开始回去写测试,它将会持续下去。
如果我已经有一个大的代码库,有人可以提供关于如何开始编写测试的建议吗?
我一直在想“测试?我不需要任何怪异的测试!我没有它就好!”如果我已经有一个没有任何测试的庞大代码库,如何开始编写测试?
然后我的代码变长了。
现在我明白为什么编写测试很重要。我总是害怕一点点改变就会导致某些事情发生。我真的想开始写测试。但是代码库变得非常庞大,我真的不知所措。我不知道从哪里开始。其中大部分我甚至不记得我为什么要这样编写代码,所以如果我开始回去写测试,它将会持续下去。
如果我已经有一个大的代码库,有人可以提供关于如何开始编写测试的建议吗?
首先,我会推荐阅读the WELC book,这应该在您的情况下真的派上用场。
开始下次您触摸代码时,下一次您需要更改代码中的某些内容时,请先为其编写一个测试,然后继续编写有关必须更改,更新和修复所有内容的测试,或添加。这样一来,随着时间的推移,您将为所有正在改变的领域添加测试,并且在为其余代码编写测试看起来并不那么令人难以接受的时候,测试会得到一个点。
但是,我会重申一下,我将这本书链接到遗留代码将会非常有用的方面,因为它涉及了解决此问题方法的大量细节。
编写测试,特别是好的需要花费很多时间,有时它可能需要50%的开发时间/成本,有时甚至更多。我将首先为所有函数编写单元测试,并尝试尽可能多地获取语句覆盖范围。如果你不知道一个方法是如何工作的,那么它可能没有很好的文档记录和/或写法,并且无论如何你会更好地重写它。
这不是一个直接的问题的答案,但有一点忠告: 你真的应该花时间,现在来修复和清理你的代码,否则它会继续失控。通过编写更多的代码,代码不会变得更好,它只会变得更糟,如果你希望它变得更好,你必须返回并重写它。
你在传统的代码阵营。请参阅WELC书籍,通过测试进行小小的安全更改,保持承诺并希望最好。但它不会在任何地方接近TDD从起跑线的场景。 – Gishu 2012-04-13 06:43:53
重复? http://stackoverflow.com/questions/6713645/building-a-test-suite-in-a-large-existing-java-code-base – Mathias 2012-04-13 17:49:30