基础设施测试的最佳实践与策略
自动化测试引入的时机
系统设计可能是添加测试的最大障碍。通常,团队会在重建或重新搭建基础设施的整体工作中引入自动化测试。例如,现在团队常常会投入大量精力,从传统的服务器管理模式迁移到基础设施即代码(Infrastructure as Code)模式,这往往是迁移到云平台项目的一部分。此时正是引入自动化测试的绝佳时机。如果项目是逐步交付的,团队也可以逐步添加测试。
测试金字塔
管理测试套件是一项具有挑战性的任务。我们希望测试套件运行迅速、易于维护,并能帮助我们快速找出故障原因。测试金字塔是一种用于思考如何平衡不同类型测试以实现这些目标的概念。
测试金字塔将范围更广的测试放在顶部,范围较窄的测试放在底部:
- 底层测试(单元测试) :验证非常小的组件,如测试一个类或极少数应用程序代码类、Chef 食谱、Puppet 清单等。这些测试运行速度极快,数量众多。其优点是能提供快速、具体的反馈。如果代码中的错误导致单元测试失败,测试会迅速运行并失败,我们能立即知道在代码的哪一部分查找错误。
- 顶层测试 :测试系统的大部分内容,验证各种组件、系统和服务是否正确集成。对于应用程序,这些测试通常与用户界面(UI)交互,模拟用户在应用程序中的操作流程。对于基础设施,它们可能测试端到端的服务请求。例如,如果服务目录包含为开发团队提供新的 Jira 实例的功能,测试可以执行完整的配置操作,并证明 Jira 实例可以正常运行。这些高级测试运行时间长,比底层单元测试更复杂。
- 中间层测试 :介于两者之间,验证
超级会员免费看
订阅专栏 解锁全文
5154

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



