我发现“集成测试”的概念令人困惑。似乎有不少解释和范围:
- 功能/验收测试(例如使用 Selenium 测试用户界面)
- 一起测试软件的不同类/模块的集成(只需一起测试两个或多个类,而不需要它们做任何特殊的事情,比如 db 调用和其他东西)
- 独立测试系统配置功能/功能(数据库集成工作,依赖项正确注入,安全基类工作)
- 测试整个系统(运行使用数据库、Web 服务等的服务)
- 等等等等
我开始将集成测试视为一个总称(而不是在编程讨论中对其进行定义,其中通常赋予它特定/严格的含义):
- 集成测试包含:
- 单元集成测试(测试同一个包内不同类的集成,无需调用外部库)
- 功能/验收测试(例如,通过 Selenium 测试软件的最终输出)
- 系统测试(包括维基百科文章中列出的各种、更多技术和非功能相关的测试)
在 Maven 默认生命周期中,只有“测试”和“集成测试”阶段。这似乎将测试大致分为两类,并符合这些假设。
一般来说,有许多现有的问题和答案在寻找单元测试、功能测试、回归测试等之间的差异。但是,我正在寻找有关集成测试的更具体的答案:您如何对集成测试进行分类以及其中包含什么?另外,您是否避免像我所做的那样将软件测试大致分为两类:单元测试(1 个单元)与集成测试(2 个以上单元)?