什么是单元测试,集成测试,烟雾测试,回归测试?
什么是单元测试,集成测试,烟雾测试,回归测试,它们之间有什么区别? 我可以为他们每个人使用哪些工具?
例如,我使用JUnit和NUnit进行单元测试和集成测试。 是否有任何烟雾测试或回归测试工具?
单元测试 :指定并测试一个类的单一方法的合同的一个点。 这应该有一个非常狭窄和明确的范围。 对外部世界的复杂依赖和交互被扼杀或嘲弄。
集成测试 :测试多个子系统的正确互操作。 这里有整个频谱,从测试两个类别之间的整合到测试与生产环境的整合。
烟雾测试(aka Sanity check) :一个简单的集成测试,我们只需检查被测试系统何时被调用就能正常返回并且不会爆炸。 这与电子产品类比,在开启电路时首先进行测试:如果它抽烟,那很糟糕。
回归测试 :修正错误时编写的测试。 它确保这个特定的错误不会再发生。 全名是“非回归测试”。 它也可以是在更改应用程序之前进行的测试,以确保应用程序提供相同的结果。
对此,我将补充:
验收测试 :测试功能或用例是否正确实施。 它与集成测试类似,但重点关注用例而不是涉及的组件。
系统测试 :将系统测试为黑匣子。 在测试过程中,其他系统上的依赖往往被嘲弄或扼杀(否则它将更多地是集成测试)。
飞行前检查 :在类似生产环境中重复进行的测试,以减轻“建立在我的机器上”症状。 通常这是通过在类似环境的生产环境中进行验收或抽烟测试来实现的
PS:人们声称烟雾测试来源于管道系统中烟气在连接到供水系统之前被泵入管道系统。 如果冒出任何烟雾,管道没有正确密封。 这在历史上可能更准确,但我觉得它不那么有趣。
每个人的定义都会略有不同,并且常常存在灰色地带。 然而:
上一篇: What is Unit test, Integration Test, Smoke test, Regression Test?