Testes são elementos fundamentais para a garantia da qualidade e que vêm ganhando uma crescente popularidade no cenário de desenvolvimento de software. Entre tantas tendências e metodologias de testes, vamos abordar neste artigo o Shift-Right, que enfatiza o deslocamento dos testes para a direita no ciclo de vida do desenvolvimento, realizando atividades de teste mais tarde no processo, em ambientes de produção e com foco em cenários reais.
Abordaremos os benefícios, técnicas, implementação, desafios e exemplos de sucesso da abordagem Shift-Right, além de explorarmos sua integração com outras práticas de teste.
O que é Shift-Right?
O conceito de “Shift-Right testing” (também chamado de “testes em produção”) é simples, mas pressupõe uma certa ousadia: envolve realizar testes continuamente quando o software já está em ambiente de produção. É um complemento à tradicional prática do Shift-Left, que consiste em incorporar testes o mais cedo possível no desenvolvimento, prevenindo problemas ao invés de detetá-los.
E onde está a ousadia na abordagem Shift-Right? No facto de sair do ambiente “seguro” do desenvolvimento e colocar o software em contacto com usuários, podendo trazer insights que dificilmente seriam obtidos de outra maneira. Concentra-se em garantir que os testes acompanham não apenas as etapas de desenvolvimento, mas também todo o processo de implantação e as etapas de pós-lançamento do produto, envolvendo testes em ambientes reais, garantindo que seja possível capturar erros que por vezes só aparecem em condições reais de uso.
Shift-Left vs. Shift-Right
O Shift-Left garante os testes no início das etapas de desenvolvimento, com o objetivo de encontrar o maior número de bugs o mais breve possível e de corrigi-los antes da fase de implantação. Essas atitudes buscam reduzir o espaço entre a escrita dos códigos e os possíveis bugs encontrados, o que, consequentemente, acaba por reduzir custos e tempo de correção.
Já o Shift-Right abrange toda a etapa posterior a este flow, concentrando-se na validação da funcionalidade, usabilidade do produto e na resolução dos problemas levantados pelo cliente. Em resumo, ele tende a melhorar a jornada do utilizador, garantindo que o produto esteja sem bugs nas primeiras horas pós-implementação e antes de futuras atualizações.
Shift-Left vs. Shift-Right no ciclo de desenvolvimento de software
Ambos os recursos têm como objetivo avaliar e garantir a qualidade e o desempenho de novas soluções e funcionalidades no processo de DevOps e ciclo de vida de desenvolvimento do software, concentrando-se em métodos de testes contínuos. A lógica por trás dos princípios de Shift-Left e Shift-Right, em uma prática ágil, é basicamente “falha pequena, recuperação rápida”. O principal foco é detetar riscos antes que se transformem em problemas.
Benefícios do Shift-Right
O principal benefício desta metodologia é a capacidade de fornecer um ponto de vista de usuários reais, que por não estarem envolvidos nas etapas de desenvolvimento acabam por enxergar a aplicação de maneira mais objetiva.
Podemos ainda pontuar os seguintes benefícios:
- Redução de custos e tempo
Evita custos elevados e tempo de inatividade prolongado ao identificar problemas não detetados anteriormente. - Alinhamento com expectativas do cliente
Captura de feedback direto dos usuários finais, garantindo que o software atende às expectativas e necessidades reais. - Gestão de riscos
Implementação de estratégias para evitar impactos negativos nos usuários, como rollbacks rápidos e testes em ambientes controlados. - Cultura e colaboração
Necessidade de uma cultura organizacional que promova a colaboração entre equipes de desenvolvimento, operações e qualidade, garantindo transparência e responsabilidade compartilhada.
Principais técnicas de Shift-Right
O Shift-Right engloba uma variedade de técnicas que podem ser aplicadas em diferentes estágios do ciclo de vida do desenvolvimento. Algumas das técnicas mais comuns incluem:
- SIEM (Security Information and Event Management)
Gerenciamento de eventos e informações de segurança. É uma solução que ajuda as organizações a detetar, analisar e responder a ameaças. - SOAR (Security Information and Event Management)
Orquestração, automação e resposta de segurança. Busca aliviar a sobrecarga das equipes de IT ao coordenar, executar e automatizar tarefas. - Testes A/B
Abordagem para testar hipóteses, criando um grupo de controle, introduzindo diferentes cenários, funcionalidades, visuais, etc., e comparando as reações obtidas com a reação pretendida. - Teste de segurança de API
Rastrear o tráfego e as chamadas de saída para entender seu comportamento e detetar incidentes de segurança.
Cada uma dessas técnicas tem suas próprias vantagens e desvantagens, e a escolha da técnica ideal depende do contexto específico do projeto e dos objetivos da equipe de teste.
Conclusão
O Shift-Right, assim como seu irmão Shift-Left, é essencial para garantir que a qualidade esteja enraizada durante todo o desenvolvimento e vida útil do produto, proporcionando uma experiência de usuário consistente e segura para os clientes.
Posso dizer que é uma etapa crucial em todo o flow, visto que aqui validamos cenários reais, agindo como se fôssemos o próprio cliente. Em muitos casos, as empresas convidam clientes com os quais têm um bom relacionamento para realizarem testes de versões beta, de modo a garantir que tudo esteja funcionando da melhor forma.
Vale ressaltar que não é uma garantia de que não haverá mais bugs, mas sim de que a probabilidade de os encontrar seja a mais baixa possível. Por outras palavras, é uma forma de garantir que o pós-entregável permanece em pleno, funcionando conforme planejado.