Testar impossivel jorge diz

59
Agile Brazil 2010 Slide 1 Testar: impossível Jorge Diz Globalcode

Transcript of Testar impossivel jorge diz

Agile Brazil 2010 Slide 1

Testar: impossível

Jorge DizGlobalcode

Agile Brazil 2010 Slide 2

Palestrrante

Jorge Alberto Diz

•Mestre e bacharel pela UNICAMP

•Programando desde 1983

•Testando desde 1994

•Javeiro

•Consultor: testes, metodologia

•Criador da Academia de Testes da Globalcode

Agile Brazil 2010 Slide 3

Defina teste de software

em até 140 caracteres no post-it

Agile Brazil 2010 Slide 4

O Jorge Diz:

Testar é difícil

Agile Brazil 2010 Slide 5

5 estágios do luto (Kübler-Ross)

Negação

Revolta

Barganha

Depressão

Aceitação

Agile Brazil 2010 Slide 6

Percepção dos testes

Agile Brazil 2010 Slide 7

Finalidade dos testes

Agile Brazil 2010 Slide 8

Finalidade dos testes

•Encontrar defeitos

•Definir comportamento esperado

•Monitoramento em produção

•Conformidade com contratos

•Riscos (mitigação / avaliação)

•Métricas de qualidade

Agile Brazil 2010 Slide 9

Isto é um elefante ?

Agile Brazil 2010 Slide 10

Isto é um teste ?

Agile Brazil 2010 Slide 11

Comportamento esperado

testesrequisitos exemplos

Agile Brazil 2010 Slide 12

Especificação por Exemplos

”Exemplos não são uma outra forma de ensinar:

são a única forma”

Agile Brazil 2010 Slide 13

Fato

Não temos um

modelo

consensual

para teste

Agile Brazil 2010 Slide 14

Requisitos

Análise

Design

Codificação

Testes

Entrega

Modelo V

Agile Brazil 2010 Slide 15

Q2: GUI, regras de negócio

(Selenium, FitNesse, Cucumber)

Q3: Exploratório, usabilidade, aceitação

funcional

Q1: Unitários, componentesQ4:

Desempenho / segurança

Testes

suport

e a

o t

ime

crí

tica a

o p

roduto

Quadrantes de Marick

Tecnologia

Negócio

Crí

tica a

o p

roduto

Apoio

à e

quip

e

Agile Brazil 2010 Slide 16

Pirâmide de Cohn

Interface Usuário

Regras de Negócio

Unidades

Pirâmide de Cohn

Agile Brazil 2010 Slide 17

pirâmide alimentar

Agile Brazil 2010 Slide 18

Pirâmide frágil

Interface Usuário

Unidades

Pirâmide frágil de testes

Agile Brazil 2010 Slide 19

Fluxo de problemas

erro defeito falha diagnóstico correção

Integração contínua / agile operations

Agile Brazil 2010 Slide 20

Só vemos a casca

Agile Brazil 2010 Slide 21

...mas não o interior

Agile Brazil 2010 Slide 22

Fato

acreditamos

vendo

Agile Brazil 2010 Slide 23

Dashboards

Agile Brazil 2010 Slide 24

Mitos

Agile Brazil 2010 Slide 25

Mito

Todos

sabemos o

que é teste

Agile Brazil 2010 Slide 26

Mito

Todos falamos

a mesma

língua

Agile Brazil 2010 Slide 27

Mito

Inspeções

substituem

testes

Agile Brazil 2010 Slide 28

Mito

Testes

substituem

inspeções

Agile Brazil 2010 Slide 29

Fato

Programação em

duplas é a principal

forma de inspeção

de código em XP

Agile Brazil 2010 Slide 30

Mito

Automatizar

tudo

Agile Brazil 2010 Slide 31

Fato

A maioria dos

defeitos é

encontrada por

teste manual

Agile Brazil 2010 Slide 32

Mito

Podemos

corrigir todos

os defeitos

encontrados

Agile Brazil 2010 Slide 33

Fato

É mais fácil

encontrar defeitos

que justificativas

para corrigi-los

Agile Brazil 2010 Slide 34

Mito

Especialista no

domínio

escreve

especificações

Agile Brazil 2010 Slide 35

Fato

Somos mais formais

que nosso cliente.

Todo formalismo

destinado a usuários

acabou encampado

por nós

Agile Brazil 2010 Slide 36

Mito

Desenvolvedores

sempre testaram

seu código

Agile Brazil 2010 Slide 37

Fato

Só recentemente, e

só alguns

(principalmente a

comunidade Ruby)

Agile Brazil 2010 Slide 38

Mito

Nossa

responsabilidade

para na entrega

Agile Brazil 2010 Slide 39

Fato

Nossa

responsabilidade

começa na primeira

entrega

Agile Brazil 2010 Slide 40

Kübler-Ross 1

Negação

Agile Brazil 2010 Slide 41

Não necessitamos

É tudo legado: já funciona há

muito tempo

O processo garante a

qualidade

Isso já deveria funcionar, para

quê testar ?

Agile Brazil 2010 Slide 42

Não devemos

É perda de tempo: eu sou

cobrado para entregar código

Isso está fora do nosso

escopo

O esforço seria melhor

investido em inspeções

Agile Brazil 2010 Slide 43

Não podemos

Ambiente de testes: isso não

vai acontecer aqui

Não temos permissão para

testar

Só dá para passar pelo

caminho feliz

Agile Brazil 2010 Slide 44

Não fazemos

Melhor deixar na mão da

fábrica: eles são

especialistas, não nós

O cliente não está disposto a

testar

Agile Brazil 2010 Slide 45

Kübler-Ross

Agile: em que

estágio

estamos ?

Agile Brazil 2010 Slide 46

Negação

Desenvolvedor tem

malícia para o teste

Agile Brazil 2010 Slide 47

Negação

Todos entendemos

mocks

Agile Brazil 2010 Slide 48

Revolta

Massas sintéticas

não são aceitas

pelo cliente

Agile Brazil 2010 Slide 49

Revolta

Meu cliente não

quer / não sabe

escrever testes de

aceitação

Agile Brazil 2010 Slide 50

Barganha

Mas muito do meu

código é legado...

Agile Brazil 2010 Slide 51

Barganha

Não consigo testar

as partes isoladas

Agile Brazil 2010 Slide 52

Barganha

Não consigo testar

concorrência

Agile Brazil 2010 Slide 53

Barganha

Não consigo testar

o banco de dados

Agile Brazil 2010 Slide 54

Barganha

Só dá para testar

usando a interface

usuário

Agile Brazil 2010 Slide 55

Barganha

Vamos ajeitar a

definição de Pronto

Agile Brazil 2010 Slide 56

Depressão

Testes de interface

usuário são sempre

frágeis e lentos

Agile Brazil 2010 Slide 57

Aceitação

Integração contínua

compensa

Agile Brazil 2010 Slide 58

Conclusões

• Como área, não temos um modelo comum para

entender testes

• No mercado, a área de testes está tendendo ao

modelo de fábrica

• Ainda se pensa em testes como consumidores

de requisitos

• Dificuldades técnicas exigem criatividade

• Só acreditamos vendo

Agile Brazil 2010 Slide 59

Contato

Email: [email protected]

Email, Gtalk: [email protected]

• Twitter: @jorgediz

• www.globalcode.com.br