Os processos ágeis se destacam dos métodos tradicionais de
desenvolvimento, devido principalmente à priorização das funcionalidades
através do código executável, ao invés da produção extensa da
documentação escrita. Um ponto essencial para garantir a fidelidade das
implementações em relação aos requisitos está nos testes executados
sobre o código produzido.
Processos ágeis
Fonte: Digital Saint / shutterstock
Hendrickson (2012) afirma que, para a implementação de técnicas ágeis no
ambiente de testes, é necessário mudar a maneira que as equipes estão
acostumadas a trabalhar. Uma das mudanças necessárias é a introdução ao
conceito de colaboração com o cliente, ao invés de se utilizar
documentação abrangente, em consonância com o manifesto ágil. Desta
maneira, passamos a fazer um trabalho mais próximo com o cliente, e sua
participação no processo é peça-chave para que a técnica ágil de testes
possa ser adotada. Outro ponto importante é que todos da equipe devem
realizar testes, e não apenas o analista de testes. De acordo com a
autora, em um método ágil costuma-se dizer que a equipe é contagiada por
testes, e desta maneira o sistema é construído para ser testado desde o
início do projeto, e não apenas no fim da codificação. A qualidade
passa a ser da equipe toda, não somente dos analistas de testes ou
profissionais que possuem a palavra “qualidade” nos seus cargos.
Os requisitos de testes para a metodologia ágil não possuem grande
diferenciação em processos guiados por planos. O que realmente difere é o
grau de importância dado aos testes em cada um dos processos.
Nos processos guiados por planos, existe uma série extensa de
artefatos documentais resultantes da análise profunda realizada sobre o
sistema a ser desenvolvido. Os testes, neste caso, são apenas mais um
artefato produzido pelo processo, visando garantir a detecção de erros
antes da liberação da versão final.
O projeto que nasce com cobertura de teste
desde início permite a realização de testes de regressão, que implica em
se executar testes em todo o sistema, e não apenas na funcionalidade
implementada.
Ainda de acordo Elisabeth Hendrickson (2012), um sistema com cobertura
de testes desde o início deve realizar o máximo possível de testes
automatizados para que o trabalho manual e repetitivo não venha a
ocorrer. Isso trará ganho de tempo na execução do teste, e o custo de
transformar um caso de teste em automatizado rapidamente se paga. A
autora afirma que “[...] eu tenho observado em minhas equipes um custo
de 30% a mais na execução e transformação do teste em automatizado, mas
após a 3ª vez que eu executo a bateria de testes, eu já vejo como este
custo de 30% foi pequeno”. A autora segue dizendo que o tempo de
execução do teste automatizado em relação ao manual é incomparável, os
ganhos de velocidade de execução e a possibilidade de a qualquer momento
realizar um teste de regressão são maiores.
Os testes em métodos ágeis devem seguir o conceito de pequenas
interações para que a informação de como o sistema está sendo construído
e os erros que são detectados possam ser rapidamente identificados e
corrigidos. Ao término de uma interação, todos os testes devem ter sido
executados com êxito.
Segundo Erdogmus et al. (2005), os testes nas metodologias ágeis são
importantes, e os autores fazem as seguintes considerações em relação
aos dois tipos de teste:
- Testes manuais: objetivam utilizar o sistema para tentar
encontrar anomalias no funcionamento do software. Geralmente são pouco
eficientes, pois dificilmente se conseguiria chegar à exaustão
detectando todas as anomalias. Mas, mesmo com pouca eficiência e
fragilidade, ainda são utilizados pela facilidade e simplicidade de sua
aplicação, já que basta inserir o sistema em ambiente de validação,
simular as entradas e considerar os resultados obtidos.
- Testes automatizados: utilizam aplicativos específicos que testam exaustivamente um software através de scripts
preconfigurados. O fato de o teste ser automatizado não garante
cobertura total, pois algumas falhas só ocorrem com uma combinação
específica de entrada de dados. Um script bem definido colaborará muito para a eficácia dos testes, portanto, o profissional que definirá estes scripts
é, na verdade, a chave para o sucesso desta atividade. Seu conhecimento
e visão abrangente serão decisivos, assim como a análise dos resultados
adquiridos versus resultados esperados serão essenciais na busca e identificação de anomalias.
Extreme programming – Metodologia ágil
A metodologia ágil XP (eXtreme Programming) adota a técnica test-first,
em que, para cada nova funcionalidade, a nova estória é interpretada e
em seguida se escreve um teste que atenda especificamente esta nova
funcionalidade. Na implementação do código, a implementação do teste é
realizada, sendo adicionada à bateria de testes que já foram definidos
pelas outras implementações. A implementação do código só será aceita
após toda a bateria de testes ser realizada. Nesta modalidade, a
implementação dos testes antecede a implementação do código da
funcionalidade.
Em outra abordagem do XP, há o test-last. Neste caso, o mesmo conceito do test-first
é aplicado, com apenas uma diferença: a implementação desses testes
ocorre depois da implementação do código, sem alteração no restante do
processo.
Nenhum comentário:
Postar um comentário