SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à tdd evolução problemas testes chefe

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âniaAlexandre Gaigalas
 
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 frameworksPablo Dall'Oglio
 
Criando testes com Plone
Criando testes com PloneCriando testes com Plone
Criando testes com PloneRamiro Luz
 
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)IT4biz IT Solutions
 
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)Caio Moreno
 
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?Luiz Guaraldo
 
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?debian-rs
 
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 containerstdc-globalcode
 
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 DireitoAlexandre Gaigalas
 
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 ElasticsearchLuiz Henrique Zambom Santana
 

Similaire à tdd evolução problemas testes chefe (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
 

Plus 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 45minAlexandre Gaigalas
 
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 2011Alexandre Gaigalas
 
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 12Alexandre Gaigalas
 
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 PHPAlexandre Gaigalas
 

Plus 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
 

tdd evolução problemas testes chefe