我刚与我的首席开发人员进行过对话,他们不同意单元测试是必要或重要的.在他看来,具有足够高的代码覆盖率的功能测试应该足够,因为任何内部重构(接口改变等)都不会导致需要重写或重新检查测试.
我尝试了解释,但没有走得太远,并认为你们可以做得更好.;-)所以......
对功能测试不提供的单元测试代码有什么好的理由?如果您拥有所有功能测试,会有什么危险?
编辑#1感谢所有的好答案.我想通过功能测试补充一点,我并不仅仅意味着对整个产品进行测试,而是对产品中的模块进行测试,而不是在必要时进行模拟的单元测试的低级别等等.另请注意我们的功能测试是自动的,并且持续运行,但它们只需要比单元测试更长的时间(这是单元测试的一大优势).
我喜欢砖与房子的例子.我想我的主要开发人员说的是测试房子的墙壁就足够了,你不需要测试个别砖...... :-)
在我的头顶
单元测试可以不费力地重复.一次编写,运行数千次,无需人工操作,反馈速度比功能测试快得多
单元测试测试小单元,因此立即指向发生错误的正确"扇区".功能测试指出错误,但它们可能由大量模块引起,即使在合作中也是如此.
我几乎不把界面改为"内部重构".接口更改往往会破坏大量代码,并且(在我看来)强制新的测试循环而不是没有.
单元测试用于开发人员查看代码失败的位置
功能测试是为了让企业查看代码是否符合他们的要求
单元测试用于开发人员查看代码失败的位置
功能测试是为了让企业查看代码是否符合他们的要求
单元测试正在检查您是否正确制造了砖块
功能测试是检查房子是否满足客户的需求.
它们是不同的东西,但如果前者已经实施,后者会更容易.