REL08-BP02 将功能测试作为部署的一部分进行集成 - AWS Well-Architected 框架

REL08-BP02 将功能测试作为部署的一部分进行集成

功能测试作为自动化部署的一部分运行。若未满足成功条件,则相关管道会中止或回滚。这些测试在预生产环境中运行,该环境会在管道中的生产开始前被暂存。在理想情况下,此操作是部署管道的一部分。

期望结果:您使用自动化功能来执行功能测试,相关的测试数据减少了测试用时和费用,并提高了测试结果的准确性。您可以将功能测试集成到部署流程中,这有助于您实现发布管道的自动化,从而快速可靠地更新应用程序和基础设施。

常见反模式:

  • 在部署管道之外手动执行测试。

  • 跳过自动化流程中的测试步骤,采用手动应急工作流。

  • 不遵循既定的测试计划和流程,急于求成。

建立此最佳实践的好处:功能测试可验证系统是否按照指定的要求运行。使用该最佳实践,可持续验证用户界面、API、数据库和源代码等组件是否按预期正常运行。当您检查系统的这些组件时,功能测试会验证每个功能是否按预期运行,这既可以确保达成用户的期望,也保护了软件的完整性。将功能测试融入到常规部署中,并使用自动化功能来部署所有变更,从而降低引入人为错误的可能性。

在未建立这种最佳实践的情况下暴露的风险等级:

实施指导

将功能测试作为部署的一部分进行集成。功能测试作为自动化部署的一部分运行。若未满足成功条件,则相关管道会中止或回滚。AWS CodePipeline 提供了连续的交付管道用于自动化测试,这使得测试人员可以实现整个测试和部署流程的自动化。与 AWS CodeBuild 和 AWS CodeDeploy 等 AWS 服务集成后,可自动执行软件开发生命周期的构建、测试和部署阶段。

实施步骤

  • 配置管道:使用 AWS CodePipeline 控制台或 AWS Command Line Interface(CLI)设置源代码以及构建、测试和部署各个阶段。

    • 定义源代码:使用 AWS CodePipeline,可以自动从 GitHub、AWS CodeCommit 或 Bitbucket 等版本控制系统检索源代码,这会验证最新代码是否始终用于测试。

    • 自动构建和测试:AWS CodeBuild 可以自动构建和测试代码并生成测试报告。该服务支持 JUnit、NUnit 和 TestNG 等流行的测试框架。

    • 部署代码:构建并测试代码后,AWS CodeDeploy 可以将其部署到测试环境中,包括 Amazon EC2 实例、AWS Lambda 函数或本地服务器。

    • 监控管道:AWS CodePipeline 可以跟踪管道的进度以及每个阶段的状态。您还可以使用质量检查,根据测试执行状态来阻止管道。此外,您可以接收有关任何管道阶段故障或管道完成的通知。

资源

相关文档: