Padrões de Testes Automatizados - IME-USP
Transcript of Padrões de Testes Automatizados - IME-USP
![Page 1: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/1.jpg)
Padrões deTestes Automatizados
Exame de Defesa de MestradoPaulo Cheque BernardoOrientador: Fabio Kon
DCC – IME/USP4 de julho de 2011
![Page 2: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/2.jpg)
2
Objetivos
● Parte I: Introdução e Conceitos
● Introduzir o tema Testes Automatizados● Discutir questões sobre nomenclatura e
definições de termos● Relacionar Testes Automatizados com
Qualidade, Métodos Ágeis e Software Livre
● Discutir boas práticas de automação de testes
![Page 3: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/3.jpg)
3
Objetivos
● Parte II: Práticas Padrões e Técnicas para Teste de Correção
● Integrar conceitos da área de Testes de Software com os dos Métodos Ágeis
● Documentar dicas e boas práticas de automação
● Encontrar e definir Padrões e Antipadrões
![Page 4: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/4.jpg)
4
Objetivos
● Parte III: Gerenciamento de Testes Automatizados
● Discutir o gerenciamento de projetos com testes automatizados
● Métricas
![Page 5: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/5.jpg)
5
Motivação do Trabalho
● Tema relativamente novo● Pouco estudo nacional● Poucos livros nacionais● Pouca documentação de padrões● Tema de muito interesse por empresas
![Page 6: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/6.jpg)
MotivaçãoPesquisa Agilcoop
![Page 7: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/7.jpg)
MotivaçãoPesquisa Agilcoop
![Page 8: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/8.jpg)
MotivaçãoPesquisa Agilcoop
![Page 9: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/9.jpg)
MotivaçãoPesquisa Agilcoop
![Page 10: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/10.jpg)
Parte I
Introdução e Conceitos
![Page 11: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/11.jpg)
11
Introdução
● Comparação com testes manuais– Discussão para mostrar a importância
da automação
● História– Entendimento da evolução da área
● Recomendações gerais: quem deve implementar, quando implementar, onde executar, quando executar, documentação etc
![Page 12: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/12.jpg)
12
Parte II
Práticas Padrões e Técnicas para Teste de Correção
![Page 13: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/13.jpg)
13
Testes de Correção de Qualidade
● Automático● Repetitível● Útil● Único● Preciso● Profissional
● Legível e Claro● Simples● Independente● Isolado● Rápido
![Page 14: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/14.jpg)
14
Indícios de Problemas
![Page 15: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/15.jpg)
15
Testes de Unidade Boas Práticas
● Dicas sobre o código fonte:– Sem rigores das linguagens de
programação
– Arquitetura simples
– Sem variáveis globais mutáveis
– …
● Refatorações● Orientação a Objetos
– Padrões de projetos
![Page 16: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/16.jpg)
16
Programação Orientada a Aspectos
● Algumas abordagens comuns:– Aspecto como unidade
– Testes de integração
● Proposta sugerida: Testar como sistema Orientado a Objetos (Util4Selenium)
● Pontos de Junção: Objeto Protótipo (útil também para Reflexão)
● Adendos: Objeto Humilde (Humble Object)
![Page 17: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/17.jpg)
17
Módulos Assíncronos
● Assert Eventually– Selenium (ajax/ajaj)
– Util4Testing
– Growing Object-Oriented Software: Guided by Tests
![Page 18: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/18.jpg)
18
Padrões
● Testes de Unidade– 12 padrões
– 2 antipadrões
● Testes com Persistência de Dados– 2 padrões
● Testes de Interface de Usuário– 7 padrões
– 3 antipadrões
![Page 19: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/19.jpg)
19
Objetos Dublês
![Page 20: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/20.jpg)
20
Objetos Dublês
![Page 21: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/21.jpg)
21
Objeto Protótipo
![Page 22: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/22.jpg)
22
Padrões de Qualidade
● Testes por Comparação de Algoritmos
● Teste por Probabilidade (TestNG)
● Python-QAssertions:– Verificar Inversibilidade
– Verificar Valores Limites
assertValidation: Min, Max, Range...
![Page 23: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/23.jpg)
23
Antipadrões
● Gancho para os Testes (Test Hook)
● Testes Encadeados (Chained Tests)
![Page 24: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/24.jpg)
24
Testes com Persistência de Dados
● Bancos de Dados– Compartilhados
– Locais
– Em memória
● Dados compartilhados criam dependências entre os testes
![Page 25: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/25.jpg)
25
Dados Estáticos
● Arquivos SQL, YAML, XML etc
![Page 26: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/26.jpg)
26
Geração Dinâmica de Dados
● Django Dynamic Fixture
![Page 27: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/27.jpg)
27
Testes de Interface de Usuário
● Discussão sobre a arquitetura MVC ou semelhante
● Gravadores de Interação
● Desempenho dos testes
![Page 28: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/28.jpg)
28
Camada de Abstração de Funcionalidades
![Page 29: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/29.jpg)
29
Camada de Abstração de Funcionalidades
![Page 30: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/30.jpg)
30
Camada de Abstração de Funcionalidades
![Page 31: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/31.jpg)
31
Técnicas de Desenvolvimento com Testes Automatizados
● Descrição e discussão sobre:– TFD, TAD, TDD e BDD
● Caracaterísticas de cada técnica
● Quando Utilizar
● Métricas => Testabilidade
![Page 32: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/32.jpg)
Parte III
Gerenciamento de Testes Automatizados
![Page 33: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/33.jpg)
33
Métricas
● Descrição e discussão de algumas métricas relacionadas a testes automatizados
● Catálogo de métricas:– Cobertura
– Testabilidade
– Outras
● Como interpretá-las● Quando utilizá-las● Dicas gerais: Goal-Question-Metric
![Page 34: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/34.jpg)
34
Objetivo vs Métrica
![Page 35: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/35.jpg)
35
Conclusões
● Automação aumenta a quantidade de tempo gasto com verificação do sistema e diminui o tempo gasto com depuração e correção de erros
● É fundamental que a qualidade do código dos testes seja a mesma do código de produção
● É importante facilitar a escrita e manutenção dos cenários de testes
![Page 36: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/36.jpg)
36
Conclusões
● Testes Automatizados influenciam na forma que o sistema é modelado
● É possível criar uma linguagem comum entre a teoria de Testes de Software e Metodologias Ágeis através de padrões
● É possível integrar técnicas de Testes de Software em ferramentas e aplicar junto com TDD
![Page 37: Padrões de Testes Automatizados - IME-USP](https://reader030.fdocument.pub/reader030/viewer/2022012720/61b3067c860d1665db2482a4/html5/thumbnails/37.jpg)
37
Trabalhos Futuros
● Continuar o desenvolvimento de novas ferramentas que simplifiquem a automação de testes
● Continuar a documentar padrões● Encontrar padrões em testes de
padrões de projeto e arquiteturais● Padrões de testes para Programação
Funcional● Padrões de testes em Web Services