Agile Testing e as mudanças geradas no processo tradicional

Imagem de capa do post Agile Testing e as mudanças geradas no processo tradicional

Tradicionalmente, projetos de software construídos através de metodologias de desenvolvimento mais clássicas, como em cascata, seguem fases sequenciais bem definidas de construção. Derivados principalmente de modelos industriais, estes foram amplamente utilizados no mercado justamente por se adaptarem facilmente em projetos de pequeno, médio e grande porte.

Nestes moldes, em se tratando de desenvolvimento de software, o trabalho se inicia com a fase de análise, seguida para projeto, codificação, testes e, pôr fim, implantação em produção, sendo que as etapas precisam ser completamente concluídas para que a próxima se iniciasse. Sendo assim, os testes do produto são realizados apenas e tão somente quando todo o desenvolvimento já estiver sido concluído.

Nesse contexto, as características dessas metodologias tornavam as correções de problemas custosas e trabalhosas, pois a equipe de QA tinha o primeiro contato com o produto quando este já estava pronto e, caso fosse encontrado um problema, era necessário um novo ciclo de análise e desenvolvimento. No final, dependendo do tamanho do software, o prazo e custo eram bastante impactados e por esse motivo a metodologia começou a se mostrar por vezes inviável.

Apesar disso, vale lembrar que metodologias mais tradicionais seguem sendo utilizadas no desenvolvimento de software.

Metodologia Ágil

Surge então uma nova forma de trabalho (desenvolvimento ágil) que busca solucionar os problemas recorrentes dos métodos clássicos, inserindo conceitos como agilidade e entregas parciais dentro das equipes de desenvolvimento. Os novos paradigmas foram apresentados no manifesto ágil de acordo com alguns itens, dentre eles:

  • Indivíduos e interações entre eles mais que processos e ferramentas;
  • Software em funcionamento mais que documentação abrangente;
  • Colaboração com o cliente mais que negociação de contratos;
  • Responder a mudanças mais que seguir um plano.

Desta maneira, o projeto passa a ser dividido em pequenas entregas, possibilitando uma perspectiva de evolução do software, no qual são mapeados cenários essenciais para sua utilização e, conforme a prioridade, são adicionadas novas funcionalidades ao produto de forma incremental. Ademais, os clientes passam a acompanhar a construção de forma ativa. Adicionalmente, surgem novos papéis dentro dos times como Scrum Master, Product Owner, Analista de Qualidade, etc.

Neste cenário, o contexto de “time” passa a ser incorporado e este assume as responsabilidades de forma conjunta. O sucesso do projeto depende do trabalho em equipe e não mais de esforços muitas vezes individuais como nas metodologias tradicionais. Similarmente, são adotadas novas tecnologias, arquiteturas, frameworks e padrões de codificação para facilitar a agilidade e a qualidade do produto.

Agile Testing e QA

Referindo-se a Agile Testing e QA, o processo de testes que antes era executado apenas no final do projeto, passa a ser realizado em todas as fases de validação do produto. O profissional de QA muda seu papel no time e não é mais visto simplesmente como um “catador de Bugs” e sim como responsável pelo fortalecimento da cultura e controle de qualidade no processo de desenvolvimento.

Atuando nas fases iniciais desde o planejamento do produto, o profissional de QA deve prever as possíveis interações dos usuários finais, contribuir na criação de histórias de usuário, no planejamento de desenvolvimento, na análise das funcionalidades e até com compartilhamento de experiências em outros projetos que tenha atuado, visto que tais informações podem servir de sugestão na tomada de decisão referentes a aspectos de qualidade do produto. Além do mais, o profissional de QA passa a contribuir com conhecimentos diversos, tanto técnicos quanto de negócio.

Seguindo na linha de prevenção, o profissional de QA sai de uma posição reativa e passa a tomar ações preventivas sobre o produto. Portanto, é esperado que ele consiga antecipar os bugs e validar as funcionalidades desenvolvidas contribuindo efetivamente com o time de desenvolvimento.

Com base nas informações apresentadas, é possível afirmar que independente da metodologia utilizada, o processo de testes tem papel fundamental na garantia e controle da qualidade de software e, por conseguinte, o profissional dessa área é indispensável para que o produto seja desenvolvido com qualidade e satisfaça as necessidades dos usuários finais.

Sua empresa possui processo de QA, seja ele tradicional ou ágil?

Compartilhar:
0 Comentários

Deixe seu comentário

Fale AGORA com um de nossos consultores

Comentário adicionado com sucesso