我发现'集成测试'的概念令人困惑。似乎有不少解释和范围:
我开始将集成测试视为一个总括性术语(而不是在编程讲座中定义它,其中通常给出特定/严格的含义):
在Maven默认生命周期中,只有“测试”和“集成测试”阶段。这似乎将测试分为大致两类,并与这些假设一致。
现在有许多问题和答案正在寻找单元测试,功能测试,回归测试等之间的差异。但是,我正在寻找有关集成测试的更具体的答案:您如何对集成测试进行分类,以及您在其中包含哪些内容?另外,你是否将软件测试大致分为两类:单元测试(1个单元)与集成测试(2个以上单元)?
答案 0 :(得分:3)
计算中充满了重载的术语,这些术语与您交谈的任何程序员有轻微(有时不那么轻微)的不同含义。集成测试就是其中之一。
我倾向于赞成您对集成测试的解释,因为测试2个或更多单元插在一起。但这仍然相当模糊,因为我们可能对“单位”的定义有不同的定义。
我认为更重要的是,一组开发人员就集成测试的意义达成一致,而不是找到集成测试的真正定义。
答案 1 :(得分:3)
我的团队看到(使用你的话),集成测试作为覆盖
,没有别的。系统测试和验收测试我们认为是不同的家庭。
我们就此进行了一些冗长的讨论,以确保在我们讨论测试时我们都说同一种语言。
我并不强烈反对您定义为集成测试的内容,但我只是说,如果您所有与之合作的人都同意分类,那就太好了。
答案 2 :(得分:2)
嗯,您有单元测试,其精确定义各不相同,但肯定包含使用类似JUnit的工具定义的所有测试,并以与源代码相同的方式组织。如果对于任何源代码文件,您只能找到一个测试,那么您找到的就是单元测试。
然后进行系统测试,测试整个系统尽可能接近客户会看到它。
任何存在于这两者之间的差距的测试都是集成测试 - 既不与源代码同构也不代表最终用户体验。
这两个类别之间存在相当大的差距,这些差异在实践中差异很大。这个差距可能包含许多潜在有用的测试,但这些测试的性质自然会有很大差异。