Glossário · Fundamentos de testes
Shift-left testing
Também chamado de: shift left, shift-left, teste shift-left, shift left testing
Definição
Trazer as atividades de teste e qualidade para mais cedo no ciclo de entrega, para que os defeitos sejam evitados ou encontrados quando são mais baratos de corrigir.
Shift-left testing significa fazer o trabalho de qualidade mais cedo: à esquerda de uma linha do tempo que vai dos requisitos ao release. Em vez de uma fase de testes depois que o desenvolvimento termina, testers e desenvolvedores revisam os requisitos, combinam os critérios de aceite, escrevem testes automatizados junto com o código e os rodam a cada commit. Um defeito encontrado em uma revisão de requisitos custa uma conversa; o mesmo defeito encontrado em produção custa um incidente.
Como isso fica na prática
- Refinamento. Um tester pergunta “o que acontece se o cupom estiver expirado?” antes de existir qualquer código, e a resposta vira um critério de aceite.
- Design. A testabilidade é discutida desde o início: test IDs estáveis, endpoints de API para criar massa de dados, feature flags.
- Desenvolvimento. Testes unitários e de API são escritos junto com a funcionalidade, não semanas depois. Análise estática e linting rodam no editor e nos pull requests.
- CI. Todo pull request roda as suítes rápidas, e uma falha bloqueia o merge.
Shift left vs shift right
O shift-right testing é a ideia complementar: aprender com a produção por meio de monitoramento, canary releases, feature flags, verificações sintéticas e experimentos A/B. Algumas falhas, como padrões reais de tráfego ou quedas de terceiros, só aparecem em produção. Times maduros fazem as duas coisas. Fazer shift left não é motivo para parar de observar o que acontece depois do release.
Erros comuns
- Mudar o nome sem mudar nada. Se os testers continuam recebendo um build pronto e um prazo, nada foi deslocado. O teste é se as conversas sobre qualidade acontecem antes de o código ser escrito.
- Deixar todo o teste só com os desenvolvedores. O shift-left distribui o teste pelo time; ele não elimina a necessidade de habilidades de teste. Os testers muitas vezes passam a atuar com coaching, design de testes e criação de ferramentas.
- Deslocar só a automação. Rodar testes de UI mais cedo ajuda, mas os maiores ganhos normalmente vêm de esclarecer os requisitos e de levar as verificações para os níveis de unidade e de API.