Atuação do QA Ágil do início até a entrega do projeto
Com o avanço da qualidade de software, encontrar bugs e documentá-los, acabou se tornando apenas uma das atividades desenvolvidas por um Quality Assurance (QA), tendo nessa “nova era” como foco a prevenção de falhas, ressignificando o papel e se transformando em QA Ágil.
Até alguns anos atrás, em projetos cascata todo o desenvolvimento de um produto era realizado e então só no final entrava a pessoa responsável pelos testes, que avaliava e validava a aplicação.
O tester, como era conhecido, não tinha contato com o cliente para poder tirar eventuais dúvidas e muito menos com o time de desenvolvimento, então quando chegava a fase de testar o produto, ele recebia uma documentação com um plano para executar os cenários e a tarefa funcionava como uma linha de produção engessada, no qual se seguia as instruções para verificar o que passava no teste e reportar os bugs dos que não passavam.
Hoje, principalmente em métodos ágeis, o profissional de qualidade de software passa a ser parte do time de desenvolvimento – não mais parte isolada – com um papel estratégico se aproximando do cliente para entender o negócio e o produto que será desenvolvido. Com isso, o QA passa a ser indispensável durante todas as etapas do projeto ajudando a garantir entregas com qualidade.
Mas antes de entrar nesta parte, precisamos entender de fato o que é qualidade e como ela funciona.
Afinal, o que é qualidade?
Qualidade é um conceito no qual você assegura, em termos gerais, ao usuário final que o produto, e ou, serviço que ele receberá será exatamente aquilo que ele comprou. Olhando por outra perspectiva – a do usuário final – qualidade também é possuir uma aplicação que agregue valor. Ou seja, é garantir que todas as etapas que vão de ponta a ponta, do planejamento até a entrega, sejam exatamente aquilo que o usuário final precisa.
A área automobilística por anos foi referência em processos de qualidade, e a Toyota foi modelo para muitas marcas neste quesito. Durante a época na qual a montadora japonesa explorava a ideia “menos defeitos por milhão”, surgiu uma história que é propagada até hoje que em uma de suas fábricas um dos responsáveis pela qualidade avistou um faxineiro na portaria e o questionou o motivo dele estar ali, e o funcionário respondeu que estava ajudando a fazer o melhor carro do mundo.
Verdade ou lenda, a resposta do faxineiro nos mostra que todos os envolvidos têm um papel a cumprir dentro do projeto e que todos precisam estar comprometidos a realizar suas funções da melhor maneira possível para assim alcançar o produto ideal. Por isso, é indiscutível que TODOS – desde o vendedor até o desenvolvedor, e não apenas o QA – são responsáveis por assegurar a qualidade e a entrega de valor ao usuário final em todas as aplicações desenvolvidas.
QA Ágil
Como já alertamos no começo deste artigo o QA agora é ativo durante todo o desenvolvimento com um papel muito mais amplo na qualidade dos projetos e não necessariamente só clicando em botões. No ágil este profissional ganhou VOZ, se tornou PARTE do time e vestiu a camisa em defesa do USUÁRIO FINAL.
Especificamente no Scrum, todos do time de desenvolvimento tem acesso e uma relação direta com o Product Owner (P.O.), porém o QA pode se tornar uma boa ponte até ele, uma vez que o QA representa a perspectiva do usuário final e, com isso, tende a ficar mais próximo das regras de negócio.
Mas isso de longe não significa que este profissional não precise saber habilidades mais técnicas de programação. Inclusive é bem importante que ele saiba fazer scripts, request para APIs e entre outros conhecimentos da área. E ainda é importante ressaltar que como todos do time de desenvolvimento são responsáveis por assegurar a qualidade todos acabam assumindo um pouco o papel de um QA Ágil – afinal no Scrum o time é multifuncional, ou seja todos precisam ser aptos a fazer o que for necessário para entregar os incrementos a cada sprint.
Com isso, é preciso ter em mente que no ágil, o QA não só executa a qualidade, como também passa a garanti-la entre o time, levantando a bandeira da qualidade para enraizar a cultura, auxiliando com as ferramentas e dando apoio para os desenvolvedores e o cliente neste aspecto.
A seguir vamos exemplificar como pode funcionar seu envolvimento durante todas as etapas do desenvolvimento do projeto.
Planejamento
Antes mesmo de começar o desenvolvimento do incremento da sprint, o QA atua em todo o planejamento do que será desenvolvido. Nessa etapa ele pode auxiliar o P.O. a:
- Identificar pontos de atenção nos requisitos levantados que precisam ser mais detalhados;
- Identificação prévia dos possíveis cenários de testes;
- Apoio na definição dos critérios de aceite, o ajudando a escrever o que precisa ser atingido para atender os requisitos.
Mão na massa
Depois de todo o planejamento, e do P.O. e o Time de Desenvolvimento entrarem em um acordo começam as sprints. Neste ponto o QA opera mais perto do desenvolvimento em si, auxiliando o time a:
- Escrever os casos de testes documentando detalhadamente como será feito os testes que foram levantados em cada cenário;
- Validações prévias de alguns cenários que já consigam ser testados mesmo que de uma forma mais “superficial”;
- E definir os cenários e testes que poderão ser automatizados para otimizar alguns trabalhos manuais.
Toque final
Ao final do desenvolvimento de uma user story, o QA de fato executa os testes para avaliar e validar o software em desenvolvimento. Então ele:
- Testa, de fato, todos os cenários levantados;
- Caso ele se depare com um bug ele reporta e documenta;
- Geralmente apresenta o que foi feito na user story/sprint, o que chamamos de Demo/Review, respectivamente;
- E por fim na retrospectiva do sprint ele deve levantar e planejar – junto ao time – os pontos que ainda precisam ser melhorados no quesito qualidade.
E o futuro?
Apesar das mudanças, o QA Ágil ainda tem muito que evoluir tanto na frente de negócio, se aproximando mais do P.O., bem como na área técnica, se aprofundando cada vez mais na automatização de testes, que apesar de nem todo projeto precisar, e ou, não valer a pena ser aplicado, o QA precisa estar preparado para conseguir desenvolver essa prática quando necessário.
Aqui na Programmer’s esse envolvimento mais ativo do QA agregou muito mais valor aos projetos trazendo redução de risco, qualidade e confiabilidade das aplicações. Essa cultura é implementada e absorvida constantemente entre nossos colaboradores através de programas internos que possuem como objetivo provocar a busca contínua de atualização, compartilhamento e expansão de conhecimentos que trarão inovação e qualidade aos nossos clientes.
Você busca entregas contínuas e de qualidade para seu projeto em aplicação digital? Conheça a nossa solução Agile Experience que acelera a comercialização de aplicações agregando valor ao seu negócio.