基础设施自动化测试与变更管理管道实践
1. 组件重构与外部依赖管理
1.1 组件重构
在系统开发中,有时特定组件难以隔离,可能是因为与其他组件的依赖关系被硬编码,或者关系过于复杂难以拆分。在设计和构建系统时编写测试,而非事后编写,有助于改进设计。一个难以独立测试的组件往往是设计存在问题的表现,设计良好的系统应该具备松耦合的组件。
当遇到难以隔离的组件时,需要修复设计,这可能颇具难度,可能需要完全重写组件,替换库、工具和应用程序。重构是一种在重构系统内部设计过程中优先保证系统完全正常运行的方法。
1.2 外部依赖管理
依赖非自己团队管理的服务是常见情况,如 DNS、认证服务或电子邮件服务器等基础设施元素,可能由其他团队或外部供应商提供。这些外部服务会给自动化测试带来挑战,原因如下:
- 可能无法处理持续测试产生的负载,更不用说性能测试了。
- 可能存在可用性问题,影响自身测试,尤其是供应商或团队提供的测试实例。
- 可能存在成本或请求限制,不适合用于持续测试。
为解决这些问题,可以使用测试替身来替代外部服务进行大部分测试。测试套件应先使用测试替身运行测试,通过后再进行与外部服务的集成测试。这样,若集成系统测试失败,可确定是其他服务的问题或集成方式的问题。
同时,要确保在外部服务失败时能清晰识别问题。与第三方的集成,甚至自身服务之间的集成,都应实现检查和报告机制,通过监控和信息展示,使问题在所有环境中一目了然。很多团队会实施单独的测试和监控检查,报告与上游服务的连接情况。
1.3 测试代码管理
曾经有团队花费一周多时间排查间
超级会员免费看
订阅专栏 解锁全文
1405

被折叠的 条评论
为什么被折叠?



