O mundo de desenvolvimento de software vem se renovando a cada dia com novos processos tecnológicos e metodologias. Algumas práticas ganharam forças no mercado nos últimos tempos e continuam crescendo de forma exponencial. Devido a isso, os papeis nos times de desenvolvimento exigem uma nova cara e se reinventam.
No passado, em metodologias de escopo fechado (modelo cascata) o time de desenvolvimento era composto apenas por desenvolvedores, e, só após a conclusão de todas as suas demandas as tarefas eram redirecionadas para a equipe de testes (QA).
Vale ressaltar algumas diferenças entre os métodos, como: O “fim” das equipes de teste (pensamento que acompanha as metodologias atuais). Mas, seria isso possível? Não! O que ocorre, é que os “testers” agora se tornaram parte do time de desenvolvimento e participam de todos os momentos da criação do projeto.
Novas metodologias e suas vantagens
A reestruturação nos times aumentou sua eficiência, pois, as equipes deixaram de ser compostas apenas por desenvolvedores e deram a devida importância com relação à qualidade para o desenvolvimento de software desde o seu início, quebrando o estigma que DEV (desenvolvedor) e QA (analista de qualidade) não podem se dar bem.
Um QA tem o papel não só de garantir a qualidade do software em si, mas de todo o fluxo de desenvolvimento. Uma aplicação seja ela web, desktop ou mobile não surge do nada, é necessário passar por diversas etapas até finalmente termos algo palpável.
O QA pode e deve ser usado em todos os momentos desse processo, desde o levantamento das demandas até a implantação da demanda em cliente, mas vamos entender no que ele pode ajudar em cada etapa do desenvolvimento.
O QA nas etapas do processo
Será listado abaixo os possíveis momentos do desenvolvimento de software que o QA tem participação e pode ajudar em seu objetivo final (satisfação do cliente e uma aplicação de qualidade).
1- Vendas: O QA com experiência pode ser de extrema ajuda para auxiliar a equipe de comercial nas vendas, uma vez, que devido ao seu conhecimento eles podem opinar de acordo com as dificuldades que podem ocorrer durante todo o processo de desenvolver a solução (vale lembrar, que nesse momento é importante ter alguém responsável pela área de desenvolvimento para apontar as dificuldades técnicas.)
2- Levantamento de informações/dados: Para garantir que o sistema atenda as expectativas do cliente é necessário realizar reuniões, bate-papos, que deixem claro suas ideias. Nessa hora o QA pode auxiliar os analistas (PO) a capturar mais informações sobre o projeto, provocando perguntas mais assertivas, por exemplo: “se eu realizar tal ação no sistema como ele deve comportar?”.
3- Desenho de telas: O QA pode ajudar na criação de protótipos e telas. Eles auxiliam como um apoio para o UX/UI na validação das ideias, levando em conta a experiência de usuário e dando sugestões com base em suas vivências anteriores.
4- Escrevendo as demandas: Após realizar o levantamento das ideias do software é hora de transcreve-las, de forma que o cliente e o time de desenvolvimento possam entender o que deve ser feito, para não haver confusão ou uma dupla interpretação. O Analista de qualidade por ter participado do levantamento dessas informações, tem como papel nessa hora, ajudar o PO a escrever as histórias o mais clara possível, contendo o necessário para um bom desenvolvimento da demanda e até mesmo lembra-lo de alguma tarefa que ficou esquecida.
5- Critérios de aceite/cases de testes: Nesse passo o QA é de extrema importância, pois são definidos os critérios que satisfaçam a expectativa do cliente e entregue um software de qualidade. Nesse fluxo o QA juntamente com o PO discutem tais critérios e cases de testes, os definem e apresentam para os desenvolvedores.
6- Desenvolvimento: Esse estágio se trata de tudo aquilo que foi escrito, desenhado, toma vida e começa a criar forma. O QA tem o papel de ajudar os desenvolvedores a sanar dúvidas em relação a regra de negócios (o P.O tem esse papel, mas nem sempre ele terá disponibilidade), ajudar na comunicação com o cliente, auxiliar em algum fluxo de teste levantado nos critérios de aceite/cases de testes e até mesmo no próprio desenvolvimento (não necessariamente codificar, mas ajudar a construir uma solução), na criação/manutenção de testes unitários (auxiliando na implementação e no levantamento dos cenários para os testes unitários).
7- Homologação interna (vamos nomear assim, pois essa homologação é realizada pelo QA): Aqui temos o QA para realizar os testes, seja ele de caixa branca ou caixa preta, mas que irá utilizar os critérios de aceite e casos de testes para garantir a qualidade do que foi desenvolvido. É importante lembrar que durante os testes, novos cenários podem aparecer e devem passar pelo fluxo de testes. Além disso, ele é responsável por reportar caso algum bug seja encontrado e até mesmo melhorias que podem ser realizadas que facilitarão a utilização da aplicação.
8- Homologação por parte do cliente: Após finalizar o desenvolvimento por parte do fornecedor, o cliente irá realizar os testes. O QA pode acompanha-lo e instruí-lo em alguma dúvida referente ao funcionamento do sistema, sobre os critérios de aceite, reportar os possíveis bugs encontrados nesta etapa e sugerir melhorias para próximas versões levando em conta a expectativa e fala do cliente (essa parte de melhorias, pode ser feita juntamente com o P.O).
9- Deploy em produção: Aqui chegamos ao final do desenvolvimento (seja do projeto final ou de uma parte dele, pois seguindo a metodologia Ágil, é melhor entregar o mínimo que agrega valor para o cliente e que já possa ser utilizado e aos poucos novas funcionalidades e primoramentos são incluídos). O papel do QA neste processo pode ajudar o desenvolvedor na verificação de algum erro durante o processo de deploy e na avaliação de algo pendente para liberação no ambiente de produção.
Diante da participação em todo o processo, conseguimos ver que o QA não é apenas o responsável apenas pelos testes no final do processo de desenvolvimento, mas também auxilia na garantia da qualidade desde o início participando de todas as etapas possíveis.
O time de QA da upFlow.me está sempre atento às expectativas do cliente. Conforme suas sugestões, toda a equipe consegue entender e desenvolver a solução já com a qualidade e preservando a cultura Ágil. Você sabe por que adotar o mindset ágil traz resultados mais satisfatórios nos projetos? Leia esse artigo.
REFERÊNCIAS:
O que é o QA dentro do time ágil
O perfil multidisciplinar do Analista de testes
Qualidade de software Scrum
Artigo por: Lowran Elias