Desenvolvimento agil orientado a testes

Post on 29-Nov-2014

1.533 views 0 download

description

Desenvolvimento Ágil Orientado a Testes. Palestra apresentada no SPIN Campinas (5/12) http://www.cpqd.com.br/spin-cps/ e no Polis Hyperlink (7/12) http://hyperlink.polisdetecnologia.com.br/

Transcript of 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, 5 de dezembro de 2011

Eder Ignatowicz...

@ederign

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

BDD

segunda-feira, 5 de dezembro de 2011

BDD

segunda-feira, 5 de dezembro de 2011

BDD

segunda-feira, 5 de dezembro de 2011

BDD

segunda-feira, 5 de dezembro de 2011

BDD

Pair Programming

segunda-feira, 5 de dezembro de 2011

BDD

Pair Programming

Kanban

segunda-feira, 5 de dezembro de 2011

BDD

segunda-feira, 5 de dezembro de 2011

Orgulho

segunda-feira, 5 de dezembro de 2011

O que te motiva no trabalho ?

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

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

homem artesão)...

segunda-feira, 5 de dezembro de 2011

É 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, 5 de dezembro de 2011

É 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, 5 de dezembro de 2011

E no desenvolvimento de Software ?

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

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

E uma equipe competente...

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

Nós podemos mais !

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

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

Escutamos uns aos outros e decidimos utilizar:

segunda-feira, 5 de dezembro de 2011

TDD e BDD para as regras de negócio:

segunda-feira, 5 de dezembro de 2011

E como fazemos isto ?

segunda-feira, 5 de dezembro de 2011

TDD

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

Para mim (e para muita gente)...

TDD não se refere a testes...

segunda-feira, 5 de dezembro de 2011

TDD se refere a DESIGN de código.

segunda-feira, 5 de dezembro de 2011

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, 5 de dezembro de 2011

Escreveremos testes unitários para todas as nossas classes.

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

Pair Programming

segunda-feira, 5 de dezembro de 2011

Pair Programming?!?

segunda-feira, 5 de dezembro de 2011

Pair Programming?!?

Pairing Station

segunda-feira, 5 de dezembro de 2011

Pairing Station

Piloto

Pair Programming?!?

segunda-feira, 5 de dezembro de 2011

Pairing Station

Piloto

Navegador

Pair Programming?!?

segunda-feira, 5 de dezembro de 2011

Pairing Station

Piloto

Navegador

Próxima linha de código, sintaxe, API, classe em

desenvolvimento....

Pair Programming?!?

segunda-feira, 5 de dezembro de 2011

Pairing Station

Piloto

Próxima linha de código, sintaxe, API, classe em

desenvolvimento....

Navegador

Estamos indo na direção certa? Requisitos,

alternativas, próximo caso de teste

Pair Programming?!?

segunda-feira, 5 de dezembro de 2011

Não é um desperdício?

Meu custo dobrará?

Porque eu colocaria duas pessoas em uma tarefa que uma pode fazer?

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

E como Pair Programming nos ajudou?

Revisão contínuaComunicação

Menos Defeitos (ou antecipados)Qualidade do design

Resolução de problemasAmbiente de aprendizado e colaboração

Maior produtividadeSatisfação

Entrosamento do Time

segunda-feira, 5 de dezembro de 2011

BDD

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

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, 5 de dezembro de 2011

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, 5 de dezembro de 2011

Porque para mim TODOS são desenvolvedores de software!

segunda-feira, 5 de dezembro de 2011

Multidisciplinaridade

segunda-feira, 5 de dezembro de 2011

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

desenvolvedores (aka programadores)...

segunda-feira, 5 de dezembro de 2011

Porque a guerra acontece ?

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

E com BDD conseguimos...

segunda-feira, 5 de dezembro de 2011

Conversar no mesmo idioma (o do negócio)

segunda-feira, 5 de dezembro de 2011

E como fazemos isto ?

segunda-feira, 5 de dezembro de 2011

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

de planning...

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

Collective Ownership entre desenvolvedores (aka testers +

programadores)

segunda-feira, 5 de dezembro de 2011

Também decidimos...

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

E como fazemos isto ?

segunda-feira, 5 de dezembro de 2011

Todos membros do time colaborativamente selecionam as

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

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

Através da Selenium IDE / Badboy ?

segunda-feira, 5 de dezembro de 2011

A promessa...

segunda-feira, 5 de dezembro de 2011

A realidade...

segunda-feira, 5 de dezembro de 2011

Que tal Page Objects ?

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

Reutilizáveis

segunda-feira, 5 de dezembro de 2011

Baixa manutenção

segunda-feira, 5 de dezembro de 2011

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

(tornando mais fácil o seu uso)

segunda-feira, 5 de dezembro de 2011

E como fazemos isto ?

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

Animei, quero codificar meus testes...

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

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

O meu FOCO é outro.

segunda-feira, 5 de dezembro de 2011

Mas...

segunda-feira, 5 de dezembro de 2011

Eu te afirmo...

segunda-feira, 5 de dezembro de 2011

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

funcionais !!!

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

Todo o time programando testes !

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

segunda-feira, 5 de dezembro de 2011

TODOS somos desenvolvedores de software!

segunda-feira, 5 de dezembro de 2011

(Selenium + Page Objects + BDD Demo)

segunda-feira, 5 de dezembro de 2011

E finalmente...

segunda-feira, 5 de dezembro de 2011

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

segunda-feira, 5 de dezembro de 2011

KANBAN para controle do fluxo

segunda-feira, 5 de dezembro de 2011

E quais foram os resultados ?

segunda-feira, 5 de dezembro de 2011

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, 5 de dezembro de 2011

Para a equipe:

• Produto funcionando;

• Maximização da qualidade;

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

• Sono tranquilo e....

segunda-feira, 5 de dezembro de 2011

Orgulho

segunda-feira, 5 de dezembro de 2011

Eder Ignatowicz...

@ederign

segunda-feira, 5 de dezembro de 2011