REL12-BP03 Test functional requirements
Use techniques such as unit tests and integration tests that validate required functionality.
You achieve the best outcomes when these tests are run automatically as part of build and deployment actions. For instance, using AWS CodePipeline, developers commit changes to a source repository where CodePipeline automatically detects the changes. Those changes are built, and tests are run. After the tests are complete, the built code is deployed to staging servers for testing. From the staging server, CodePipeline runs more tests, such as integration or load tests. Upon the successful completion of those tests, CodePipeline deploys the tested and approved code to production instances.
Additionally, experience shows that synthetic transaction testing (also known as canary testing, but not to be confused with canary deployments) that can run and simulate customer behavior is among the most important testing processes. Run these tests constantly against your workload endpoints from diverse remote locations. Amazon CloudWatch Synthetics allows you to create canaries to monitor your endpoints and APIs.
Level of risk exposed if this best practice is not established: High
Implementation guidance
-
Test functional requirements. These include unit tests and integration tests that validate required functionality.
Resources
Related documents:
-
APN Partner: partners that can help with implementation of a continuous integration pipeline
-
AWS CodePipeline Adds Support for Unit and Custom Integration Testing with AWS CodeBuild
-
AWS Marketplace: products that can be used for continuous integration
-
Use CodePipeline with AWS CodeBuild to test code and run builds