基础设施测试:静态与动态分析及单元测试详解
在基础设施管理中,对基础设施进行有效的测试至关重要。基础设施测试主要用于验证是否可以对系统应用更改,并在更改应用后确认更改是否成功。整个测试工作流程包含两种类型的测试,分别是静态分析和动态分析。
1. 静态分析
静态分析是在部署基础设施更改之前对配置进行评估的过程。以网络示例来说,我们可以解析网络脚本,验证新的网络段是否具有正确的 IP 地址范围,而无需将更改部署到网络上,只需分析静态文件即可。
静态分析的定义为:对基础设施即代码进行静态分析,是在将更改部署到实时基础设施资源之前,验证纯文本基础设施配置。这种分析方式有诸多优点,它不需要基础设施资源,因为通常只是解析配置,不会对任何活动系统造成影响。如果静态分析测试通过,我们就更有信心应用更改。
静态分析测试可以用于检查基础设施命名标准和依赖关系。在应用更改之前运行这些测试,能在几秒钟内识别出任何不一致的命名或配置问题。若测试失败,可以返回基础设施配置,纠正问题并再次提交更改;若无法修复配置以通过静态分析,还可以将提交回退到之前成功的版本。
2. 动态分析
当静态分析通过后,就可以将更改部署到网络。但此时我们并不知道网络段是否真的能正常工作,因为服务器需要连接到网络。为了测试连接性,我们需要在网络上创建一个服务器,并运行测试脚本以检查入站和出站连接。
动态分析的定义为:对基础设施即代码进行动态分析,是在将更改应用到实时基础设施资源之后,验证系统功能。如果这些测试通过,我们就更有信心更新成功;若测试失败,则表明系统存在问题,需要进行调试、修复配置或脚本,并重新运行测试。动态分析为可能破坏基础设施资源和系统功