对项目生命周期的影响
采用测试组件会在体系结构、实现和操作期间影响项目生命周期。图 3 显示了测试组件在项目进展过程中的发展。
图 3. 测试组件在项目生命周期过程中的发展
标识和布局
在处理某个解决方案时,架构师标识在系统可操作时必须进行测试的关键功能或方面。他们还设计对应的测试组件在整个系统中的布局。
实现
实现阶段按体系结构计划进行,以实现已标识的测试组件。实现将基于测试组件的实现方式,从而提供操作指导以测试特定的系统方面。
操作
在执行操作步骤之后,操作团队可以收集有关测试组件布局、实现和有效性的反馈,以检测系统故障和其他操作影响。将反馈与将来的体系结构整合,或同时维护同一项目的当前体系结构的将来迭代。
下面几个部分将讨论在架构、实现和操作集成测试组件时要考虑的因素。
体系结构注意事项
体系结构决策应该考虑到测试场景、将测试组件布局在何处以及要使用哪些技术。
测试场景
测试组件的布局应该能够覆盖不同系统组件之间的集成路径。与定义普通测试用例时的情况相似,这些场景应该处理不同的集成故障可能性,例如连接性问题。
验证企业解决方案的连接性非常重要,但是还可以使用相同的组件来验证其他方面。可以覆盖系统组件的某些功能或服务质量属性。取决于系统的性质及其服务级别协议,可以部分或全面地测试每个方面。例如,在 ATM 或销售点(point-of-sale,POS)解决方案中,最常见的故障类型来自于连接问题。相应地,相对于功能,可更多地将重点集中于网络和连接性。
组件布局
放在系统中的测试组件的数量高度依赖于宿主系统组件中的节点数量,以及物理部署单元的数量。要考虑的一个要点在于,测试组件应该与其余系统组件共处——在相同的运行时条件下——以便它们能够捕获可能导致某些系统组件误操作的故障。
技术
要使测试组件最有效,应该使用与用于实现系统组件的相同技术来实现它们。通过与其他系统组件共享系统资源,测试组件可以检测到系统故障。例如,如果是基于容器的技术,测试组件可以报告宿主容器停止提供的服务。
实现注意事项
在实现过程中,务必了解将需要的输入,以及用于支持该实现的工作。
必需的输入
用于实现测试组件的典型输入包括:
组件模型
指定测试组件的布局和实现技术,以测试系统的功能方面。
非功能需求
帮助确定要测试的目标服务质量属性,以确保遵从服务级别协议。
操作模型
产生测试组件的适当物理布局,以测试操作故障。
实现团队负责提供相关信息,以告诉操作团队如何在生产环境中验证系统可操作性。
在此情况下,拥有带跟踪矩阵 (traceability matrix) 的文档是非常有帮助的,该文档可表明什么功能、组件、连接或服务质量属性正在由使用哪些测试组件的哪些测试场景进行测试。
实现工作
测试组件是要实现的附加组件,因此它们将需要附加的设计和代码编写工作。实现团队还应该对操作团队进行培训,使他们了解对所实现的系统进行测试的步骤。