Diante do crescimento das Metodologias Ágeis, em especial o framework Scrum, diversos desafios surgem para as atividades de testes nestes ambientes. Por isso, neste artigo foram levantados estes desafios e proposta a adaptação do processo de testes fundamental às atividades do Scrum.
Em que situação o tema útil:
Diversas empresas que adotam métodos ágeis têm tido dificuldades na aplicação e no gerenciamento das atividades de testes, principalmente em projetos de médio e grande porte. A abordagem estruturada dos testes ágeis, proposta neste trabalho, ajuda os times ágeis a minimizarem essas dificuldades.
Resumo DevMan:
Este trabalho identifica alguns problemas relacionados à adaptação do processo de testes e o papel do analista de testes em função da crescente adoção das práticas ágeis pela indústria. Adicionalmente é apresentado um processo de testes ágeis em sintonia com o framework de gerenciamento de projetos Scrum, adequando as atividades do processo de testes fundamental às necessidades e conceitos deste framework.
Autores: Juvenal Feitosa, Gustavo Alves e Felipe Furtado
As atividades de testes de software assumem papéis essenciais dentro do processo de desenvolvimento de software que adota métodos ágeis, pois apoiam a comunicação entre desenvolvedores e clientes, a entrega frequente dos incrementos de software e proveem mudanças mais seguras com um bom conjunto de testes para o sistema. No entanto, segundo Carter (2011), existe a necessidade de uma reestruturação do processo de testes fundamental, pois alguns pontos ineficientes dessa abordagem clássica têm se tornado aparentes nas atividades de testes em ambientes ágeis, dentre eles:
· Atividades de testes são realizadas apenas após a codificação;
· Atraso entre a escrita do software e o feedback da equipe de testes para a equipe de desenvolvimento;
· Comunicação dificultada entre as diferentes equipes envolvidas no projeto;
· Resistência a mudanças de requisitos;
· Elevado esforço para manter os vários artefatos de testes atualizados.
Neste artigo, será proposta uma adaptação do processo de testes fundamental para um processo de testes ágeis apoiada nas atividades do Scrum, com o intuito de minimizar tanto os problemas identificados acima, como os demais: readaptação dos profissionais de testes às mudanças culturais originadas pelos princípios e valores do paradigma ágil e a adequação das atividades de testes ao framework de gerenciamento de projetos Scrum.
Teste fundamental
O processo de testes fundamental (ISO, 2009) possui etapas bem definidas e sequenciais, por exemplo: Gerenciamento e Planejamento, Projeto, Implementação, Execução e Análise. Possui também as características de produzir alguns artefatos formais, ter uma equipe independente da equipe de desenvolvimento e envolver vários perfis de profissionais, como: Gerente, Líder, Projetista, Analista, Automatizador e Testador.
A norma ISO/IEC 29119 propõe um processo de testes que é apresentado na Figura 1. Ele é dividido em duas fases paralelas. A primeira fase é a de gerenciamento, que envolve o planejamento, monitoramento, controle e conclusão dos testes. Enquanto a segunda é o processo de testes fundamental, com seu fluxo de atividades sequenciais, abrangendo: projetar e implementar os testes, configurar o ambiente, executar os testes e controlar os incidentes.
Figura 1. Processo de testes da norma ISO/IEC 29119 adaptado de ISO (2009).
No processo de testes, o planejamento é uma das fases mais críticas, pois, além de todo o trabalho de definição de recursos (tempo, pessoas, ambiente, ferramentas e cronograma) inerente a essa fase, o processo de testes tem suas atividades iniciadas no fim do ciclo de desenvolvimento, ficando difícil de alterar os recursos estimados.
Scrum
O Scrum (Figura 2) “é um framework de gerenciamento ágil de projetos, fundamentado na teoria de controle de processos empíricos, que emprega uma abordagem iterativa e incremental para otimizar a previsibilidade e controlar riscos” (Schwaber, 2011a). Consiste em três papéis fundamentais (Scrum Master, Product Owner e o Time), a produção de alguns artefatos e eventos com duração fixa.
O primeiro evento é a fase de preparação, onde ocorre o planejamento de toda a versão do produto que será desenvolvido. No segundo evento, ocorre a reunião de planejamento da sprint, que é o momento no qual será definido e planejado o trabalho da sprint subsequente. Por sua vez, é na sprint (que possui período de três a quatro semanas) que acontece o trabalho de produção do incremento do produto. O quarto evento é a reunião diária, que é um encontro (de quinze minutos) com todos os integrantes do time. O que foi produzido durante a sprint é apresentado ao cliente na reunião de revisão. Por fim, na reunião de retrospectiva é o momento no qual o time decide o que pode ser melhorado para as sprints futuras.
Figura 2. Framework Scrum (Schwaber, 2011a).
Dificuldades nos Testes em Ambientes Ágeis
Alguns autores como Crispin e Gregory (2009) e Shaye (2008), relatam dificuldades na transição dos testes fundamentais para os testes ágeis, vindas da necessidade de adequar-se às práticas intrínsecas dos ambientes ágeis. A seguir, abordamos algumas delas:
...