SlideShare uma empresa Scribd logo
TDD e sua influência
no design da aplicação
         felipebenevides.net
          @felipebenevides
     github.com/felipebenevides
WTF is TDD?
Kent Beck
  “Evolutionary approach to
development which combines
test-first development where
 you write a test before you
write just enough production
 code to fulfill that test and
         refactoring.”
TDD não é sinônimo
 de teste unitário!
TDD é uma prática de
design e não de testes!
Test-driven Design
problemas
simplicidade
baby steps
rapidez no feedback
reflexão
dependências
princípio da
responsabilidade única
e os métodos privados?
problema dos static e
 singletons methods
clean code
refactoring
algumas conclusões...
TDD não é bala de
     prata!
favorece o design evolutivo!
e consequentemente a
     arquitetura!
dúvidas?
obrigado!

let’s try it now!

Mais conteúdo relacionado

Mais procurados

Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDD
Jony Ferreira dos Santos
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
Henrique Schmidt
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
Willy Salazar
 
ThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDDThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDD
Nicholas Pufal
 
Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?
Ariane Izac
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Ariane Izac
 
Programação simultânea em pares
Programação simultânea em paresProgramação simultânea em pares
Programação simultânea em pares
Herez Moise Kattan
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
Waldyr Felix
 
Apresentação tcc final
Apresentação tcc finalApresentação tcc final
Apresentação tcc final
Jhool Flores
 
Tdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquiteturaTdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquitetura
Everton Tavares
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Otavio Augusto
 
TDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
TDC Florianópolis 2019. Trilha Java - Arquitetura de TestesTDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
TDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
Sandro Giacomozzi
 
TDD, introdução sem mágica!
TDD, introdução sem mágica!TDD, introdução sem mágica!
TDD, introdução sem mágica!
Bruno Henrique - Garu
 
Engenharia de Software II - Aula 7
Engenharia de Software II - Aula 7Engenharia de Software II - Aula 7
Engenharia de Software II - Aula 7
Alessandro Almeida
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
Camilo Lopes
 
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Maurício Aniche
 
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Adolfo Neto
 
Engenharia de Software II - Aula 9
Engenharia de Software II - Aula 9Engenharia de Software II - Aula 9
Engenharia de Software II - Aula 9
Alessandro Almeida
 
Teste Unitários e TDD
Teste Unitários e TDDTeste Unitários e TDD
Teste Unitários e TDD
Diogo Damiani
 
Code review: o que isso diz sobre a cultura dos times de desenvolvimento?
Code review: o que isso diz sobre a cultura dos times de desenvolvimento?Code review: o que isso diz sobre a cultura dos times de desenvolvimento?
Code review: o que isso diz sobre a cultura dos times de desenvolvimento?
Elaine Naomi
 

Mais procurados (20)

Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDD
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
ThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDDThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDD
 
Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
 
Programação simultânea em pares
Programação simultânea em paresProgramação simultânea em pares
Programação simultânea em pares
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Apresentação tcc final
Apresentação tcc finalApresentação tcc final
Apresentação tcc final
 
Tdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquiteturaTdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquitetura
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
TDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
TDC Florianópolis 2019. Trilha Java - Arquitetura de TestesTDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
TDC Florianópolis 2019. Trilha Java - Arquitetura de Testes
 
TDD, introdução sem mágica!
TDD, introdução sem mágica!TDD, introdução sem mágica!
TDD, introdução sem mágica!
 
Engenharia de Software II - Aula 7
Engenharia de Software II - Aula 7Engenharia de Software II - Aula 7
Engenharia de Software II - Aula 7
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
 
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
 
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
 
Engenharia de Software II - Aula 9
Engenharia de Software II - Aula 9Engenharia de Software II - Aula 9
Engenharia de Software II - Aula 9
 
Teste Unitários e TDD
Teste Unitários e TDDTeste Unitários e TDD
Teste Unitários e TDD
 
Code review: o que isso diz sobre a cultura dos times de desenvolvimento?
Code review: o que isso diz sobre a cultura dos times de desenvolvimento?Code review: o que isso diz sobre a cultura dos times de desenvolvimento?
Code review: o que isso diz sobre a cultura dos times de desenvolvimento?
 

Destaque

Location Quanta Village
Location Quanta VillageLocation Quanta Village
Location Quanta Villagenpau
 
Cambio climatico
Cambio climaticoCambio climatico
Cambio climatico
paulaalejandra2
 
Introduction to YUI - IIT Kharagpur
Introduction to YUI - IIT KharagpurIntroduction to YUI - IIT Kharagpur
Introduction to YUI - IIT Kharagpur
Harsha Vashisht
 
Media Relations 2.0 for Non-Profit Organizations
Media Relations 2.0 for Non-Profit OrganizationsMedia Relations 2.0 for Non-Profit Organizations
Media Relations 2.0 for Non-Profit Organizations
Sean Clancy
 
Building your first web application using Yahoo! APIs
Building your first web application using Yahoo! APIsBuilding your first web application using Yahoo! APIs
Building your first web application using Yahoo! APIs
Harsha Vashisht
 
NITS PPT
NITS PPTNITS PPT
NITS PPT
Kim Cygan
 

Destaque (7)

Location Quanta Village
Location Quanta VillageLocation Quanta Village
Location Quanta Village
 
106 thu thuat word
106 thu thuat word106 thu thuat word
106 thu thuat word
 
Cambio climatico
Cambio climaticoCambio climatico
Cambio climatico
 
Introduction to YUI - IIT Kharagpur
Introduction to YUI - IIT KharagpurIntroduction to YUI - IIT Kharagpur
Introduction to YUI - IIT Kharagpur
 
Media Relations 2.0 for Non-Profit Organizations
Media Relations 2.0 for Non-Profit OrganizationsMedia Relations 2.0 for Non-Profit Organizations
Media Relations 2.0 for Non-Profit Organizations
 
Building your first web application using Yahoo! APIs
Building your first web application using Yahoo! APIsBuilding your first web application using Yahoo! APIs
Building your first web application using Yahoo! APIs
 
NITS PPT
NITS PPTNITS PPT
NITS PPT
 

Semelhante a TDD e sua influência no design

Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
Eduardo Mendes
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
Hélio Medeiros
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - Introdução
Hélio Costa e Silva
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
Pedro Pereira Martins
 
Tente desenvolver diferente com TDD
Tente desenvolver diferente com TDDTente desenvolver diferente com TDD
Tente desenvolver diferente com TDD
Webgoal
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
Dextra Sistemas / Etec Itu
 
Desenvolvimento Incremental com Test Driven Development
Desenvolvimento Incremental com Test Driven DevelopmentDesenvolvimento Incremental com Test Driven Development
Desenvolvimento Incremental com Test Driven Development
Leonardo de Aguiar
 
TDD
TDDTDD
xDD
xDDxDD
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
Maurício Aniche
 
Pensando TDD
Pensando TDDPensando TDD
Pensando TDD
Luiz Ricardo Silva
 
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
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
Miguel Schmitz Grazziotin
 
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
 
Coding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente OrganizacionalCoding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente Organizacional
Avelino Ferreira Gomes Filho
 
TDD
TDDTDD
Tdd On Rails
Tdd On RailsTdd On Rails
Tdd On Rails
Cezinha Cezer
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do Teste
Aislan Fernandes
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
Rafaela Prado
 
Testando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitTestando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnit
Rodrigo Vieira
 

Semelhante a TDD e sua influência no design (20)

Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - Introdução
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
 
Tente desenvolver diferente com TDD
Tente desenvolver diferente com TDDTente desenvolver diferente com TDD
Tente desenvolver diferente com TDD
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
Desenvolvimento Incremental com Test Driven Development
Desenvolvimento Incremental com Test Driven DevelopmentDesenvolvimento Incremental com Test Driven Development
Desenvolvimento Incremental com Test Driven Development
 
TDD
TDDTDD
TDD
 
xDD
xDDxDD
xDD
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
Pensando TDD
Pensando TDDPensando TDD
Pensando 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
 
RealDay: Introduction to TDD
RealDay: Introduction to TDDRealDay: Introduction to TDD
RealDay: Introduction to TDD
 
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...
 
Coding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente OrganizacionalCoding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente Organizacional
 
TDD
TDDTDD
TDD
 
Tdd On Rails
Tdd On RailsTdd On Rails
Tdd On Rails
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do Teste
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
 
Testando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitTestando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnit
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 

Último (6)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 

TDD e sua influência no design