问题我是单元测试还是集成测试?我已经回答了,有点挑衅:做你的测试,让其他人花时间分类.
对我来说,各种级别的测试之间的区别在技术上是没有意义的:通常使用相同的工具,需要相同的技能,达到相同的目标:消除软件故障.与此同时,我可以理解大多数开发人员使用的传统工作流程需要这种区分.我对传统工作流程感到不安.
因此,我的问题旨在更好地理解对我来说是什么样的争议,以及收集关于各级测试之间的这种分离是否相关的各种观点.
我的意见错了吗?是否存在其他不强调这种分离的工作流程(可能是敏捷方法)?您对此主题的体验是什么?
精确度:我完全了解这些定义(对于那些没有定义的人,请参阅此问题).我想我不需要有关软件测试的课程.但如果您的答案需要,请随时提供一些背景知识.
性能通常是我将"单元"测试与"功能"测试分开的原因.
单元测试组应该尽可能快地执行,并且能够在每次编译后运行.
功能测试组可能需要几分钟才能执行并在签入之前执行,可能每天或每隔一天执行,具体取决于正在实施的功能.
如果将所有测试组合在一起,我就不会在签到之前进行任何测试,这会降低我的整体开发速度.
我必须同意@Alex B,因为在编写测试时需要区分单元测试和集成测试,以使单元测试尽可能快地运行,并且不再需要测试测试代码所需的依赖性. .您希望单元测试能够非常频繁地运行,并且"整合"越多 - 就像它们运行的越少.
为了使这更容易,单元测试通常(或应该)涉及模拟或伪造外部依赖.集成测试有意留下这些依赖关系,因为这是集成测试的重点.你需要模拟/伪造每一个外部依赖吗?我不一定说,如果模拟/伪造的成本很高并且返回的值很低,那么使用依赖性并不会显着增加测试的时间或复杂性.
尽管如此,我认为最好是务实而不是教条,但要认识到差异并避免混合,如果你的集成测试使得经常运行测试太昂贵了.