SlideShare a Scribd company logo
1 of 62
Download to read offline
[ TDD | ATDD ] 
     Test Driven‐Development 
Acceptance Test Driven‐Development 



         Paulo Igor 
        @pigodinho 
   piagodinho@gmail.com 
Quem eu sou...
http://blog.pigor.net
Apresentar a essência das 
  técnicas TDD e ATDD  
Você testa seu soAware? 
Você constrói testes automaEzados? 
Você constrói seus testes 
automaEzados antes de codificar? 
Se você respondeu SIM apenas 
           uma vez… 
Você precisa rever seus conceitos
                                 
Se você disse NÃO… 
Testar é importante!!!
                      
Testar é… 


•  Experimentação. 
•  Pôr a prova. 
•  Submeter a avaliação / avaliar. 
TESTE
80% de DESPERDÍCIO 
O que isso tem a ver com Teste? 
O Teste cerEfica se as 
NECESSIDADES foram atendidas!
                             
…se as necessidades SERÃO 
        atendidas! 
Conhecer melhor as expectaEvas
                              
“ATDD/TDD são formas de 
   conhecer melhor as 
     necessidades…” 
“ATDD/TDD são formas de 
antecipar as expectaEvas…”
                          
“TDD antecipa o comportamento 
          do código”
                    

             ≠ 
     “ATDD antecipa o 
 comportamento do soAware”
                          
Como funciona??? 
Princípios e a Essência do TDD  
User Story
                             
•  Como usuário eu gostaria de me cadastrar 
   fornecendo: nome, email, senha, confirmação. 

•  Condição: 
   –  O usuário deve possuir uma senha válida 


•  Ação: 
   –  Verificar se a confirmação da senha é válida, senão 
      enviar mensagem de erro adequada 
Criando o Teste 
Adicionando a Falha 
Código Novo!
            
Compilou! Passou? 
Hora da Faxina!!!
                 
Adicionando Falha 
+ Código Novo o/
                 
Compilou? Passou? 
Hora da Faxina novamente!!!
                           
User Story – OK!? 
•  Como usuário eu gostaria de me cadastrar 
   fornecendo: nome, email, senha, confirmação. 

•  Condição: 
   –  O usuário deve possuir uma senha válida 


•  Ação: 
   –  Verificar se a confirmação da senha é válida, senão 
      enviar mensagem de erro adequada 
Adicionando Falha 
+ Código Novo o/
                 
Compilou? Passou? 
Compilou? Passou? 
Hora da faxina...
                             



Hum...!!!
Hora da faxina...
                                 



Melhor agora!
Refactoring no Código...
                        
User Story, OK? [Yeap!]
                                   
•  Como usuário eu gostaria de me cadastrar 
   fornecendo: nome, email, senha, confirmação. 

•  Condição: 
   –  O usuário deve possuir uma senha válida 


•  Ação: 
   –  Verificar se a confirmação da senha é válida, senão 
      enviar mensagem de erro adequada 
Fitnesse e Concordion 

    Ferramentas ATDD 
TDD e ATDD ajudam… 
…a atender melhor os requisitos 
                                
…combater a síndrome de 
    Nostradamus    
Keep It Simple, Stupid!
                       
…a manter a casa arrumada 
…promove o Design EvoluEvo 
Blindagem do código 
Outros benepcios
                            
•  Maior cobertura de Testes 
•  Design testável 
•  Requisitos executáveis 
[ TDD | ATDD ] 
     Test Driven‐Development 
Acceptance Test Driven‐Development 



         Paulo Igor 
        @pigodinho 
   piagodinho@gmail.com 

More Related Content

Viewers also liked

Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 

Viewers also liked (6)

Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anos
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 

Similar to Palestra tdd-completa

Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de SoftwareGDGFoz
 
Evoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de ContratoEvoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de ContratoRafael Portela
 
WebCamps Software Testing
WebCamps Software TestingWebCamps Software Testing
WebCamps Software TestingRodrigo Vidal
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In TubaRafael Paz
 
Além do TDD...
Além do TDD...Além do TDD...
Além do TDD...GTS-CE
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...GUTS-RS
 
TDD: Técnicas, Benefícios e Limitação
TDD: Técnicas, Benefícios e Limitação TDD: Técnicas, Benefícios e Limitação
TDD: Técnicas, Benefícios e Limitação Icaro Camelo
 
Teste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTeste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTiago Link
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesIsmael
 
Start-ups em grandes empresas
Start-ups em grandes empresasStart-ups em grandes empresas
Start-ups em grandes empresasAntonio Silveira
 
Não há agile sem práticas ágeis
Não há agile sem práticas ágeisNão há agile sem práticas ágeis
Não há agile sem práticas ágeisMarco Baccaro
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
Feature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testávelFeature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testávelHélio Medeiros
 

Similar to Palestra tdd-completa (20)

Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de Software
 
Evoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de ContratoEvoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de Contrato
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
WebCamps Software Testing
WebCamps Software TestingWebCamps Software Testing
WebCamps Software Testing
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
Ctai Teste De Software Aula 2
Ctai Teste De Software Aula 2Ctai Teste De Software Aula 2
Ctai Teste De Software Aula 2
 
Além do TDD...
Além do TDD...Além do TDD...
Além do TDD...
 
Clean code
Clean codeClean code
Clean code
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
 
Além do TDD
Além do TDDAlém do TDD
Além do TDD
 
TDD: Técnicas, Benefícios e Limitação
TDD: Técnicas, Benefícios e Limitação TDD: Técnicas, Benefícios e Limitação
TDD: Técnicas, Benefícios e Limitação
 
Teste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTeste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste você
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros Macetes
 
Start-ups em grandes empresas
Start-ups em grandes empresasStart-ups em grandes empresas
Start-ups em grandes empresas
 
Não há agile sem práticas ágeis
Não há agile sem práticas ágeisNão há agile sem práticas ágeis
Não há agile sem práticas ágeis
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Feature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testávelFeature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testável
 

More from Paulo Igor Alves Godinho

More from Paulo Igor Alves Godinho (12)

Pequenas Ações para Revolucionar sua Carreira
Pequenas Ações para Revolucionar sua CarreiraPequenas Ações para Revolucionar sua Carreira
Pequenas Ações para Revolucionar sua Carreira
 
Kanban - Mais que um quadro na parede
Kanban - Mais que um quadro na paredeKanban - Mais que um quadro na parede
Kanban - Mais que um quadro na parede
 
Melhorando o Fluxo de Trabalho com Kanban
Melhorando o Fluxo de Trabalho com KanbanMelhorando o Fluxo de Trabalho com Kanban
Melhorando o Fluxo de Trabalho com Kanban
 
Small Acts - Pequenas ações geram grandes revoluções
Small Acts - Pequenas ações geram grandes revoluçõesSmall Acts - Pequenas ações geram grandes revoluções
Small Acts - Pequenas ações geram grandes revoluções
 
Preocupações Desenvolvedor Ágil
Preocupações Desenvolvedor ÁgilPreocupações Desenvolvedor Ágil
Preocupações Desenvolvedor Ágil
 
Buscando Agilidade sem Rótulos
Buscando Agilidade sem RótulosBuscando Agilidade sem Rótulos
Buscando Agilidade sem Rótulos
 
JRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidadesJRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidades
 
Facetas do desenvolvedor agil
Facetas do desenvolvedor agilFacetas do desenvolvedor agil
Facetas do desenvolvedor agil
 
Palestra agile brazil (versão atualizada)
Palestra agile brazil (versão atualizada)Palestra agile brazil (versão atualizada)
Palestra agile brazil (versão atualizada)
 
Carreira2 0
Carreira2 0Carreira2 0
Carreira2 0
 
Palestra scrum
Palestra scrumPalestra scrum
Palestra scrum
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 

Palestra tdd-completa