Mais qualidade no Scrum: Scrum é um processo ágil ou uma estrutura para gerenciamento de projetos ágeis. É um processo de gerenciamento de projetos. Permite manter o foco na entrega do maior valor de negócio, no menor tempo possível. As necessidades do negócio é que determinam as prioridades do desenvolvimento de um sistema. As equipes se auto-organizam para definir a melhor maneira de entregar as funcionalidades de maior prioridade.

Times Scrum geralmente sofrem com a qualidade dos produtos, com a dificuldade dos processos de garantia de qualidade a cada nova versão, com dificuldade para realizar refatorações, com falta de documentação e orientação relacionada a testes e qualidade.

Neste contexto, este artigo sugere melhorias no processo de qualidade de equipes de desenvolvimento de software que utilizam o modelo ágil Scrum. O artigo aborda o Scrum, assim como, as técnicas e processo de testes de software e a sua aplicação nos modelos ágeis. Em específico, destaca-se o desenvolvimento guiado pelo teste (Test Driven Development - TDD) e os testes ágeis.

Desenvolvimento guiado pelo teste é uma técnica de desenvolvimento de software que se baseia em ciclos curtos de desenvolvimento, onde para cada ciclo o desenvolvedor escreve um caso de teste automatizado antes da elaboração da funcionalidade. Apenas depois do teste elabora, a funcionalidade pode ser implementada, sendo finalizada apenas quando passar nos testes previamente definidos.


Em que situação o tema é útil:
O tema testes e qualidade em equipes ágeis é útil para a busca por produtos de qualidade. No Scrum, a área de testes e qualidade não é enfatizado pois o processo básico da qualidade tradicional não é ágil. Além disso, não há um padrão sobre O tema testes e qualidade em equipes ágeis é útil para a busca por produtos de qualidade. No Scrum, por ser ágil, a área de testes e qualidade não ganha ênfase no guia, pois o processo básico da qualidade tradicional não é ágil. Não há uma padronização de como as metodologias ágeis tratam os testes, até porque há alguns dificultadores, como por exemplo, a documentação reduzida, o teste de regressão para a integração contínua e a falta de estratégia de teste ágil. O Scrum prega que as equipes devem ser multifuncionais como metodologias ágeis tratam os testes. Pelo contrário, existem alguns fatores que dificultam a aplicação de testes como a documentação reduzida e a falta de uma estratégia com foco em testes ágeis. O Scrum prega que as equipes devem ser multifuncionais, porém, desenvolvedores são quase sempre maus testadores. Especialmente os que testam seu próprio código.

Métodos ágeis ganham cada vez mais importância no competitivo mercado de desenvolvimento de software, um destes métodos chama-se Scrum.

Times Scrum são auto-organizáveis e multifuncionais, conforme guia Scrum. Sendo assim, a qualidade do software é responsabilidade de toda a equipe de desenvolvimento dentro da metodologia ágil Scrum.

No mundo Scrum ideal, os ciclos de desenvolvimento (sprints) resultam em uma versão estável e pronta para ser utilizada. Entretanto, esta não é a realidade da maioria dos times. Por padrão, durante as sprints, tarefas de testes são realizadas pelos próprios desenvolvedores. O teste realizado nestas condições, geralmente, é o teste unitário, ou algum teste indicado pelo desenvolvedor para validar a implementação ou correção, e isso somente, não é suficiente nem efetivo. O que acontece é que a realidade fica como mostra a Figura 1.

Liberação de sprints

Figura 1. Liberação de sprints.

No cenário de Scrum ideal, as partes destacadas em vermelho não existem. O time atinge várias vantagens em vários aspectos, principalmente no processo, porém, não tem melhoria na parte de testes (talvez até piore), e isso não agrega na qualidade final dos produtos.

Os testes de software podem ser considerados uma das partes mais difíceis das metodologias ágeis. Há uma alternativa para o processo de testes nas metodologias ágeis, chamado “Testes ágeis”, com processos, métodos, estratégias e ferramentas voltadas para atingir os valores do manifesto ágil, mas, essa alternativa ainda pede algumas adaptações no processo ágil padrão.

Neste contexto, este artigo apresenta um estudo do processo de desenvolvimento Scrum original, e a elaboração de uma proposta integrada desse processo, contemplando a equipe de testes e qualidade, a fim de aumentar a qualidade dos produtos finais e do processo. A proposta sugere a utilização de teste ágil, pratica de TDD (Test Driven Development) e levar um membro com habilidades de teste e qualidade para dentro do time, automatizando e organizando atividades de teste para posteriormente alcançar a qualidade desejada.

Problemática da parte de teste e qualidade em equipes multifuncionais

No Scrum, por ser ágil, a área de testes e qualidade não ganha ênfase no guia, pois o processo básico da qualidade tradicional não é ágil. Não há uma padronização de como as metodologias ágeis tratam os testes, até porque há alguns dificultadores como, por exemplo, a documentação reduzida, o teste de regressão para a integração contínua e a falta de estratégia de teste ágil.

O Scrum prega que as equipes devem ser multifuncionais e não devem ter funções específicas, porém, desenvolvedores são quase sempre maus testadores. Especialmente desenvolvedores que testam o seu próprio código.

O processo de teste inserido em um contexto ágil vem ganhando alternativas como os testes ágeis. Porém, testes ágeis exigem adaptações importantes no processo e algumas dessas adaptações não condizem com os valores do manifesto ágil.

Várias bibliografias pesquisadas sugerem trazer uma pessoa com skills (habilidades) de teste para dentro do time. Frente a esta alternativa surgem diversas dúvidas:

...
Quer ler esse conteúdo completo? Tenha acesso completo