Você já participou de um projeto de software que estourou o orçamento e ultrapassou todos os prazos? Claro que sim, todos nós já passamos por isso. Na verdade, se não passou, você é uma raridade e eu gostaria de ouvir sua história.
No início da minha carreira na área de desenvolvimento de software, aprendi a importância de trabalhar retroativamente a partir de um prazo final. Se um projeto deve ser concluído até uma data específica e os testes levarão um certo tempo, podemos usar essa informação para definir uma data de entrega adequada. Parece fácil, não é?
Bem, não é bem assim. Embora reservar tempo para testes manuais reduzisse o estresse nos dias finais dos projetos, ainda surgiam muitas surpresas.
Planejar tempo para testes de QA é ótimo na teoria, mas desmorona na prática assim que o primeiro bug ou defeito é identificado.
Quanto tempo levará para corrigir esse defeito? Quanto isso impactará o cronograma? Novos bugs serão introduzidos? Como garantiremos que cada correção seja verificada com tempo para consertar qualquer coisa que quebramos enquanto corrigíamos a primeira?
No fim, nunca consegui determinar o tempo correto para alocar para QA. No fim, as correções de última hora sempre acabavam sendo feitas às pressas; passei a reservar algumas semanas após grandes lançamentos para lidar com os problemas que deixamos escapar (ou causamos) durante a corrida contra o tempo.
O problema, no fim das contas, não era o tempo disponível para testes, mas o momento em que os testes eram realizados. Eu precisava de testes mais cedo e com mais frequência. Eu precisava de testes shift-left.
Se imaginarmos nosso processo de desenvolvimento de software como uma linha do tempo fluindo da esquerda para a direita, então "teste shift-left" torna-se autoexplicativo. Simplificando, é a prática de testar nas etapas iniciais, envolvendo membros da equipe, incluindo testadores, desenvolvedores e stakeholders na estratégia de teste, e integrar testes com mais frequência no ciclo de desenvolvimento, tanto para funcionalidades existentes quanto para novas.