欢迎来到 SQA,克里斯。
首先,关于术语,有许多术语用于描述不同类型的测试。每个人都以不同的方式使用它们。在某些情况下,这些术语具有合同或监管文件中定义的特定含义。通常,这些术语只是分配给个人(无论他们是否意识到)不一定同意的模糊概念的标签。当有人谈论“单元测试”或“集成测试”时,我会尝试询问这些术语对他们意味着什么,以便我们说同一种语言。无论如何,我假设您的问题不适用于在合同或监管文件中定义了特定测试过程的项目。
是的,如果您使用边界值分析(BVA) 进行单元测试,则等价划分(EP) 在更高级别的测试中就足够了。
我并不是要回避,但是您的集成测试应该是它们需要的任何东西。我认为单元测试是关于测试单个(也许是不可分割的)组件,而系统测试是关于确保系统作为一个整体工作。软件是组件的集合,但组件本身可能是其他组件的子组件。单元测试仅验证组件的行为是否符合开发人员的预期。它不能保证一个组件的行为方式与其他人假设的行为方式相同。集成测试是验证这些假设的机会。
将系统测试/集成测试/单元测试层次结构视为诊断过程的逆过程可能会有所帮助。当洗碗机维修工到我的洗碗机维修时,他开始通过与系统界面交互来诊断问题,即关上门,按下控制面板上的一些按钮,听洗碗机发出的声音,然后打开洗碗机倒过来看看盘子是不是湿的。之后,他将搜索范围缩小到一个特定的子程序集,该子程序集有自己的界面,不同于系统的界面。最终,他将问题缩小到特定部件,该部件与系统或子组件的接口不同。
集成测试是一种以比系统测试更容易诊断的方式识别问题的方法。这些问题更容易诊断,因为集成测试特定于子组件(具有较少的移动部件)而不是整个系统。因为它在子组件级别工作,所以集成测试可以访问未在系统级别公开的附加诊断信息。
从另一个方向来看,您的集成测试应该关注子组件的接口,而不是其组件的接口。如果您发现组件测试和子装配测试之间有很大的重叠,这可能意味着您实际上不需要测试子装配,或者相反,您需要以不同的方式定义您的子装配。