基础设施代码测试与交付策略解密
在基础设施代码的开发与管理过程中,测试和交付策略至关重要。它们能够确保代码的质量、稳定性,以及顺利部署到生产环境。下面将详细介绍相关的测试类型、交付方法以及如何选择合适的策略。
1. 识别有用的测试
在编写有价值的测试时,模块和配置的测试策略能为我们提供初始的指导。不同类型的代码需要不同类型的测试:
- 模块测试 :主要依赖单元测试、契约测试和集成测试。
- 配置测试 :则依赖单元测试、集成测试和端到端测试。
更新测试实际上是将系统中他人知晓但自己未知的知识(未知已知)转化为团队共有的知识(已知已知)。例如,团队成员可能知道数据库密码需为字母数字组合且长度限制为16个字符,但你可能在更新一个24字符的密码并部署失败后才知晓。新测试往往反映了团队应该了解和认可的孤立知识。
此外,我们不仅要添加测试,还需移除一些测试。比如,某个测试经常失败,无法提供有用信息或增加对系统的信心,就应将其移除,以清理测试套件并消除因测试不稳定导致的误报。同时,并非每个模块都需要契约测试,每个环境配置也并非都需要集成测试,要时刻问自己测试是否有价值以及运行是否可靠。
以下是一些测试相关的练习题及答案:
- 练习6.1 :新的负载均衡器模块版本破坏了DNS配置,队友将模块更新为输出私有IP地址而非公共IP地址。为帮助团队更好地记住该模块需要公共IP地址,应选择添加模块契约测试来验证模块同时输出私有和公共IP地址(选项B)。因为创建新模块(选项A)可能无法帮助团队记住特定模块必须输出特定变量;更新