No teste de software, um canário é um empurrão de mudanças de código de programação para um pequeno grupo de usuários finais que não sabem que estão recebendo novo código. Como o canário é distribuído apenas para um pequeno número de usuários, seu impacto é relativamente pequeno e as alterações podem ser revertidas rapidamente caso o novo código se revele um buggy.
Para mudanças incrementais de código, uma abordagem canária de entrega de funcionalidades permite à equipe de desenvolvimento avaliar rapidamente se o lançamento do código fornece ou não o resultado desejado. Os testes canários, que são frequentemente automatizados, são executados após a conclusão dos testes em um ambiente sandbox.
A palavra canário foi selecionada para descrever o código empurrado para um subconjunto de usuários porque canários eram usados uma vez na mineração de carvão para alertar os mineiros quando gases tóxicos atingiam níveis perigosos. Como o canário em uma mina de carvão, o usuário final que é selecionado para receber um novo código em um teste de canário não sabe que ele ou ela está sendo usado para fornecer um aviso prévio.
No teste canário, um pequeno subconjunto de usuários finais serve como um grupo de teste para alterações de código. Se uma alteração causar problemas, o software de monitoramento alerta a equipe de TI para que o código possa ser corrigido antes de ser liberado para um grupo maior de usuários.