SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
E você pensava que TDD 
era coisa de Javaneiro? 
Paulo Jr 
@paulojribp | paulojribp@gmail.com
Sobre mim 
● Formado em SI 
● Pós em Desenvolvimento Ágil 
● Instrutor e Dev na Caelum 
● 10+ anos de experiência (html conta?)
Você faz teste?
Como sabemos que 
tudo funciona?
Mas qual tipo de teste? 
de Sistema 
de Integração 
de Unidade
Um simples 
código... 
Is this a zombie? o.O
Perfeito. E se 
testarmos algo a 
mais...
Desvantagens do teste manual 
● Depende de verificação detalhada do tester/dev 
● Humanos não gostam de repetição 
● Se mudar algo, como garantir que tudo continua 
funcionando? 
● Custa caro...
Fazendo testes...
Mas não queremos 
depender de 
humanos...
Agora com o teste 
pronto, o que 
podemos fazer?
Implementa 
Testa
Testa 
Implementa 
WTF?
Passos simples...
O teste primeiro...
Fazemos o teste 
passar...
Baby Steps
O teste passando, 
vamos melhorar...
Refatoração
Não existe mais 
medo...
Test-Driven 
Development
O que conseguimos... 
- Simplicidade 
- Foco no negócio 
- Maior cobertura de testes 
- Seu código já sai testado 
- Mudar é simples e barato
TDD na Prática 
Contexto: Uma empresa de mudanças deseja calcular o valor 
total da mudança. 
Problema: Calcular o valor total de uma mudança. Para esse 
cálculo, temos que considerar...
TDD na Prática 
ICMS: Se a mudança for de um estado a outro 
ISS: Se for dentro do mesmo estado 
Valor do seguro dos itens: 0,8% do valor total dos itens da mudança 
KM: O valor por KM rodado multiplicado pelo total de KM's 
Valor Itens: A metragem cúbida dos itens * preco do metro cúbico
TDD na Prática 
O valor da mudança é formado por: 
1. A soma do imposto 
2. Seguro dos itens 
3. Km total percorrido 
4. E pelo preco dos itens
Mãos à obra
Problemas específicos de testes em PHP 
1. Código macarrão - Tudo em um só lugar 
2. Não respeitar OO 
3. Pouca modularização da aplicação 
4. A documentação deixa dúvidas de certo/errado (más práticas) 
5. Frameworks nem sempre seguem padrões
Como melhorar 
Leitura especializada 
Cursos - Online e presencial
Obrigado! 
Paulo Jr. 
paulojribp@gmail.com 
http://github.com/paulojribp 
http://github.com/paulojribp/palestra-tdd-phpconference

Mais conteúdo relacionado

Mais procurados

Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Robson Bittencourt
 
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
 
Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Lucas Nery
 
In tests we trust: começando com TDD, mocks e mais
In tests we trust: começando com TDD, mocks e maisIn tests we trust: começando com TDD, mocks e mais
In tests we trust: começando com TDD, mocks e maisAna Paula Gomes
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testarElias Nogueira
 
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
 
Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficienteCamilo Ribeiro
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"thiagobapt
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Thiago Barradas
 
Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Robson Agapito Correa
 
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Igor Abade
 
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Iure Guimaraes
 
Mock it with mockito
Mock it with mockitoMock it with mockito
Mock it with mockitoRenan Uchôa
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Inael Rodrigues
 
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsTestes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsLocaweb
 

Mais procurados (20)

Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)
 
In tests we trust: começando com TDD, mocks e mais
In tests we trust: começando com TDD, mocks e maisIn tests we trust: começando com TDD, mocks e mais
In tests we trust: começando com TDD, mocks e mais
 
JUnit Experience
JUnit ExperienceJUnit Experience
JUnit Experience
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testar
 
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
 
Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficiente
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.
 
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
 
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )
 
Mock it with mockito
Mock it with mockitoMock it with mockito
Mock it with mockito
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsTestes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJs
 

Destaque

Testes de unidade na prática
Testes de unidade na práticaTestes de unidade na prática
Testes de unidade na práticaTiago Furtado
 
TDD - Test Driven Development (em PHP)
TDD - Test Driven Development (em PHP)TDD - Test Driven Development (em PHP)
TDD - Test Driven Development (em PHP)Augusto Pascutti
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
TDD in PHP - Memphis PHP 2011-08-25
TDD in PHP - Memphis PHP 2011-08-25TDD in PHP - Memphis PHP 2011-08-25
TDD in PHP - Memphis PHP 2011-08-25Jeremy Kendall
 
Kamilla Queiróz - DevQA - Da zona de conforto ao comprometimento com a Qualidade
Kamilla Queiróz - DevQA - Da zona de conforto ao comprometimento com a QualidadeKamilla Queiróz - DevQA - Da zona de conforto ao comprometimento com a Qualidade
Kamilla Queiróz - DevQA - Da zona de conforto ao comprometimento com a Qualidademinastestingconference
 
New Features PHPUnit 3.3 - Sebastian Bergmann
New Features PHPUnit 3.3 - Sebastian BergmannNew Features PHPUnit 3.3 - Sebastian Bergmann
New Features PHPUnit 3.3 - Sebastian Bergmanndpc
 
Testes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksTestes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksDiana Ungaro Arnos
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
All You Need Is TDD (Português)
All You Need Is TDD (Português)All You Need Is TDD (Português)
All You Need Is TDD (Português)Huge
 
MareNostrum
MareNostrumMareNostrum
MareNostrumcanetjh
 
Indra fraude-transporte
Indra fraude-transporteIndra fraude-transporte
Indra fraude-transportejulioliberta
 

Destaque (20)

Testes de unidade na prática
Testes de unidade na práticaTestes de unidade na prática
Testes de unidade na prática
 
TDD - Test Driven Development (em PHP)
TDD - Test Driven Development (em PHP)TDD - Test Driven Development (em PHP)
TDD - Test Driven Development (em PHP)
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
Testes: Por onde Começar?
Testes: Por onde Começar?Testes: Por onde Começar?
Testes: Por onde Começar?
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
TDD in PHP - Memphis PHP 2011-08-25
TDD in PHP - Memphis PHP 2011-08-25TDD in PHP - Memphis PHP 2011-08-25
TDD in PHP - Memphis PHP 2011-08-25
 
Kamilla Queiróz - DevQA - Da zona de conforto ao comprometimento com a Qualidade
Kamilla Queiróz - DevQA - Da zona de conforto ao comprometimento com a QualidadeKamilla Queiróz - DevQA - Da zona de conforto ao comprometimento com a Qualidade
Kamilla Queiróz - DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
New Features PHPUnit 3.3 - Sebastian Bergmann
New Features PHPUnit 3.3 - Sebastian BergmannNew Features PHPUnit 3.3 - Sebastian Bergmann
New Features PHPUnit 3.3 - Sebastian Bergmann
 
Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
TDD with PHP
TDD with PHPTDD with PHP
TDD with PHP
 
Testes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksTestes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalks
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
All You Need Is TDD (Português)
All You Need Is TDD (Português)All You Need Is TDD (Português)
All You Need Is TDD (Português)
 
Minicurso de TDD
Minicurso de TDDMinicurso de TDD
Minicurso de TDD
 
assertTrue($tdd)
assertTrue($tdd)assertTrue($tdd)
assertTrue($tdd)
 
MareNostrum
MareNostrumMareNostrum
MareNostrum
 
Indra fraude-transporte
Indra fraude-transporteIndra fraude-transporte
Indra fraude-transporte
 
Oque noslevaamaralguem
Oque noslevaamaralguemOque noslevaamaralguem
Oque noslevaamaralguem
 
Consulta
ConsultaConsulta
Consulta
 
ntc 1142
ntc 1142ntc 1142
ntc 1142
 

Semelhante a E você pensava que tdd era coisa de javaneiro

Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeUniversidade Tiradentes
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorAndré Phillip Bertoletti
 
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 softwareDextra Sistemas / Etec Itu
 
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
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Wellington Moreira
 
Test Driven Development - Conceitos básicos
Test Driven Development - Conceitos básicosTest Driven Development - Conceitos básicos
Test Driven Development - Conceitos básicosMateus Parente
 
Agilidade no Governo do Ceará
Agilidade no Governo do CearáAgilidade no Governo do Ceará
Agilidade no Governo do CearáPaulo Furtado
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 

Semelhante a E você pensava que tdd era coisa de javaneiro (20)

Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
 
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
 
Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedor
 
Criando uma Arquitetura Testável
Criando uma Arquitetura TestávelCriando uma Arquitetura Testável
Criando uma Arquitetura Testável
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Excelência - PUC
Excelência - PUCExcelência - PUC
Excelência - PUC
 
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
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
PHPZEIRO: Adote um framework
PHPZEIRO: Adote um frameworkPHPZEIRO: Adote um framework
PHPZEIRO: Adote um framework
 
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
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?
 
Test Driven Development - Conceitos básicos
Test Driven Development - Conceitos básicosTest Driven Development - Conceitos básicos
Test Driven Development - Conceitos básicos
 
Agilidade no Governo do Ceará
Agilidade no Governo do CearáAgilidade no Governo do Ceará
Agilidade no Governo do Ceará
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 

E você pensava que tdd era coisa de javaneiro