CI/CD 管道的测试 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CI/CD 管道的测试

部署管道中通常提到的两种类型的自动测试是单元测试集成测试。但是,可以在代码库和开发环境中运行许多类型的测试。AWS 部署管道参考架构定义了以下类型的测试:

  • 单元测试 — 这些测试生成并运行应用程序代码,以验证其性能是否符合预期。它们模拟代码库中使用的所有外部依赖关系。单元测试工具的示例包括 JUnitJest 和 py test

  • 集成测试 — 这些测试通过在预配置的测试环境中进行测试来验证应用程序是否满足技术要求。集成测试工具的示例包括 Cucumber、vRest NGinteg-test(for)。 AWS CDK

  • 验收测试 — 这些测试通过在预配置的测试环境中进行测试来验证应用程序是否满足用户要求。验收测试工具的示例包括 Cypres s 和 Sel enium。

  • 综合测试 — 这些测试在后台持续运行,以生成流量并验证系统是否正常。合成测试工具的示例包括 Amazon Synth CloudWatch etics 和 Dynatr ace 合成监控。

  • 性能测试-这些测试模拟生产能力。他们确定应用程序是否满足性能要求,并将指标与过去的性能进行比较。性能测试工具的示例包括 Apache JMeterLocust 和 Gatling。

  • 弹性测试 — 也称为混沌测试,这些测试将故障注入环境中,以识别风险区域。然后,将注入故障的时间段与没有失效的时间段进行比较。弹性测试工具的示例包括AWS Fault Injection ServiceGremlin

  • 静态应用程序安全测试 (SAST)-这些测试分析代码中是否存在安全违规行为,例如 SQL 注入跨站点脚本 (X SS)。SAST 工具的示例包括亚马逊 CodeGuruSonarQube、和 Check marx。

  • 动态应用程序安全测试 (DAST) — 这些测试也称为渗透测试笔试。它们可以识别漏洞,例如预配置的测试环境中的 SQL 注入或 XSS。DAST 工具的示例包括 Zed Attack Proxy (ZAP) 和 HCL。 AppScan有关更多信息,请参阅渗透测试

并非所有完全 CI/CD 管道都运行所有这些测试。但是,管道至少应在代码库上运行单元测试和 SAST 测试,并在测试环境中运行集成和验收测试。