desenvolvimento agil orientado a testes

99
Desenvolvimento Ágil Orientado a Testes Uma história real de como a busca pela qualidade de software transformou uma equipe de desenvolvimento Eder Ignatowicz segunda-feira, 22 de agosto de 2011

Upload: eder-ignatowicz

Post on 26-May-2015

2.269 views

Category:

Education


4 download

DESCRIPTION

Palestra apresentada na trilha de testes do TDC 2011.TDD com JUnit, BDD com JBehave, ATDD com WebJBehave e Selenium, integração contínua com Jenkins e inspeção contínua com Sonar: Como maximizar a qualidade de software através da integração destas técnicas e ferramentas, e de que maneira a utilização de valores ágeis e o desenvolvimento orientado a testes transformaram uma equipe de desenvolvimento Java, promovendo qualidade e motivação.

TRANSCRIPT

Page 1: Desenvolvimento agil orientado a testes

Desenvolvimento Ágil Orientado a Testes

Uma história real de como a busca pela qualidade de software transformou uma equipe de desenvolvimento

Eder Ignatowicz

segunda-feira, 22 de agosto de 2011

Page 2: Desenvolvimento agil orientado a testes

Eder Ignatowicz...

@ederign

segunda-feira, 22 de agosto de 2011

Page 3: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 4: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 5: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 6: Desenvolvimento agil orientado a testes

BDD

segunda-feira, 22 de agosto de 2011

Page 7: Desenvolvimento agil orientado a testes

BDD

segunda-feira, 22 de agosto de 2011

Page 8: Desenvolvimento agil orientado a testes

BDD

segunda-feira, 22 de agosto de 2011

Page 9: Desenvolvimento agil orientado a testes

BDD

segunda-feira, 22 de agosto de 2011

Page 10: Desenvolvimento agil orientado a testes

BDD

segunda-feira, 22 de agosto de 2011

Page 11: Desenvolvimento agil orientado a testes

BDD

segunda-feira, 22 de agosto de 2011

Page 12: Desenvolvimento agil orientado a testes

Orgulho

segunda-feira, 22 de agosto de 2011

Page 13: Desenvolvimento agil orientado a testes

O que te motiva no trabalho ?

segunda-feira, 22 de agosto de 2011

Page 14: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 15: Desenvolvimento agil orientado a testes

Ou um sentido de realização, um senso de propósito, um senso de orgulho ?

segunda-feira, 22 de agosto de 2011

Page 16: Desenvolvimento agil orientado a testes

Segundo o sociólogo e historiador norte-americano Richard Sennett, autor de "L'uomo artigiano" (O

homem artesão)...

segunda-feira, 22 de agosto de 2011

Page 17: Desenvolvimento agil orientado a testes

É preciso restabelecer o "conceito de ofício, sobre o princípio do artesão: valorizar o significado do trabalho, em vez da remuneração que se pode

esperar dele. Reabilitar o conceito de trabalho bem desenvolvido pelo simples prazer de

desenvolvê-lo bem, independentemente do conceito de performance ou de retribuição. Apenas

esse compromissodesinteressado dá significado à vida".

segunda-feira, 22 de agosto de 2011

Page 18: Desenvolvimento agil orientado a testes

É preciso restabelecer o "conceito de ofício, sobre o princípio do artesão: valorizar o significado do trabalho, em vez da

remuneração que se pode esperar dele. Reabilitar o conceito de

trabalho bem desenvolvido pelo simples prazer dedesenvolvê-lo bem, independentemente do

conceito de performance ou de retribuição. Apenas esse compromisso

desinteressado dá significado à vida".

segunda-feira, 22 de agosto de 2011

Page 19: Desenvolvimento agil orientado a testes

E no desenvolvimento de Software ?

segunda-feira, 22 de agosto de 2011

Page 20: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 21: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 22: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 23: Desenvolvimento agil orientado a testes

Mas e a minha história.... ?

segunda-feira, 22 de agosto de 2011

Page 24: Desenvolvimento agil orientado a testes

Tinhamos um grande (e longo) projeto para um cliente bancário...

E uma equipe competente...

segunda-feira, 22 de agosto de 2011

Page 25: Desenvolvimento agil orientado a testes

Utilizávamos Scrum e grande parte dos preceitos ágeis...

segunda-feira, 22 de agosto de 2011

Page 26: Desenvolvimento agil orientado a testes

Mas a cada mês o projeto crescia e surgiam problemas cada vez maiores (como em todos grandes projetos)....

segunda-feira, 22 de agosto de 2011

Page 27: Desenvolvimento agil orientado a testes

e o incômodo ficava cada vez maior....

segunda-feira, 22 de agosto de 2011

Page 28: Desenvolvimento agil orientado a testes

... dentre estes incômodos, o principal era...

segunda-feira, 22 de agosto de 2011

Page 29: Desenvolvimento agil orientado a testes

Nós podemos mais !

Precisamos construir (e garantir) uma maior qualidade do nosso trabalho...

segunda-feira, 22 de agosto de 2011

Page 30: Desenvolvimento agil orientado a testes

Numa “calma” reunião técnica...

segunda-feira, 22 de agosto de 2011

Page 31: Desenvolvimento agil orientado a testes

Escutamos uns aos outros e decidimos utilizar:

segunda-feira, 22 de agosto de 2011

Page 32: Desenvolvimento agil orientado a testes

TDD e BDD para as regras de negócio:

segunda-feira, 22 de agosto de 2011

Page 33: Desenvolvimento agil orientado a testes

E como fazemos isto ?

segunda-feira, 22 de agosto de 2011

Page 34: Desenvolvimento agil orientado a testes

TDD

segunda-feira, 22 de agosto de 2011

Page 35: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 36: Desenvolvimento agil orientado a testes

Para mim (e para muita gente)...

TDD não se refere a testes...

segunda-feira, 22 de agosto de 2011

Page 37: Desenvolvimento agil orientado a testes

TDD se refere a DESIGN de código.

segunda-feira, 22 de agosto de 2011

Page 38: Desenvolvimento agil orientado a testes

Nunca escreva uma única linha de código a menos que falhe em um teste

automatizado(RED). Então escreva o mínimo de código para o teste passar

(GREEN) e depois elimine a duplicação. (REFACTOR)

Kent Beck em um ângulo não muito favorável ;)

segunda-feira, 22 de agosto de 2011

Page 39: Desenvolvimento agil orientado a testes

Escreveremos testes unitários para todas as nossas classes.

segunda-feira, 22 de agosto de 2011

Page 40: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 41: Desenvolvimento agil orientado a testes

BDD

segunda-feira, 22 de agosto de 2011

Page 42: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 43: Desenvolvimento agil orientado a testes

Behavior Driven Development pode ser visto como uma técnica de

desenvolvimento ágil que encoraja colaboração entre

desenvolvedores, analistas, QA e o pessoal não técnico (stackholders)

para o sucesso de um projeto.

segunda-feira, 22 de agosto de 2011

Page 44: Desenvolvimento agil orientado a testes

Behavior Driven Development pode ser visto como uma técnica de

desenvolvimento ágil que encoraja colaboração entre

desenvolvedores, analistas, QA e o pessoal não técnico (stackholders)

para o sucesso de um projeto.

segunda-feira, 22 de agosto de 2011

Page 45: Desenvolvimento agil orientado a testes

Porque para mim TODOS são desenvolvedores de software!

segunda-feira, 22 de agosto de 2011

Page 46: Desenvolvimento agil orientado a testes

Multidisciplinaridade

segunda-feira, 22 de agosto de 2011

Page 47: Desenvolvimento agil orientado a testes

Penso que BDD pode por fim a “GUERRA” entre QA e

desenvolvedores (aka programadores)...

segunda-feira, 22 de agosto de 2011

Page 48: Desenvolvimento agil orientado a testes

Porque a guerra acontece ?

segunda-feira, 22 de agosto de 2011

Page 49: Desenvolvimento agil orientado a testes

“Testers” e “Programadores” não falam a mesma língua

segunda-feira, 22 de agosto de 2011

Page 50: Desenvolvimento agil orientado a testes

E com BDD conseguimos...

segunda-feira, 22 de agosto de 2011

Page 51: Desenvolvimento agil orientado a testes

Conversar no mesmo idioma (o do negócio)

segunda-feira, 22 de agosto de 2011

Page 52: Desenvolvimento agil orientado a testes

E como fazemos isto ?

segunda-feira, 22 de agosto de 2011

Page 53: Desenvolvimento agil orientado a testes

Todos membros do time escrevem as histórias colaborativamente nas reuniões

de planning...

segunda-feira, 22 de agosto de 2011

Page 54: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 55: Desenvolvimento agil orientado a testes

Collective Ownership entre desenvolvedores (aka testers +

programadores)

segunda-feira, 22 de agosto de 2011

Page 56: Desenvolvimento agil orientado a testes

(Demo BDD/JBehave)

segunda-feira, 22 de agosto de 2011

Page 57: Desenvolvimento agil orientado a testes

Também decidimos...

segunda-feira, 22 de agosto de 2011

Page 58: Desenvolvimento agil orientado a testes

ATDD (ou especificação por exemplo) para TODOS os fluxos principais do negócio

segunda-feira, 22 de agosto de 2011

Page 59: Desenvolvimento agil orientado a testes

E como fazemos isto ?

segunda-feira, 22 de agosto de 2011

Page 60: Desenvolvimento agil orientado a testes

Todos membros do time colaborativamente selecionam as

principais histórias nas reuniões de planning...

segunda-feira, 22 de agosto de 2011

Page 61: Desenvolvimento agil orientado a testes

Nem todas histórias viram testes de aceitação...

segunda-feira, 22 de agosto de 2011

Page 62: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 63: Desenvolvimento agil orientado a testes

Testes precisam ser organizados e fáceis de escrever e manter...

segunda-feira, 22 de agosto de 2011

Page 64: Desenvolvimento agil orientado a testes

Através da Selenium IDE / Badboy ?

segunda-feira, 22 de agosto de 2011

Page 65: Desenvolvimento agil orientado a testes

A promessa...

segunda-feira, 22 de agosto de 2011

Page 66: Desenvolvimento agil orientado a testes

A realidade...

segunda-feira, 22 de agosto de 2011

Page 67: Desenvolvimento agil orientado a testes

Que tal Page Objects ?

segunda-feira, 22 de agosto de 2011

Page 68: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 69: Desenvolvimento agil orientado a testes

Reusáveis

segunda-feira, 22 de agosto de 2011

Page 70: Desenvolvimento agil orientado a testes

Baixa manutenção

segunda-feira, 22 de agosto de 2011

Page 71: Desenvolvimento agil orientado a testes

Escondem detalhes desnecessários através de Orientação a Objetos

(tornando mais fácil o seu uso)

segunda-feira, 22 de agosto de 2011

Page 72: Desenvolvimento agil orientado a testes

E como fazemos isto ?

segunda-feira, 22 de agosto de 2011

Page 73: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 74: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 75: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 76: Desenvolvimento agil orientado a testes

Animei, quero codificar meus testes...

segunda-feira, 22 de agosto de 2011

Page 77: Desenvolvimento agil orientado a testes

Mas para preencher um simples Suggestion Box Ajax no Selenium...

segunda-feira, 22 de agosto de 2011

Page 78: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 79: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 80: Desenvolvimento agil orientado a testes

Eu como QA, quero (e devo) me preocupar com o negócio.

O meu FOCO é outro.

segunda-feira, 22 de agosto de 2011

Page 81: Desenvolvimento agil orientado a testes

Mas...

segunda-feira, 22 de agosto de 2011

Page 82: Desenvolvimento agil orientado a testes

Eu te afirmo...

segunda-feira, 22 de agosto de 2011

Page 83: Desenvolvimento agil orientado a testes

Com uma API caprichada toda a equipe é capaz de gostar de automatizar (programar) testes

funcionais !!!

segunda-feira, 22 de agosto de 2011

Page 84: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 85: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 86: Desenvolvimento agil orientado a testes

Todo o time programando testes !

segunda-feira, 22 de agosto de 2011

Page 87: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 88: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 89: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 90: Desenvolvimento agil orientado a testes

segunda-feira, 22 de agosto de 2011

Page 91: Desenvolvimento agil orientado a testes

TODOS somos desenvolvedores de software!

segunda-feira, 22 de agosto de 2011

Page 92: Desenvolvimento agil orientado a testes

(Selenium + Page Objects + BDD Demo)

segunda-feira, 22 de agosto de 2011

Page 93: Desenvolvimento agil orientado a testes

E finalmente...

segunda-feira, 22 de agosto de 2011

Page 94: Desenvolvimento agil orientado a testes

O Jenkins e o Sonar cuidando para que tudo se mantenha em ordem...

segunda-feira, 22 de agosto de 2011

Page 95: Desenvolvimento agil orientado a testes

E quais foram os resultados ?

segunda-feira, 22 de agosto de 2011

Page 96: Desenvolvimento agil orientado a testes

Para o cliente:

• Produto funcionando;

• Deploy “contínuo” em um sistema bancário;

• Velocidade e adaptação as mudanças;

•Confiança na equipe.

segunda-feira, 22 de agosto de 2011

Page 97: Desenvolvimento agil orientado a testes

Para a equipe:

• Produto funcionando;

• Maximização da qualidade;

• Confiança na modificação de funcionalidades;

• Sono tranquilo e....

segunda-feira, 22 de agosto de 2011

Page 98: Desenvolvimento agil orientado a testes

Orgulho

segunda-feira, 22 de agosto de 2011

Page 99: Desenvolvimento agil orientado a testes

Eder Ignatowicz...

@ederign

segunda-feira, 22 de agosto de 2011