Informatica
Testes Automatizados
Cursos de Verão 2008 – IME/USP www.agilcoop.org.br Paulo Cheque
Testes Automatizados
Teste de Software:
−
Teste Automatizado:
−
Executar o programa a ser testado com alguma entrada e conferir visualmente os resultados obtidos
Programa ou script executável que roda o programa a ser testado e faz verificações automáticas em cima dos efeitos colaterais obtidos.
Testar NÃO é depurar
−
−
Testar é verificar a presença de erros
Depurar é seguir o fluxo para identificar um erro conhecido copyleft by AgilCoop
2
Testes Automatizados e os
Princípios Ágeis
Software funcionando ...
Adaptação a mudanças ...
Colaboração com o cliente ...
Indivíduos e Interações ...
copyleft by AgilCoop
3
Testes Automatizados e XP
Entre as práticas mais importantes
−
A mais importante em muitos contextos
Muitas das práticas dependem de testes automatizados:
−
−
−
−
Refatoração
Integração Contínua
Propriedade Coletiva do Código
Ainda: Design Simples, Releases Pequenos
copyleft by AgilCoop
4
Roteiro
1) Motivação
2) Importância dos Testes Automatizados
3) Alguns Conceitos de Testes Automatizados
4) Alguns Tipos de Testes
5) Dicas para Escrever Bons Testes
6) Considerações Finais
copyleft by AgilCoop
5
Exemplo de Teste Manual
Jogo de cartas Buraco
Usuário só pode criar jogos válidos
copyleft by AgilCoop
6
Problemas
Difícil repetir os testes
Demorado
Cansativo
Executado poucas vezes
Poucos casos
Casos simples
Muito tempo gasto com depuração
Erros encontrados tardiamente:
−
Pressão, desconforto, estresse, perda de confiança
Ciclo de adição de erros regressão copyleft by AgilCoop
7
Modelos “tradicionais”
Cascata, espiral...
Requisitos
Análise
Arquitetura e
Design
Implementação
Validação
Produção copyleft by AgilCoop
8
+ Problemas