teste sua aplicação antes que ela teste você

42
Teste sua aplicação antes que ela teste você I BootCamp OeSC Livre São Miguel do Oeste jun/2012 por Tiago Link

Upload: tiago-link

Post on 03-Jul-2015

517 views

Category:

Education


0 download

DESCRIPTION

O I BootCamp SMO organizado pelo grupo OeSC Livre foi organizado pelos voluntários da comunidade de software livre do Oeste Catarinense no dia 23 de junho de 2012 no SENAI em São Miguel do Oeste.Material da palestra em: https://github.com/tiagolink/palestra-do-evento-I-boocamp-smo

TRANSCRIPT

Page 1: Teste sua aplicação antes que ela teste você

Teste sua aplicaçãoantes que ela teste você

I BootCamp OeSC LivreSão Miguel do Oeste

jun/2012

por Tiago Link

Page 2: Teste sua aplicação antes que ela teste você

Who I am?

Tiago LinkDesenvolvedor Web

Page 3: Teste sua aplicação antes que ela teste você

desenvolvemos ideias e aplicações web

Page 4: Teste sua aplicação antes que ela teste você

Presenteio.comSistema online para criar listas de presentes para casamentos, amigo secreto...

Belasis.com.brSistema online para controle de salões de beleza, spas, estéticas, profissionais de beleza em geral...

Ruby e Rails

Page 5: Teste sua aplicação antes que ela teste você

Teste sua aplicação...

Page 6: Teste sua aplicação antes que ela teste você

... antes que ela teste você.

Page 7: Teste sua aplicação antes que ela teste você

Vamos falar de testes...

Page 8: Teste sua aplicação antes que ela teste você

Não. Vamos falar de

desenvolvimento.

Page 9: Teste sua aplicação antes que ela teste você

Código.Responsabilidade.

Page 10: Teste sua aplicação antes que ela teste você

Cenário:

Dono do produto

Page 11: Teste sua aplicação antes que ela teste você

Cenário:

Investidor

Dono do produto

Page 12: Teste sua aplicação antes que ela teste você

Cenário:

Investidor

Dono do produto

Desenvolvedor

Page 13: Teste sua aplicação antes que ela teste você

Contextos:● Adicionar nova funcionalidade...● Atualizar versão do sistema...● Atualizar dependências do sistema...● Alterar código legado...● Refatorar código criativo (gambiarra)...● ....

Page 14: Teste sua aplicação antes que ela teste você
Page 15: Teste sua aplicação antes que ela teste você

Como garantir a eficácia do código?

● Através de Testes...● Através de Documentação...● Através de Design Patterns...● Através de Especificação das Funcionalidades...● Através de Código limpo e bem escrito...● ...

Page 16: Teste sua aplicação antes que ela teste você

Tipos de Testes

● Caixa Branca● Caixa Preta● Testes Unitários● Testes de Integração● Testes de Aceitação● ...

Page 17: Teste sua aplicação antes que ela teste você

TDD

Desenvolvimento Orientado a Testes

Page 18: Teste sua aplicação antes que ela teste você

BDD

Desenvolvimento Guiado por Comportamento

Page 19: Teste sua aplicação antes que ela teste você

TDD/BDD

● São técnicas de Desenvolvimento● Encorajar o design simples● Inspirar confiança● Relacionado aos conceitos de metodologias Ágeis● Sistemas dinâmicos complexos, mesmo com fatores

determinados, geram resultados instáveis

Page 20: Teste sua aplicação antes que ela teste você

TDD/BDD

● Utiliza as ferramentas de testes● Proporciona a documentação do código● DRY, KISS, YAGNI...● Em vez de testar a funcionalidade você especifica ela● Escreve somente o código necessário, sem desperdício

Page 21: Teste sua aplicação antes que ela teste você

Escrever código eficaz évê-lo falhar primeiro.

Page 22: Teste sua aplicação antes que ela teste você

TDD/BDD - Ciclo de VidaRED

GREENREFACTOR

Page 23: Teste sua aplicação antes que ela teste você

TDD/BDD - Exemplo

Desenvolver o jogo: FizzBuzz

Page 24: Teste sua aplicação antes que ela teste você

TDD/BDD - Princípios

● Escrever primeiro o teste e vê-lo falhar● Escrever apenas o código suficiente para o teste passar● Refatorar● Escrever testes pequenos● Seguir com o próximo teste

Page 25: Teste sua aplicação antes que ela teste você

TDD/BDD - Vantagens

● Colabora para o aumento da qualidade do sistema● O software cresce de forma ordenada● O design do sistema melhora● Problemas são identificados antes de ir para o cliente● Colabora com o aprendizado do desenvolvedor● O software se adapta melhor a mudanças● ...

Page 26: Teste sua aplicação antes que ela teste você

BDD

● Como começar?● O que testar?

Page 27: Teste sua aplicação antes que ela teste você

Como começar?

● Escrever testes outside-in (de fora pra dentro)

Page 28: Teste sua aplicação antes que ela teste você
Page 29: Teste sua aplicação antes que ela teste você

O que testar?

● User Stories (história do usuário)

Page 30: Teste sua aplicação antes que ela teste você

Funcionalidade: Gerenciar PessoasComo um usuário do sistemaEu quero utilizar este cadastro em outros pontos do sistema

Histórias do Usuário

Page 31: Teste sua aplicação antes que ela teste você

Cenário: Adicionar Pessoa VálidaDado que estou em listagem de pessoasE clico em "Nova Pessoa"E preencho o campo nome com "Fulano de Tal"E preencho o campo email com "[email protected] clicar em "Salvar Registro"Então preciso ver "Pessoa cadastrada com sucesso"

Cenários - Critérios de Aceitação

Page 32: Teste sua aplicação antes que ela teste você

BDD - Exemplo(Cucumber)

Desenvolver uma calculadora

Page 33: Teste sua aplicação antes que ela teste você

BDD - Vantagens

● Documenta a regra de negócio● Valida a regra de negócio antes de escrever o código● Colabora com a comunicação interna dentro da empresa

Page 34: Teste sua aplicação antes que ela teste você

Dificuldades

● Não é fácil escrever testes, especialmente para iniciantes● Resistência de equipes e de gerentes de projetos● Muitas desculpas...

Page 35: Teste sua aplicação antes que ela teste você

Top 5 Desculpas

● Vai demorar muito mais...● A funcionalidade é fácil e não precisa testar...● Não sei testar ou como testar...● Isso não dá pra testar...● Melhor deixar para os outros testarem...● É mais caro testar...

Page 36: Teste sua aplicação antes que ela teste você

Dicas

● Baby Steps● Funcionalidades complexas: dividir em partes simples● Perseverança● Torcer para que o teste "quebre"*● Festejar quando isso acontecer.

Page 37: Teste sua aplicação antes que ela teste você

Perguntas?

Page 38: Teste sua aplicação antes que ela teste você

Vou ficar devendo...

● Integração Contínua● Testes Automatizados● Deploy Contínuo● Ferramentas BDD em ruby (Cucumber, Rspec, Steak)● Exemplos utilizados na prática

Page 39: Teste sua aplicação antes que ela teste você

Não existe bala de prata

Page 40: Teste sua aplicação antes que ela teste você

Teste sua aplicação...

Page 41: Teste sua aplicação antes que ela teste você
Page 42: Teste sua aplicação antes que ela teste você

Para entrar em contato...Basta pesquisar no Google a palavra "Link", você encontrará:

● about.me/tiagolink● github.com/tiagolink● twitter.com/tiagolink● facebook.com/tiagolink● slideshare.com/tiagolink● tiagolink.net (blog - em breve)● [email protected] (E-mail)

Obrigado!