Por que executar Testes Ágeis é um caminho sem volta para a entrega de aplicações
Para Onde Estão Indo As Práticas De Desenvolvimento E Testes
Houve uma profunda transformação na indústria no modo de se produzir software ao longo das últimas 2 décadas. Lidar com as pressões crescentes por entregas cada vez mais rápidas para atender às demandas de mercados e usuários se tornou questão de sobrevivência para as empresas. Em resposta à essas pressões, floresceram as Metodologias Ágeis de desenvolvimento e, mais recentemente, as Práticas Lean e DevOps expandiram essa mentalidade para toda a Cadeia de Valor de TI.
Por outro lado, as pressões por redução de custos e eficiência operacional levaram as aplicações para a nuvem e, simultaneamente, a busca por retenção e atração de novos clientes levaram as aplicações para os dispositivos móveis.
A consequência natural desses movimentos foi o que desencadeou num grande aumento no número de releases das aplicações e, ao mesmo tempo, aumentou a demanda por qualidade desses releases. Afinal de contas, os concorrentes estão a um click de distância.
Testes Tradicionais Não Atendem Mais As Expectativas De Velocidade De Entrega Das Aplicações Modernas
Diversas tentativas foram feitas para adaptar os testes tradicionais a este novo paradigma, como o investimento em automação de testes e envolver as equipes de testes cada vez mais cedo no processo de desenvolvimento.
Mas, os testes continuavam sendo tratados como mais uma fase dentro do processo. Continuavam sendo executados por equipes independentes e apenas por elas. E, por conta dessa mentalidade, nunca se conseguiu efetivamente acelerar as entregas de testes de modo a atender as expectativas atuais.
O resultado é sempre tempo de espera e atrasos, tanto na área de QA quanto no Desenvolvimento, ocasionados por muitas transferências entre as áreas (handovers) e retornos sobre os erros muito demorados e tardios no processo.
A Resposta: Praticar Testes Ágeis
A chave para que os testes tenham a velocidade exigida atualmente passa por uma transformação de mentalidade importante. Não mais encarar os testes como uma fase no processo, mas fazer com que as atividades de testes sejam totalmente integradas ao desenvolvimento e construção do software até que se tornem indistinguíveis uma da outra. Uma única fase!
Essa mudança de abordagem é a base para as práticas de Testes Ágeis e já resulta, naturalmente, em eliminação de gargalos e esperas entre as áreas, feedbacks de testes contínuos o mais cedo possível e a garantia de quanto as entregas estão alinhadas com as necessidades de negócios.
Figura 1 – Comparação do processo de Testes Tradicionais e práticas de Testes Ágeis.
As consequências dessa perspectiva ágil sobre os testes e seus benefícios são:
As equipes ficam focadas em prover informações, visibilidade e feedback. Todo mundo testa. As equipes se tornam multidisciplinares, em que todos são responsáveis pela qualidade e testes executados. Existe uma relação de colaboração entre desenvolvedores e testadores, ao invés de adversários.
Um desenvolvimento só é considerado pronto para ser aceito depois de implementado e testado! Isso reforça o single-piece flow (ao invés do processamento em massa).
Automação máxima dos testes se torna necessidade para atender a velocidade das entregas e prover testes contínuos.
Os testes movem as entregas e não o contrário! Os testes são a fonte de feedbacks contínuos de quanto as entregas estão alinhadas com as necessidades de negócios. Ocorre uma mudança de orientação de “Testar por Último” para “Orientado por Testes” utilizando as técnicas de ATDD e TDD (Acceptance Test Driven Development e Test Driven Development).
Sob o ponto de vista de tipos de testes, executar em maior quantidade os testes que são mais baratos e mais rápidos e que tem potencial de prover maior cobertura e feedbacks mais cedo. Como por exemplo, os testes unitários desenvolvidos através de técnicas de TDD e que podem ser executados continuamente no commit do código.
Figura 2 – Os tipos de testes da pirâmide ideal de Testes Ágeis em comparação com Testes Tradicionais. Fontes: Martin Fowler’s Test Pyramid, 2012 e Alister Scott’s SW Testing Pyramid, 2012
Como são distribuídos os seus testes na pirâmide? Como tem planejado ir do modelo tradicional para Testes Ágeis? Comente aqui e te ajudamos a planejar! Temos uma equipe, metodologia e métricas para a adequação dos Testes Ágeis de acordo com a situação atual e necessidade da sua empresa!