我正在与一个新团队一起工作,这个团队历史上没有做过任何单元测试。我的目标是团队最终采用TDD (测试驱动开发)作为他们的自然过程。但是由于TDD对于一个非单元测试团队来说是一个激进的思维转变,我想我应该从编写代码后的单元测试开始。
有没有人遇到过类似的情况?当团队还没有进行任何单元测试时,有什么有效的方法可以让团队适应TDD呢?在几个步骤中这样做有意义吗?还是我们应该一次跳进去面对所有的成长痛苦??
为了澄清起见,团队中没有人(除了我以外)有任何单元测试公开/经验。我们计划使用Visual中内置的单元测试功能。
发布于 2010-10-10 15:04:51
这是一个非常艰难的局面。我以前从未一事无成地到过TDD,但根据我的经验,让一个团队从没有单元测试到主动编写它们是一种非常“一步一步”的方法。
首先,让他们能够轻松地编写单元测试,并真正知道他们是什么以及他们的好处。对于我的团队来说,最好是为现有的bug编写单元测试。当前系统中的bug有两件事,您需要教人们如何编写好单元测试:
这为议员提供了非常具体的实践例子。他们可以在修复错误之前编写一个测试,这样它就失败了。然后,他们可以修复代码,使其通过,并修复错误。一旦他们对此感到满意,那么您就可以让他们在剩下的时间里编写单元测试,而无需预先编写代码,然后编写新的代码以使他们的测试通过。
我认为诀窍是给他们一些东西,在那里有明确的方法,前后条件。如果对方法的需求是模糊的,那么即使是经验丰富的TDD人员也很难确切地知道从哪里开始。一步一步,你就会到那儿的。祝好运!
发布于 2010-10-10 22:17:44
我设法说服我的整个公司改用TDD。这并不容易,但值得付出努力:代码的质量在转换之后提高了,现在没有人想象回到可怕的牛仔编码时代。
还有一些重要的问题:
发布于 2010-10-11 01:56:13
使用TDD的一种方法是首先编写集成测试。稍后介绍测试接缝和真正的单元测试。
编写代码后编写单元测试的问题是,代码可能不一定设计得很好以便于测试。您可能需要进行一些重构或重新设计来引入测试接缝。但是,如果您没有任何类型的测试覆盖范围,如何才能安全地重构或重新设计?
集成测试可以为您提供最初的覆盖率。每次出现回归或生产问题时,请在代码中修复它,并用测试覆盖该代码。一旦你有足够的安全网提供这样的测试,你可以引入单元测试更细粒度,孤立的组件和/或类的系统。
https://softwareengineering.stackexchange.com/questions/10849
复制相似问题