Teste Ágil - Técnicas
Técnicas de teste de teste tradicional também podem ser usadas em testes Agile. Além disso, técnicas e terminologias de teste específicas do Agile são usadas nos projetos do Agile.
Base de Teste
Em projetos ágeis, o backlog do produto substitui os documentos de especificação de requisitos. O conteúdo do backlog do produto normalmente são histórias de usuários. Os requisitos não funcionais também são atendidos nas histórias de usuários. Portanto, a base de teste em projetos Agile é a história do usuário.
Para garantir o teste de qualidade, o seguinte também pode ser considerado adicionalmente como base de teste -
- Experiência de iterações anteriores do mesmo projeto ou projetos anteriores.
- Funções existentes, arquitetura, design, código e características de qualidade do sistema.
- Dados de defeito dos projetos atuais e anteriores.
- Feedback do cliente.
- Documentação do usuário.
Definição de Feito
A Definição de Concluído (DoD) é o critério usado em projetos Agile para garantir a conclusão de uma atividade no backlog do Sprint. O DoD pode variar de uma equipe Scrum para outra, mas deve ser consistente dentro de uma equipe.
DoD é uma lista de verificação de atividades necessárias que garantem a implementação de funções e recursos em uma história de usuário, juntamente com os requisitos não funcionais que fazem parte da história de usuário. Uma história de usuário atinge o estágio Concluído depois que todos os itens da lista de verificação do DoD são cumpridos. Um DoD é compartilhado pela equipe.
Um DoD típico para uma história de usuário pode conter -
- Critérios Detalhados de Aceitação Testável
- Critérios para garantir a consistência da História do Usuário com as outras na Iteração
- Critérios específicos relacionados ao produto
- Aspectos de comportamento funcional
- Características não funcionais
- Interfaces
- Requisitos de dados de teste
- Cobertura de teste
- Refactoring
- Requisitos de revisão e aprovação
Além do DoD para histórias de usuários, o DoD também é necessário -
- em todos os níveis de teste
- para cada característica
- para cada iteração
- para lançamento
Informação de Teste
Um testador precisa ter as seguintes informações de teste -
- Histórias de usuários que precisam ser testadas
- Critérios de aceitação associados
- Interfaces do sistema
- Ambiente onde se espera que o sistema funcione
- Disponibilidade de ferramentas
- Cobertura de teste
- DoD
Em projetos Agile, como o teste não é uma atividade sequencial e os testadores devem trabalhar em um modo colaborativo, é responsabilidade do testador -
- Obtenha continuamente as informações de teste necessárias.
- Identifique as lacunas de informação que afetam o teste.
- Resolva as lacunas de forma colaborativa com outros membros da equipe.
- Decida quando um nível de teste é alcançado.
- Garantir que os testes apropriados sejam executados em momentos relevantes.
Projeto de teste funcional e não funcional
Em projetos Agile, as técnicas de teste tradicionais podem ser usadas, mas o foco está nos testes iniciais. Os casos de teste precisam estar implementados antes do início da implementação.
Para design de teste funcional, os testadores e desenvolvedores podem usar as técnicas tradicionais de design de teste Black Box, como -
- Particionamento equivalente
- Análise de valor limite
- Tabelas de Decisão
- Estado de transição
- Árvore de Classe
Para design de teste não funcional, como os requisitos não funcionais também fazem parte de cada história de usuário, as técnicas de design de teste de caixa preta só podem ser usadas para projetar os casos de teste relevantes.
Teste Exploratório
Em projetos Agile, o tempo costuma ser o fator de limitação para a Análise e Design de Teste. Nesses casos, as técnicas de teste exploratório podem ser combinadas com as técnicas de teste tradicionais.
Teste Exploratório (TE) é definido como aprendizagem simultânea, design de teste e execução de teste. No Teste Exploratório, o testador controla ativamente o design dos testes à medida que são realizados e usa as informações obtidas durante o teste para criar novos e melhores testes.
O teste exploratório é útil para acomodar mudanças em projetos Agile.
Teste Baseado em Risco
O teste baseado em risco é um teste baseado no risco de falha e mitiga os riscos usando técnicas de design de teste.
Um risco de qualidade do produto pode ser definido como um problema potencial com a qualidade do produto. Os riscos de qualidade do produto incluem -
- Riscos funcionais
- Riscos de desempenho não funcionais
- Riscos de usabilidade não funcional
A análise de risco deve ser feita para avaliar a probabilidade (probabilidade) e o impacto de cada risco. Então, os riscos são priorizados -
- Altos riscos requerem testes extensivos
- Riscos baixos requerem apenas testes cursivos
Os testes são elaborados usando técnicas de teste apropriadas com base no nível de risco e na característica de risco de cada risco. Os testes são executados para mitigar os riscos.
Testes de ajuste
Os testes de ajuste são testes de aceitação automatizados. As ferramentas Fit e FitNesse podem ser usadas para automatizar testes de aceitação.
FIT usa JUnit, mas estende a funcionalidade de teste. As tabelas HTML são usadas para exibir os casos de teste. Fixture é uma classe Java por trás da tabela HTML. O fixture pega o conteúdo da tabela HTML e executa os casos de teste no projeto que está sendo testado.