Introdução ao Dev-Test Pairing

Reduzir o ciclo de feedback através da aproximação entre desenvolvedores e testadores é possível! Conheça o Dev-Test Pairing! 

Por CAIO RIZOLLI

 

Imagine o seguinte cenário: o programador, desenvolve a funcionalidade. O testador, executa testes na funcionalidade de forma a garantir que os requisitos estabelecidos foram atingidos. Um defeito é encontrado, é relatado ao programador, que o corrige e entrega novamente ao testador para validação. Este ciclo parece familiar?

 

Embora considerado uma etapa natural no processo de desenvolvimento de software, os eventos relatados acima podem consumir uma boa fatia de tempo, uma vez que criam o famoso efeito “bate e volta”. A correção e consequente reteste gerado por ela, causa retrabalho, este que muitas vezes pode resultar na diferença entre sucesso ou falha de um ciclo. Algumas técnicas ágeis, como o Pair-Testing e o Dev-Box Testing, aproximam o desenvolvedor do testador e consequentemente, antecipam o feedback entre os mesmos. Além disso, são efetivas em agilizar a capacitação de ambos. Estas técnicas já são aplicadas no dia a dia da Matera com sucesso, com as equipes reportando reais ganhos na qualidade das entregas, bem como melhorias no entrosamento do time, através de comunicação mais rápida e eficiente.

 

Mas, e se dermos um passo adiante, aproximando ainda mais o desenvolvedor do testador? Como? A resposta seria o Dev-Test Paring.

 

Como funciona o Dev-Test Pairing?

 

Podendo ser considerada como uma evolução do Pair-Testing, o DevTest Pairing (em português: Pareamento entre Desenvolvedor e Testador) mantém a ideia do trabalho conjunto entre desenvolvedor e testador, porém, amplia esta parceria para outras etapas do desenvolvimento, introduzindo a visão e as habilidades do testador durante o período onde a codificação, o desenvolvimento da funcionalidade, é iniciada, tornando o TDD (Test Driven Development, ou Desenvolvimento Dirigido por Testes) ainda mais efetivo.

 

Após definido o escopo da funcionalidade a ser desenvolvida, o testador prepara seu mapeamento de testes, no qual ele deve efetivamente planejar a cobertura de testes para aquele desenvolvimento, isto é, quais pontos devem receber atenção, de forma a garantir o máximo de qualidade possível.

 

mapeamento_testes

 

Com isto em mãos, o espaço para o que se inicie o Dev-Test Pairing está aberto. Juntos na máquina do desenvolvedor, desenvolvedor e testador irão “botar a mão na massa”, pensando nas melhores soluções de codificação dos testes automáticos, em cenários adicionais de testes e em possíveis dúvidas de escopo, buscando sempre a melhor solução. A codificação dos casos de teste automatizados (lembre-se: TDD) são feitos em conjunto, com base no mapeamento de testes que foi desenvolvido, bem como nas observações resultantes deste pareamento. Desta forma, este modo de trabalho possibilita uma constante troca de informações e questionamentos, aliando diferentes visões em busca da melhor qualidade de entrega possível.

 

Agora, você pode estar se perguntando: “o testador vai codificar!?”. E a resposta é um maiúsculo SIM.

 

Em um mundo onde o desenvolvimento de software é a cada dia mais ágil e dinâmico, o papel do testador “tradicional” perde cada vez mais espaço. A capacidade de interagir diretamente com o código fonte, lado a lado com o desenvolvedor, abre um novo leque de possibilidades, com ganhos visíveis e quantificáveis. Este processo, é claro, não é sem dores. É fundamental que o testador se capacite nestas novas competências (lógica e linguagens de programação sendo um ótimo exemplo), bem como que a empresa forneça um ambiente propício para este aprimoramento, mantendo em mente que o próprio processo de pair é uma ferramenta extremamente valiosa para a capacitação, uma vez que acelera transferência de conhecimentos e tempo de aprendizado.

Quais são os resultados de se praticar o Dev-Test Pairing?

 

Aplicar o Dev-Test Pairing trouxe resultados bastante positivos dentro de uma equipe ágil. Além dos ganhos já estabelecidos do pareamento, como feedback rápido e maior troca de conhecimentos, esta técnica de trabalho levou a uma cobertura de testes automáticos maior e mais efetiva, o que trouxe redução na quantidade de erros encontrados ao longo do ciclo de desenvolvimento. Outro ponto positivo, resultante de uma comunicação mais veloz e efetiva, foi maior facilidade em levantar dúvidas e eventuais brechas no escopo do projeto junto ao Analista de Requisitos, garantindo cobertura ainda mais eficaz ao projeto. Em consequência, esta considerável redução na duração do feedback loop, observamos aumento na quantidade de ciclos onde a entrega foi feita dentro da expectativa do Product Owner (P.O.) e do cliente.

 

É importante ter em mente que o Dev-Test Pairing não é uma “bala de prata”, ou seja, não irá solucionar todos os problemas. É necessário que os membros da equipe estejam capacitados e alinhados para que esta técnica seja eficaz durante o desenvolvimento. É uma quebra grande de paradigmas, mas, que é capaz de prover grandes ganhos, e até mesmo eliminar o temido feedback loop ilustrado neste post.

 

Dê uma chance ao Dev-Test Pairing!

 

Leia mais em:

http://matera.com/blog/post/tdd-desenvolvimento-orientado-a-testes

http://matera.com/blog/post/dev-box-testing-praticando-testes-ageis-2

http://matera.com/blog/post/pair-testing-praticando-testes-ageis

http://matera.com/blog/post/dicas-para-aplicar-mapas-mentais-na-solucao-de-teste

Por CAIO RIZOLLI

Na área de Tecnologia da Informação há 13 anos, mas sempre fascinado pelas Ciências Humanas. Analista de Sistemas com foco em Qualidade de Software na Matera.

Postado em: 13 de junho de 2018

Confira outros artigos do nosso blog

Falando sobre Teste de Intrusão (ou PenTest)

03 de abril de 2018

Jacqueline Costa

Protractor – Testes automáticos end-to-end para aplicações em Angular

07 de dezembro de 2017

Jacqueline Costa

Testes em Node.js

04 de dezembro de 2017

Alan Cesar Elias

Automatizando Testes de Contrato API REST – Parte 1

30 de novembro de 2017

Monise Costa

Deixe seu comentário