What Does Canary Test Mean?
A canary test, also known as a canary deployment or canary release, is a form of A/B testing used in Agile software development.
In a canary test, software releases are first deployed to a small group of end users referred to as canaries. If the canary group experiences problems after the release, the DevOps team knows the code is not ready to be deployed.
The term is believed to have been inspired by 19th century coal miners who would take canaries into the mines with them as a warning system for toxic gases. If a canary died, it was an indication that the air quality in the mine was unsafe, and the miners would know to leave the mine immediately.
Techopedia Explains Canary Test
Canary tests allow developers to test code changes under real-world conditions and gain a better understanding of how they will perform in a live environment. This type of user acceptance test (UAT) is often used to support continuous delivery because it provides a smooth deployment process.
Canary testing reduces the risk of introducing new changes that may cause unexpected issues or outages. By beta testing the changes on a small subset of users first, developers can identify and fix problems before they affect the entire user base.
Challenges of Conducting Canary Tests
Some challenges of conducting canary tests include the following:
- Since canary tests are only performed on a small subset of users, it can be difficult to get a representative sample of users that accurately reflects the entire user population.
- With a smaller sample of users, it can also be difficult to gather enough data to make accurate decisions about the code changes.
- If the canary test reveals multiple issues with the code changes, rolling back the changes for a small subset of users can be time-consuming.
- Canary testing only covers a small subset of the users, so it is possible that the issues found in a canary test may not be experienced by other users in the general population.