SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
assertTrue($tdd);
http://php5.net.br/tdd




19 de Outubro            COLAPHP - Latinoware 2011   1
Alexandre Gomes Gaigalas
http://about.me/alganet




19 de Outubro         COLAPHP - Latinoware 2011   2
Hoje você vai ver...

 ●
     Que o TDD não foi inventado, ele evoluiu
 ●
     Soluções para problemas típicos em testes
 ●
     Como convencer seu chefe




19 de Outubro        COLAPHP - Latinoware 2011   3
Hoje você vai ver...

 ●
     Que o TDD não foi inventado, ele evoluiu
 ●
     Soluções para problemas típicos em testes

 ●
     Como convencer seu chefe



19 de Outubro        COLAPHP - Latinoware 2011   4
Aquela depuração raiz...




                 var_dump($usuario);




19 de Outubro          COLAPHP - Latinoware 2011   5
Aquela depuração pé descalço...




                //var_dump($usuario);




19 de Outubro         COLAPHP - Latinoware 2011   6
Breakpoints, Watchers, etc...




19 de Outubro     COLAPHP - Latinoware 2011   7
Testes Unitários




19 de Outubro      COLAPHP - Latinoware 2011   8
Tempo gasto por um programador




                                            Desenvolvimento
                                            Testes
                                            Documentação
                                            Deploying




19 de Outubro   COLAPHP - Latinoware 2011                     9
Tempo gasto com TDD




                                                 TDD
                                                 Documentação
                                                 Deploying




19 de Outubro        COLAPHP - Latinoware 2011                  10
TDD, BDD, CI, etc...




                                                 Desenvolvimento
                                                 Documentação
                                                 Deploying




19 de Outubro        COLAPHP - Latinoware 2011                     11
Dependency Hell




19 de Outubro      COLAPHP - Latinoware 2011   12
Dependency Injection




19 de Outubro         COLAPHP - Latinoware 2011   13
Testando Dependências




19 de Outubro         COLAPHP - Latinoware 2011   14
Mocking




19 de Outubro   COLAPHP - Latinoware 2011   15
PHPunit puro vs Mockery




    http://github.com/padraic/mockery
19 de Outubro      COLAPHP - Latinoware 2011   16
Código deTestável




19 de Outubro       COLAPHP - Latinoware 2011   17
Refatoração para testabilidade




19 de Outubro   COLAPHP - Latinoware 2011   18
Organizando Responsabilidades

 ●
     Bancos de Dados
 ●
     Serviços Externos
 ●
     Sistemas de Arquivos
 ●
     Validação de Dados
 ●
     HTML e Templates



19 de Outubro       COLAPHP - Latinoware 2011   19
Validação: Antes




19 de Outubro      COLAPHP - Latinoware 2011   20
Validação: Depois




http://github.com/Respect/Validation

19 de Outubro       COLAPHP - Latinoware 2011   21
Validação: Dependency Injection




19 de Outubro   COLAPHP - Latinoware 2011   22
Validação: Testes




19 de Outubro       COLAPHP - Latinoware 2011   23
Validação: Testes Antes
 ●
     Está checando ID inválido antes de salvar?
 ●
     Está checando as datas antes de salvar?
 ●
     Tem os atributos necessários pra salvar?
 ●
     Descrição tem o tamanho permitido pra
     gravar no banco?
 ●
     zzzzzzzZZZZZZZZZZZZZZZZZZZZ



19 de Outubro          COLAPHP - Latinoware 2011   24
Validação: Testes Depois
 ●
     Está utilizando corretamente o validador?
 ●
     Está chamando o banco de dados?
 ●
     Fim.




19 de Outubro          COLAPHP - Latinoware 2011   25
Responsabilidades

 ●
     PDO: Enviar os dados para um banco de
     dados.
 ●
     Validator: Checar se os dados atendem um
     padrão.
 ●
     UserManager: Utilizar o validador e PDO para
     armazenar dados consistentes dos usuários.



19 de Outubro       COLAPHP - Latinoware 2011   26
Hoje você viu

 ●
     Como o TDD evoluiu e continua a evoluir para
     culturas melhores
 ●
     Soluções para problemas típicos em testes

 ●
     Fortes argumentos para
     convencer seu chefe
19 de Outubro       COLAPHP - Latinoware 2011    27
Obrigado!
http://php5.net.br/tdd




19 de Outubro            COLAPHP - Latinoware 2011   28

Más contenido relacionado

Similar a assertTrue($tdd) - Latinoware 2011

Similar a assertTrue($tdd) - Latinoware 2011 (10)

REST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC GoiâniaREST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC Goiânia
 
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksDo Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
 
Criando testes com Plone
Criando testes com PloneCriando testes com Plone
Criando testes com Plone
 
Palestra sobre BI Open Source @ USP (Out/2011)
Palestra sobre BI Open Source @ USP (Out/2011)Palestra sobre BI Open Source @ USP (Out/2011)
Palestra sobre BI Open Source @ USP (Out/2011)
 
Palestra sobre BI Open Source @ USP (Out/2011)
Palestra sobre BI Open Source @ USP (Out/2011)Palestra sobre BI Open Source @ USP (Out/2011)
Palestra sobre BI Open Source @ USP (Out/2011)
 
Não sou programador, como posso ajudar o Projeto Debian?
Não sou programador, como posso ajudar o Projeto Debian?Não sou programador, como posso ajudar o Projeto Debian?
Não sou programador, como posso ajudar o Projeto Debian?
 
Não sou Programador, como posso ajudar o Debian?
Não sou Programador, como posso ajudar o Debian?Não sou Programador, como posso ajudar o Debian?
Não sou Programador, como posso ajudar o Debian?
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
REST: Faça o Serviço Direito
REST: Faça o Serviço DireitoREST: Faça o Serviço Direito
REST: Faça o Serviço Direito
 
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e ElasticsearchUma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
 

Más de Alexandre Gaigalas

Domine Validação de Dados em 45min
Domine Validação de Dados em 45minDomine Validação de Dados em 45min
Domine Validação de Dados em 45min
Alexandre Gaigalas
 

Más de Alexandre Gaigalas (7)

Domine Validação de Dados em 45min
Domine Validação de Dados em 45minDomine Validação de Dados em 45min
Domine Validação de Dados em 45min
 
As Mudanças Culturais do PHP
As Mudanças Culturais do PHPAs Mudanças Culturais do PHP
As Mudanças Culturais do PHP
 
PHP Maroto
PHP MarotoPHP Maroto
PHP Maroto
 
Autoloaders Universais + Microframeworks em PHP - Trilha de PHP do TDC 2011
Autoloaders Universais + Microframeworks em PHP - Trilha de PHP do TDC 2011Autoloaders Universais + Microframeworks em PHP - Trilha de PHP do TDC 2011
Autoloaders Universais + Microframeworks em PHP - Trilha de PHP do TDC 2011
 
HTTP: A Base do Desenvolvimento Web - FISL 12
HTTP: A Base do Desenvolvimento Web - FISL 12HTTP: A Base do Desenvolvimento Web - FISL 12
HTTP: A Base do Desenvolvimento Web - FISL 12
 
GET /conceitos HTTP/1.1
GET /conceitos HTTP/1.1GET /conceitos HTTP/1.1
GET /conceitos HTTP/1.1
 
Varrendo APIs REST em Larga Escala utilizando PHP
Varrendo APIs REST em Larga Escala utilizando PHPVarrendo APIs REST em Larga Escala utilizando PHP
Varrendo APIs REST em Larga Escala utilizando PHP
 

Último

Último (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

assertTrue($tdd) - Latinoware 2011