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.
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