Agile Testing, em poucas palavras, é uma prática de testes de software que segue os princípios ágeis para entregar ao usuário um produto com maior qualidade. A maior diferença entre Agile Testing e os métodos tradicionais é apenas filosófica: os testes deixam de ser uma forma de evitar a entrega de um sistema ruim para passarem a fazer parte de uma política de desenvolver um bom produto desde o início do projeto.
Neste post, apresentamos os 9 princípios de Agile Testing.
O primeiro deles diz que um processo de desenvolvimento que inclui testes resulta em um produto melhor. Os testes têm que ser vistos como uma forma de criar um produto de qualidade desde o início e não apenas como uma forma de prevenir bugs na hora que o sistema é entregue ao cliente. Visando apoiar esta estratégia, o segundo princípio diz que os testes não podem ser vistos como apenas uma fase do projeto, eles devem ser considerados requisito para a conclusão de cada história da sprint.
O terceiro princípio diz que todos testam, não apenas o especialista em testes. Já o quarto princípio diz que uma história só é considerada pronta se forem realizados os testes necessários. Esses dois princípios se relacionam entre si. Se apenas o especialista em testes é o responsável por testar todos os artefatos gerados em uma sprint, essa atividade se tornará um gargalo e diminuirá a velocidade da equipe. Além disso, os tipos de testes realizados pela equipe e pelo especialista serão distintos e farão uma cobertura melhor do sistema. Por isso, todos devem testar sem esquecer que o teste deve estar presente em cada história.
Outro princípio de Agile Testing é diminuir o tempo entre a implementação de uma história e a validação com o usuário. Para as equipes ágeis este princípio é fácil de ser alcançado já que possuem a vantagem de entregar produtos para o cliente em pequenos ciclos de tempo.
O sexto princípio diz que os erros encontrados devem ser resolvidos assim que possível para que o código permaneça limpo, sem bugs.
O sétimo princípio diz que testes têm o potencial de descobrir requisitos não explicitados. Ao testar um produto, diversas expectativas sobre o seu comportamento diante de situações adversas são levantadas. A pergunta é: seria essa expectativa um requisito implícito ou apenas uma preocupação não justificada? O ideal é ter a resposta para essa pergunta antes de gastar tempo testando cenários que podem ser encarados como dispensáveis pelo product owner.
O oitavo princípio de Agile Testing é a redução da documentação de teste. Não é preciso escrever longos documentos com scripts a serem seguidos durante o teste. O uso de checklists e documentações leves já resolvem o problema. O importante é manter o foco na essência do teste e não nos detalhes envolvidos.
O último princípio de Agile Testing envolve a técnica de Test Driven Development (TDD). Definir os testes junto com a criação dos artefatos de cada história e usá-los como apoio do processo de desenvolvimento auxilia a criação de um projeto limpo e bem feito.
Então, resumindo, os 9 princípios de Agile Testing são:
1. Um processo de desenvolvimento que inclua testes resulta em um produto melhor;
2. Os testes não podem ser vistos apenas como uma fase do projeto;
3. Todos testam, não apenas o especialista em testes;
4. Uma história só é considerada pronta se forem realizados os testes necessários;
5. Diminua o tempo entre a implementação de uma história e a validação com o usuário;
6. Erros encontrados devem ser resolvidos assim que possível;
7. Testes descobrem requisitos não explicitados;
8. Reduza a documentação de teste;
9. Adote, sempre que possível, a técnica de Test Driven Development (TDD).
Referência: Agile Testing: Nine Principles and Six Concrete Practices for Testing on Agile Teams – Elizabeth Hendrickson