O Que É um Teste em Quarentena? Explicação
Um teste em quarentena é um teste sabidamente flaky deliberadamente retirado do caminho que bloqueia o build, para que seu ruído não derrube builds enquanto uma correção real está pendente.
Quando um teste é flaky, deixá-lo no caminho bloqueante treina o time a ignorar builds vermelhos, o que é perigoso. Apagá-lo perde cobertura. A quarentena é o caminho do meio: continuar rodando o teste para obter sinal, mas impedi-lo de bloquear merges até que seja corrigido.
O que a quarentena faz
Colocar em quarentena marca um teste como sabidamente flaky e exclui seu resultado do gate de aprovação/reprovação. O teste geralmente ainda roda, então você mantém visibilidade sobre se ele está passando, mas uma falha não deixa mais o build vermelho nem bloqueia um merge.
Por que os times a usam
Um único teste flaky que falha uma execução em vinte pode bloquear dezenas de merges por semana e corroer a confiança na CI. A quarentena restaura imediatamente um gate verde e confiável, ao mesmo tempo que preserva a cobertura para que o teste flaky não seja simplesmente esquecido ou apagado.
O risco e a disciplina
A quarentena é uma cela, não um cemitério. O perigo é que testes em quarentena se acumulem e percam cobertura silenciosamente para sempre. Times saudáveis rastreiam a lista de quarentena, estabelecem a expectativa de que os testes sejam corrigidos e devolvidos, e alertam quando a lista cresce.
Quarentena vs retry
O retry reexecuta um teste que falha na esperança de que ele passe; a quarentena o impede de bloquear por completo. Eles resolvem problemas diferentes: retries encobrem ruído transitório e de tempo por execução, enquanto a quarentena lida com um teste persistentemente flaky que precisa de uma correção real antes de poder ser confiável de novo.
A perspectiva da Latchkey
A quarentena mira testes flaky (bugs de teste); a autocorreção da Latchkey mira falhas transitórias e mecânicas de infraestrutura. Elas são complementares: ao fazer retry automático de instabilidades genuínas de infraestrutura, a Latchkey mantém sua lista de quarentena focada em testes que são de fato flaky, em vez de testes falhando por ruído ambiental.
Principais conclusões
- Um teste em quarentena ainda roda, mas não bloqueia mais o build.
- A quarentena restaura um gate confiável sem apagar cobertura.
- Ela precisa ser uma cela temporária, rastreada e reduzida ao longo do tempo.
- A quarentena lida com testes flaky; retries lidam com ruído transitório por execução.