

# Content Domain 3: Testing and Deployment
<a name="developer-associate-03-domain3"></a>

**Topics**
+ [Task 3.1: Prepare application artifacts to be deployed to AWS.](#dva-03-task3.1)
+ [Task 3.2: Implement and automate application testing in AWS environments.](#dva-03-task3.2)
+ [Task 3.3: Deploy code by using AWS continuous integration and continuous delivery (CI/CD) services.](#dva-03-task3.3)

## Task 3.1: Prepare application artifacts to be deployed to AWS.
<a name="dva-03-task3.1"></a>
+ Skill 3.1.1: Manage dependencies for code modules (for example, environment variables, configuration files, container images) within packages.
+ Skill 3.1.2: Build and manage container images for deployment (for example, by using Amazon ECR, Docker files, container image tagging, lifecycle policies).
+ Skill 3.1.3: Use code repositories in deployment environments.
+ Skill 3.1.4: Manage environment-specific application configuration by using AWS services (for example, AWS AppConfig, AWS Systems Manager Parameter Store, AWS Secrets Manager, Amazon API Gateway, AWS Lambda).
+ Skill 3.1.5: Use API Gateway features and resources (for example, stage-specific URLs, endpoints).

## Task 3.2: Implement and automate application testing in AWS environments.
<a name="dva-03-task3.2"></a>
+ Skill 3.2.1: Develop and validate tests (for example, by using AWS SAM, AWS CDK, AWS CloudFormation).
+ Skill 3.2.2: Use mock APIs for external dependencies by using AWS services and tools (for example, API Gateway).
+ Skill 3.2.3: Create application test events (for example, by using JSON payloads to test Lambda functions and API Gateway APIs).
+ Skill 3.2.4: Create and configure application environments (for example, Lambda aliases, container image tags, AWS Amplify branches, AWS Copilot environments, API Gateway APIs).
+ Skill 3.2.5: Use AWS AI tools to generate tests and automate repetitive testing workflows (for example, automated test execution, test result analysis, regression testing automation, test coverage).

## Task 3.3: Deploy code by using AWS continuous integration and continuous delivery (CI/CD) services.
<a name="dva-03-task3.3"></a>
+ Skill 3.3.1: Use Lambda deployment packaging methods to optimize deployment efficiency (for example, .zip files, container images, layers).
+ Skill 3.3.2: Deploy containerized applications by using AWS container orchestration services (for example, Amazon ECS task definitions, Amazon EKS manifests, AWS Fargate launch types, rolling updates).
+ Skill 3.3.3: Use infrastructure as code (IaC) templates (for example, CloudFormation templates, AWS SAM templates).
+ Skill 3.3.4: Deploy application revisions to target environments by using AWS CodeDeploy.
+ Skill 3.3.5: Use AWS CodePipeline to orchestrate CI/CD pipelines (for example, invoke pipelines from linked code repositories, orchestrate progression through multiple environments).
+ Skill 3.3.6: Implement deployment strategies for application releases (for example, blue/green, canary, rolling).
+ Skill 3.3.7: Implement automatic or manual rollback by using AWS services (for example, CloudFormation, CodeDeploy).
+ Skill 3.3.8: Use source control features to manage application versions and releases (for example, labels, branches).
+ Skill 3.3.9: Use AWS AI tools to support CI/CD workflows (for example, automated deployment approvals, environment provisioning, post-deployment validation).