Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I:...

37
Padrões de Testes Automatizados Exame de Defesa de Mestrado Paulo Cheque Bernardo Orientador: Fabio Kon DCC – IME/USP 4 de julho de 2011

Transcript of Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I:...

Page 1: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

4

Objetivos

● Parte III: Gerenciamento de Testes Automatizados

● Discutir o gerenciamento de projetos com testes automatizados

● Métricas

Page 5: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

MotivaçãoPesquisa Agilcoop

Page 7: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

MotivaçãoPesquisa Agilcoop

Page 8: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

MotivaçãoPesquisa Agilcoop

Page 9: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

MotivaçãoPesquisa Agilcoop

Page 10: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

Parte I

Introdução e Conceitos

Page 11: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

12

Parte II

Práticas Padrões e Técnicas para Teste de Correção

Page 13: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

14

Indícios de Problemas

Page 15: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

17

Módulos Assíncronos

● Assert Eventually– Selenium (ajax/ajaj)

– Util4Testing

– Growing Object-Oriented Software: Guided by Tests

Page 18: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

19

Objetos Dublês

Page 20: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

20

Objetos Dublês

Page 21: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

21

Objeto Protótipo

Page 22: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

23

Antipadrões

● Gancho para os Testes (Test Hook)

● Testes Encadeados (Chained Tests)

Page 24: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

25

Dados Estáticos

● Arquivos SQL, YAML, XML etc

Page 26: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

26

Geração Dinâmica de Dados

● Django Dynamic Fixture

Page 27: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

28

Camada de Abstração de Funcionalidades

Page 29: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

29

Camada de Abstração de Funcionalidades

Page 30: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

30

Camada de Abstração de Funcionalidades

Page 31: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

Parte III

Gerenciamento de Testes Automatizados

Page 33: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

34

Objetivo vs Métrica

Page 35: Padrões de Testes Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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 Automatizadoscheque/paulocheque-defesamestrado2011.pdf · 2 Objetivos Parte I: Introdução e Conceitos Introduzir o tema Testes Automatizados Discutir questões

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