• Nenhum resultado encontrado

Padrões de Testes Automatizados

N/A
N/A
Protected

Academic year: 2022

Share "Padrões de Testes Automatizados"

Copied!
37
0
0

Texto

(1)

Padrões de Testes Automatizados

Exame de Defesa de Mestrado Paulo Cheque Bernardo

Orientador: Fabio Kon DCC – IME/USP

4 de julho de 2011

(2)

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

(3)

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

(4)

4

Objetivos

Parte III: Gerenciamento de Testes Automatizados

Discutir o gerenciamento de projetos com testes automatizados

Métricas

(5)

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

(6)

Motivação

Pesquisa Agilcoop

(7)

Motivação

Pesquisa Agilcoop

(8)

Motivação

Pesquisa Agilcoop

(9)

Motivação

Pesquisa Agilcoop

(10)

Parte I

Introdução e Conceitos

(11)

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

(12)

12

Parte II

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

(13)

13

Testes de Correção de Qualidade

Automático

Repetitível

Útil

Único

Preciso

Profissional

Legível e Claro

Simples

Independente

Isolado

Rápido

(14)

14

Indícios de Problemas

(15)

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

(16)

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)

(17)

17

Módulos Assíncronos

Assert Eventually

Selenium (ajax/ajaj)

Util4Testing

Growing Object-Oriented Software:

Guided by Tests

(18)

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

(19)

19

Objetos Dublês

(20)

20

Objetos Dublês

(21)

21

Objeto Protótipo

(22)

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...

(23)

23

Antipadrões

Gancho para os Testes (Test Hook)

Testes Encadeados (Chained Tests)

(24)

24

Testes com Persistência de Dados

Bancos de Dados

Compartilhados

Locais

Em memória

Dados compartilhados criam dependências entre os testes

(25)

25

Dados Estáticos

Arquivos SQL, YAML, XML etc

(26)

26

Geração Dinâmica de Dados

Django Dynamic Fixture

(27)

27

Testes de Interface de Usuário

Discussão sobre a arquitetura MVC ou semelhante

Gravadores de Interação

Desempenho dos testes

(28)

28

Camada de Abstração

de Funcionalidades

(29)

29

Camada de Abstração

de Funcionalidades

(30)

30

Camada de Abstração

de Funcionalidades

(31)

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

(32)

Parte III

Gerenciamento de Testes Automatizados

(33)

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

(34)

34

Objetivo vs Métrica

(35)

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

(36)

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

(37)

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

Referências

Documentos relacionados

Foi também mostrado o problema da dimensionalidade no qual a probabilidade de classificação falsa de uma regra de decisão não aumenta na mesma proporção que aumenta o número

Os conceitos e comandos básicos do MATLAB são abordados através da realização de um conjunto de exercícios de interacção com esta aplicação, indicados numa caixa à esquerda

O Standards, traduzido como Padrões para Educação e Psicologia, foi pu- blicado pela American Educational Research Associassion (AERA), American Psychological Associassion (APA) e

“Trazei todos os dízimos à casa do tesouro, para que haja mantimento na minha casa, e depois fazei prova de mim nisto, diz o Senhor dos Exércitos, se eu não vos abrir as janelas

Copyright © 2002-2007 Rossana Andrade Slide 34 Um Exemplo de um bom Padrão (Cont.) Solução (Cont.). – Defina o protocolo entre os dois objetos- metade de tal forma que ele coordene as

A seguir, são apresentados os passos necessários para implementação de pool de conexões, utilizando Service Locator.. No diretório META-INF da aplicação, crie um

• Para este teste, foi utilizado o teste do modelo não-sobreposto com 148 padrões diferentes. • Considerando cada padrão diferente como um teste separado, foram executados 163

O plágio é o ato de assinar ou apresentar uma obra intelectual de qualquer natureza, contendo partes de uma obra que pertença a outra pessoa sem colocar os créditos para o