Agile testing - o que é e qual o papel do QA num time ágil?

Agile testing - o que é e qual o papel do QA num time ágil?
Camila Pessôa
Camila Pessôa

Compartilhe

Modelo Cascata… de problemas…

Você possivelmente já deve ter ouvido falar em Waterfall e desenvolvimento ágil no seu ambiente de trabalho. Mas o que realmente isso significa? Para entendermos o contexto e nos aprofundarmos um pouco mais nos testes, precisamos conhecer um pouco dos dois, pois a diferença da aplicação de testes se fundamenta principalmente na abordagem dos times. Vamos lá?

No Modelo Waterfall, aquele conhecido como o tradicional, o projeto é construído em etapas, é o famoso modelo cascata. Existe apenas um caminho a ser seguido e a finalização desse modelo nem sempre resulta em clientes satisfeitos. Em relação aos testes, o primeiro passo é construir o projeto e depois atacar para encontrar bugs, aí então o produto volta para a etapa de desenvolvimento para realizar os fixes. Os requisitos definidos inicialmente são contemplados, mas o feedback do cliente é demorado.

Então, o que fazer se o produto não estiver alinhado com as expectativas do usuário final ou os ganhos do cliente simplesmente não existirem por conta de um bug na funcionalidade ou usabilidade?

Imaginem então o time de Quality Assurance nesse contexto. Quando um produto chega ao cliente ou entra em produção o esperado é que seja largamente consumido. É comum pensar que os testes farão mais sentido quando o produto estiver finalizado, mas você já se perguntou se realmente esse procedimento garante a qualidade necessária?

Podemos mudar esse questionamento pela pergunta: o que é mais fácil, um tester Quality Assurance encontrar um bug ou 50/100 pessoas encontrarem vários durante o consumo do produto final?

A imagem mostra um escritório caótico. No centro vemos um homem vestido com camisa molhada , óculos, com barba e cabelo bagunçado segurando um pão de forma fatiado pegando fogo. Ao fundo surge uma pessoa escorregando de uma escada sentada em um papelão e com uma lixeira na cabeça e sete pessoas em pânico correndo. Ao lado esquerdo surge uma mulher montada em um avestruz e ao fundo há um homem jogando papéis. Ao lado direito há uma pessoa se arrastando e em cima de uma mesa de escritório bagunçada um homem em pé respira dentro de um saco. Ao fundo surge uma pessoa se balançando de uma ponta a outra do espaço em uma corda com a uma faixa e os dizeres “Tina Rules”.

Certamente nesse cenário a figura da Quality Assurance mudaria para uma espécie de Contenção de Danos, o estresse de todos seria maior e a probabilidade do produto perder valor e gerar cliente insatisfeito é gigantesca.

Nesse sentido, o modelo ágil acompanha as necessidades contemporâneas ao compreender a velocidade de mudança (um produto pode não ter o mesmo valor em 6 meses ou um ano, por exemplo) e a importância de conseguirmos um retorno do cliente mais rapidamente, pois assim é possível alinhar e compreender suas expectativas ou prioridades.

O time de Quality Assurance então aparece como essencial nos ciclos do projeto e sua expertise contribui diretamente para que a mentalidade do testar ágil seja, de fato, incorporada por toda a equipe de entrega. Afinal, de acordo com o método ágil, faz muito mais sentido realizar testes que acompanham o processo, do que testar tudo na etapa final, já próximo da entrega do produto.

Tudo é qualidade

Agile Testing Condensed - Brazilian Portuguese Edition - Janet Gregory, Lisa Crispin - 2020.

Fonte: Agile Testing Condensed - Brazilian Portuguese Edition - Janet Gregory, Lisa Crispin - 2020

Como vimos, o fluxo no método de desenvolvimento ágil é bem diferente do modelo tradicional e os testes também precisam fazer sentido nessa nova realidade. Para se chegar nestes preceitos, os idealizadores organizaram um manifesto, que é:

Manifesto do Teste

  • Testar continuamente mais que testar no final;
  • Prevenir defeitos mais que encontrar defeitos;
  • Entender o teste mais que verificar a funcionalidade;
  • Construir o melhor sistema mais que quebrar o sistema;
  • Time responsável pela qualidade mais que responsabilidade do testador.

Uma definição bastante objetiva sobre o testar ágil está descrita no livro “Agile Testing Condensed”, publicado em 2020, onde as autoras Gregory e Crispin descrevem como:

Práticas de teste colaborativas que ocorrem continuamente, desde o início até a entrega e além, apoiando a entrega frequente de valor para nossos clientes. As atividades de teste se concentram na construção de qualidade no produto, usando ciclos de feedbacks rápidos para validar nosso entendimento. As práticas fortalecem e apoiam a ideia de responsabilidade de todo o time pela qualidade. (p.6)

O manifesto de teste, criado por Karen Greaves e Samantha Laing e a definição de Gregory & Crispin são convergentes com os preceitos de cooperação. Agilidade tem o foco na melhora contínua, o teste também tem em sua essência entregar o melhor produto (o “zero defeitos”). Será então que o Agile Testing é apenas como um testador executa os testes para uma funcionalidade específica? Ou então como um jogo de caça e caçador, onde o testador entrará em um embate com o time de dev na busca pelo bug?

É claro que não! Essa prática é totalmente contraproducente e gera muito mais custos para clientes e equipe.

É preciso assimilar que o teste ágil demanda o envolvimento de toda a equipe. O fluxo de trabalho consiste em entregas pequenas e incrementais, ou seja, vão somando-se até construir o corpo do produto final. Além disso, durante ciclos mais curtos de desenvolvimento, elemento característico da implementação do ágil, a entrega é realizada em pequenos blocos que contemplam o produto final e o feedback é mais rápido, o que facilita a eficiência em cada sprint.

Nesse sentido, os times não ficam dependentes da figura do testador como um executor isolado, que corre atrás dos bugs na aplicação antes da entrega final, e sim, a incorporação de uma mentalidade do agile testing. Essa integração se apresenta quando a expertise de Q.A está no cotidiano do time ágil.

A imagem mostra um diagrama que corresponde ao time tradicional. Esse diagrama apresenta três elipses, um com a palavra “Desenvolvedores”, ao lado direito “Analista de negócios” e abaixo o “Analista de testes”. Há uma seta do desenvolvedores para Analista de negócios e Analista de Testes. Há uma seta do “Analista de Negócios” para “Analistas de Testes”. A outra figura ao lado direito representa o time Ágil, que é uma intersecção de três conjuntos com os nomes “Desenvolvedores” , “Analista de Negócios” e “Analista de Testes”.
Conceito de time no desenvolvimento Tradicional e Desenvolvimento Ágil.

Fonte: Crispin e Gregory, 2009. Traduzida por Cole, 2015

Já parou para pensar no papel de testes em um time ágil?

A partir da diferenciação entre o modelo tradicional e busca pela incorporação do desenvolvimento ágil no fluxo de trabalho, a figura do testador toma outra forma, pois o trabalho do Q.A é imprescindível para o time ágil. Dessa forma, a prática de Bult-In Quality compreende a ideia de que a busca pela qualidade não advém em eventos de testes subsequentes após finalizada uma etapa, mas são realizados de forma concomitante e incremental ao processo de concepção e desenvolvimento. Dessa forma, a qualidade é o foco e não a velocidade de entrega.

No primeiro momento, o gerenciamento das atividades deve englobar o aprendizado de técnicas, como: testes exploratórios e identificação das funcionalidades com maior valor de negócio. Com essa premissa em mente, o tempo para os testes já são estabelecidos desde o início e podem atuar em conjunto aos testes de aceitação ou correção do código.

A equipe também precisa construir a sua Definição de pronto (DoD - Definition of Done) para lidar e prevenir os possíveis problemas. Para mapear os cenários de testes as perguntas são fundamentais, por exemplo: “Qual o tipo de teste?” ou “Qual o pior cenário que pode acontecer na sua plataforma?” pode poupar tempo e direcionar para a solução, postura desejada do Q.A.

Além da quebra de silos, entender a importância da melhoria como um processo contínuo e iterativo é a base do desenvolvimento ágil. As pessoas responsáveis pela construção, desenvolvimento e entrega do produto trabalham em conjunto para garantir a qualidade em todos os processos. Portanto, incorporar a priorização da agilidade é entender que não serão necessários testes manuais em todos os ciclos de sprint e avaliar o que será automatizado, a aplicação exata do Behavior Driven Development (BDD) e Test Driven Development (TDD), práticas que caminham de mãos dadas com a cultura DevOps à inclusão das operações de entrega.

O feedback rápido é essencial para uma melhoria contínua para adequar os tipos de testes, assim como o convite para profissionais de outras áreas contribuírem com perspectivas diversas. Para alinhar as múltiplas visões, o modelo de quadrantes se transforma então em uma forma de comunicação entre os times.

Agile Testing Condensed - Brazilian Portuguese Edition - Janet Gregory, Lisa Crispin - 2020.

Fonte: Agile Testing Condensed - Brazilian Portuguese Edition - Janet Gregory, Lisa Crispin - 2020

O modelo dos quadrantes é usado de diferentes maneiras pelos times e com as variações que atendem às suas necessidades. Pode ser desde um quadro branco com as divisões, até uma tela em plataformas online. O importante é buscar definir o “Pronto” para o seu time, uma tarefa difícil mas não impossível, tendo em mente que a escolha dos testes não precisa seguir um fluxo linear. No entanto, é importante construir a História para a implementação de uma funcionalidade, por exemplo, e adicionar todos os testes necessários.

Os quadrantes procuram organizar os testes da seguinte maneira:

  • Testes voltados para a tecnologia, que orientam o desenvolvimento (TDD muito comum);
  • Testes voltados para negócios, que orientam o desenvolvimento (BDD, ATDD, ou SBE );
  • Testes voltados para negócios, que criticam o produto;
  • Testes voltados para a tecnologia, que criticam o produto.

Os testes auxiliam a guiar o desenvolvimento, a escolha do modelo cabe ao contexto do time e como se adequa ao produto. Mario de Melo, em seu fantástico curso da Alura, afirma que o ser Ágil resumido em uma frase é “entregar valor mais rapidamente. Isso é ser ágil. Eu olho para um problema e abordo esse problema da forma que dá retorno o mais rápido possível”. Por conseguinte, Lisa e Janet condensam os 10 princípios dos testes ágeis em:

  • Fornecer feedback contínuo;
  • Entregar valor ao cliente;
  • Habilitar a comunicação face a face;
  • Ter coragem;
  • Manter a simplicidade;
  • Praticar a melhoria contínua;
  • Responder à mudança;
  • Auto-organizar;
  • Concentrar-se nas pessoas;
  • Aproveitar.

Os princípios de agilidade e no contexto dos testes reforçam essa mudança de perfil profissional, que agora precisa muito além de hard skills, a profissão demanda de habilidades de colaboração, isto é, uma atua (atuação) como facilitador, mentor e, sobretudo, a comunicação precisa ser eficiente para o sucesso do time, e esse sucesso se baseia na entrega de valor para o cliente.

Conclusão

Uma aplicação, um software ou um site começam sempre com uma ideia...

Todavia, uma ideia sozinha não concretiza coisa alguma. Por isso, é importante o envolvimento de todo o time, a mudança de cultura de pensamento dentro da equipe ou empresa e implementação de diferentes setores que atuem de forma colaborativa - com o foco no melhor produto para o cliente. Nesse contexto, os testes também fazem parte da concepção e do desenvolvimento. Ou seja, desde o início já se pensa em como gerar valor e garantir a qualidade do produto.

Afinal, um Q.A fortalecido não é aquele que encontra vários bugs ou é capaz de quebrar uma aplicação. Garantir a qualidade é prevenir que esses problemas ocorram e trabalhar na busca da melhoria contínua por meio de uma abordagem que construa uma cadeia colaborativa.

O Agile testing em um primeiro momento parece ser a solução dos problemas para sua empresa ou equipe. No entanto, não é tarefa simples de se executar, pois é preciso que haja uma mudança de pensamento e incorporação dos preceitos de colaboração, feedback e melhora contínua.

É imprescindível que você procure conhecimento sobre DevOps, o básico de teste, automação de testes, ATDD, BDD e/ou Specification by Example para compreender ou aplicar o Agile Testing com sua equipe e a partir disso, compreender o Q.A não como um inimigo, mas como um colaborador para entrega de valor do seu time.

Para conhecer mais, veja:

Camila Pessôa
Camila Pessôa

Olá, sou a Camila ! Tenho 33 anos, sou mãe e ingressei na área de tecnologia por meio da robótica educacional. Participei do Bootcamp { Reprograma } com foco em Back-End /Node.js e curso Sistemas de Informação.Atualmente faço parte do Scuba-Team e tenho grande paixão por educação e tecnologia, pois acredito que essa combinação é transformadora!

Veja outros artigos sobre Programação