In software testing, a canary is a push of programming code changes to a small group of end users who are unaware that they are receiving new code. Because the canary is only distributed to a small number of users, its impact is relatively small and changes can be reversed quickly should the new code prove to be buggy. Canary tests, which are often automated, are run after testing in a sandbox environment has been completed.
For incremental code changes, a canary approach to delivering functionality allows the development team to quickly evaluate whether or not the code release provides the desired outcome. The word canary was selected to describe the code push to a subset of users because canaries were once used in coal mining to alert miners when toxic gases reached dangerous levels. Like the canary in a coal mine, the end user who is selected to receive new code in a canary test is unaware he is being used to provide an early warning.