Search for Well Architected Advice
< All Topics
Print

Integrate functional testing as part of your deployment

Controlled changes are essential for effective deployment of new functionalities. Integrating functional testing within your deployment pipelines ensures that only verified changes are applied, thereby maintaining the reliability of workloads and reducing the risk of introducing issues into the production environment.

Best Practices

  • Automate Functional Testing: Implement automated functional tests that run as part of your Continuous Integration/Continuous Deployment (CI/CD) pipeline. This practice not only facilitates timely identification of issues but also enables controlled deployments, minimizing downtime and ensuring that changes are valid before release.

Supporting Questions

  • Do you have automated tests in place that can validate the integrity of each deployment?

Roles and Responsibilities

  • Development Team: Responsible for writing and maintaining functional tests to cover critical paths of the application, ensuring that new code aligns with existing functionalities.
  • DevOps Engineer: Oversees the deployment pipeline configuration and ensures that functional tests are integrated effectively, enabling automated rollback or halts when criteria are not met.

Artifacts

  • CI/CD Pipeline Configuration: A document that outlines how integrated functional testing is structured within the deployment pipeline, including triggers, environments, and intended outcomes.

Cloud Services

AWS

  • AWS CodePipeline: A fully managed continuous delivery service that helps streamline application releases by integrating functional testing in the deployment process.
  • AWS CodeBuild: A managed build service that can run automated functional tests to ensure the quality of code before deployment.

Question: How do you implement change?
Pillar: Reliability (Code: REL)

Table of Contents