SlideShare a Scribd company logo
1 of 86
Download to read offline
TESTAR É BOM.
                             INTEGRAR É
                            MELHOR AINDA!
                               Augusto Pascutti




Saturday, August 28, 2010
@AUGUSTOHP




Saturday, August 28, 2010
O QUE É INTEGRAÇÃO CONTÍNUA (IC)?




Saturday, August 28, 2010
O QUE É INTEGRAÇÃO CONTÍNUA (IC)?




Saturday, August 28, 2010
O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

   ‣                Prática ágil




Saturday, August 28, 2010
O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

   ‣                Prática ágil
   ‣                Processo contínuo




Saturday, August 28, 2010
O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

   ‣                Prática ágil
   ‣                Processo contínuo
   ‣                Controle de qualidade




Saturday, August 28, 2010
O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

   ‣                Prática ágil
   ‣                Processo contínuo
   ‣                Controle de qualidade
   ‣                Automático ou não


Saturday, August 28, 2010
O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

   ‣                Prática ágil
   ‣                Processo contínuo
   ‣                Controle de qualidade
   ‣                Automático ou não
   ‣                Reduz

Saturday, August 28, 2010
O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

   ‣                Prática ágil
   ‣                Processo contínuo
   ‣                Controle de qualidade
   ‣                Automático ou não
   ‣                Reduz
                    ‣    Custo, Tempo, Trabalho
Saturday, August 28, 2010
OK, O QUE É INTEGRAR?




Saturday, August 28, 2010
OK, O QUE É INTEGRAR?



                   É testar!
         Ver como tudo funciona junto!



Saturday, August 28, 2010
PORQUE INTEGRAR?




Saturday, August 28, 2010
PORQUE INTEGRAR?



              Existem 10 tipos de pessoas




Saturday, August 28, 2010
AS QUE ENTENDEM BINÁRIO




Saturday, August 28, 2010
E AS QUE NÃO ENTENDEM




                            10

Saturday, August 28, 2010
E AS QUE NÃO ENTENDEM



                                 Espero que tenham
                                    entendido ...



                            10

Saturday, August 28, 2010
A atualização não funciona ...




Saturday, August 28, 2010
Funciona. Algo deve estar errado.




Saturday, August 28, 2010
Hmn ...




Saturday, August 28, 2010
Rosquinha!




Saturday, August 28, 2010
NÃO IMPORTA O TIPO DE PROBLEMA




Saturday, August 28, 2010
PARA O CLIENTE É A MESMA COISA




Saturday, August 28, 2010
Não funciona!




Saturday, August 28, 2010
PORQUE INTEGRAR?




Saturday, August 28, 2010
PORQUE INTEGRAR?


   ‣       Métricas!




Saturday, August 28, 2010
PORQUE INTEGRAR?


   ‣       Métricas!
   ‣       Aumento da qualidade




Saturday, August 28, 2010
PORQUE INTEGRAR?


   ‣       Métricas!
   ‣       Aumento da qualidade
   ‣       Bugs detectados mais cedo


Saturday, August 28, 2010
PORQUE INTEGRAR?


   ‣       Métricas!
   ‣       Aumento da qualidade
   ‣       Bugs detectados mais cedo
   ‣       Sem “release-caos”

Saturday, August 28, 2010
Parece bom! Isso me custa quanto?




Saturday, August 28, 2010
Parece bom! Isso me custa quanto?




                                       Nada!




Saturday, August 28, 2010
Vai me dar mais trabalho né?




Saturday, August 28, 2010
Vai me dar mais trabalho né?




                               Vale a pena




Saturday, August 28, 2010
VOCÊ JÁ FAZ ISSO!




Saturday, August 28, 2010
TODA ENTREGA GERA MAIS TRABALHO




Saturday, August 28, 2010
TODA ENTREGA GERA MAIS TRABALHO




Saturday, August 28, 2010
TODA ENTREGA GERA MAIS TRABALHO


   ‣       Seu app já tinha bugs antes




Saturday, August 28, 2010
TODA ENTREGA GERA MAIS TRABALHO


   ‣       Seu app já tinha bugs antes
   ‣       O código dele aumenta




Saturday, August 28, 2010
TODA ENTREGA GERA MAIS TRABALHO


   ‣       Seu app já tinha bugs antes
   ‣       O código dele aumenta
   ‣       Mais Bugs!



Saturday, August 28, 2010
TODA ENTREGA GERA MAIS TRABALHO


   ‣ Seu app já tinha bugs antes
   ‣ O código dele aumenta
   ‣ Mais Bugs!
   ‣ Dica: contratar mais gente não é
           solução, é suicídio. (nesse caso)

Saturday, August 28, 2010
QUEREMOS SAIR DISSO




Saturday, August 28, 2010
QUEREMOS SAIR DISSO
              90

              79

              68

              56
       Bugs




              45

              34

              23

              11

               0
                   v 1.0    v 1.1   v 1.2   v 1.3   v 1.5   v 2.0   v 2.1   v 2.2   v 2.3   v 2.5   v 3.0


Saturday, August 28, 2010
PRA ISSO




Saturday, August 28, 2010
PRA ISSO
              15

              13

              11

               9
       Bugs




               8

               6

               4

               2

               0
                   v 1.0    v 1.1   v 1.2   v 1.3   v 1.5   v 2.0   v 2.1   v 2.2   v 2.3   v 2.5   v 3.0


Saturday, August 28, 2010
QUAL A MÁGICA?




Saturday, August 28, 2010
QUAL A MÁGICA?



                    Integre mais.
           Sofra isso sem o cliente saber.



Saturday, August 28, 2010
PERCA MENOS TEMPO!




Saturday, August 28, 2010
PERCA MENOS TEMPO!



                            Com testes !




Saturday, August 28, 2010
TESTES



             Vocês já fazem isso.
      Mas só testam o que mudaram.
      Testar tudo sempre, soa melhor?


Saturday, August 28, 2010
TESTES UNITÁRIOS




Saturday, August 28, 2010
TESTES UNITÁRIOS



   Dão mais trabalho do que vc pensa




Saturday, August 28, 2010
TESTES UNITÁRIOS



   Dão mais resultado do que você imagina!




Saturday, August 28, 2010
PERCA MENOS TEMPO!



                            Geração de pacotes




Saturday, August 28, 2010
ANT - PHING




Saturday, August 28, 2010
ANT - PHING




Saturday, August 28, 2010
ANT - PHING



                Automatizam coisas como:




Saturday, August 28, 2010
ANT - PHING



                Automatizam coisas como:
                   - Operações de IO



Saturday, August 28, 2010
ANT - PHING



                Automatizam coisas como:
                   - Operações de IO
                 - Ferramentas externas


Saturday, August 28, 2010
ANT - PHING



                Automatizam coisas como:
                    - Operações de IO
                 - Ferramentas externas
                 - Exportação do código
Saturday, August 28, 2010
ANT - PHING



                Automatizam coisas como:
                    - Operações de IO
                 - Ferramentas externas
                 - Exportação do código
                 - Rodar testes unitários
Saturday, August 28, 2010
ANT - PHING




Saturday, August 28, 2010
ANT - PHING




Saturday, August 28, 2010
ANT - PHING




Saturday, August 28, 2010
PERCA MENOS TEMPO!



                            Métricas




Saturday, August 28, 2010
MÉTRICAS




Saturday, August 28, 2010
MÉTRICAS



                            PHP Depend (Geral)




Saturday, August 28, 2010
MÉTRICAS



                            PHP Depend (Geral)
                             PEAR Code Sniffer



Saturday, August 28, 2010
MÉTRICAS



                            PHP Depend (Geral)
                             PEAR Code Sniffer
                                PHP CPD


Saturday, August 28, 2010
RESUMINDO




Saturday, August 28, 2010
RESUMINDO




Saturday, August 28, 2010
RESUMINDO




                             Código do Projeto

Saturday, August 28, 2010
RESUMINDO




                            Controle de Versões

                             Código do Projeto

Saturday, August 28, 2010
RESUMINDO




                              Testes Unitários

                            Controle de Versões

                             Código do Projeto

Saturday, August 28, 2010
RESUMINDO



                            Geração de Pacotes

                              Testes Unitários

                            Controle de Versões

                             Código do Projeto

Saturday, August 28, 2010
RESUMINDO

                                Relatórios

                            Geração de Pacotes

                              Testes Unitários

                            Controle de Versões

                             Código do Projeto

Saturday, August 28, 2010
EXEMPLO




Saturday, August 28, 2010
EXEMPLO

                                         PHP Unit
                                       PHP Depend



              SVN            Hudson   PHPCode Sniffer




Saturday, August 28, 2010
HUDSON




Saturday, August 28, 2010
HUDSON



                            ./java -jar hudson.war




Saturday, August 28, 2010
HUDSON

 Plugins:
 - Hudson Clover Plugin
 - Hudson JDepend Plugin
 - Hudson Phing Plugin
 - Hudson Subversion Plugin
 - Hudson xUnit Plugin
Saturday, August 28, 2010
HUDSON




Saturday, August 28, 2010
HUDSON




Saturday, August 28, 2010
HUDSON




Saturday, August 28, 2010
HUDSON




Saturday, August 28, 2010
DÚVIDAS?




Saturday, August 28, 2010
LINKS
   http://www.slideshare.net/augustopascutti
   http://hudson-ci.org/
   http://phing.info/
   http://www.phpunit.de/
   http://pdepend.org/
   http://github.com/sebastianbergmann/php-hudson-template
   http://pear.php.net/package/PHP_CodeSniffer
   http://github.com/sebastianbergmann/phpcpd

   Artigo:
   http://martinfowler.com/articles/continuousIntegration.html


Saturday, August 28, 2010

More Related Content

Similar to PHPSC Conference 2010 - Testar é bom, integrar é melhor ainda!

Polishing Interfaces
Polishing InterfacesPolishing Interfaces
Polishing Interfaces
UX Booth
 

Similar to PHPSC Conference 2010 - Testar é bom, integrar é melhor ainda! (6)

DESIGN Palestra: Motion Design
DESIGN Palestra: Motion DesignDESIGN Palestra: Motion Design
DESIGN Palestra: Motion Design
 
Polishing Interfaces
Polishing InterfacesPolishing Interfaces
Polishing Interfaces
 
The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red Society
 
Мерчендайзинг против юзабилити
Мерчендайзинг против юзабилитиМерчендайзинг против юзабилити
Мерчендайзинг против юзабилити
 
UX, UI, WTF
UX, UI, WTFUX, UI, WTF
UX, UI, WTF
 
Bblive6pd
Bblive6pdBblive6pd
Bblive6pd
 

More from Augusto Pascutti

Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
Augusto Pascutti
 

More from Augusto Pascutti (20)

Errors
ErrorsErrors
Errors
 
Melhorando sua API com DSLs
Melhorando sua API com DSLsMelhorando sua API com DSLs
Melhorando sua API com DSLs
 
Porque VIM?
Porque VIM?Porque VIM?
Porque VIM?
 
Logs: O que comem, onde vivem e como se reproduzem.
Logs: O que comem, onde vivem e como se reproduzem.Logs: O que comem, onde vivem e como se reproduzem.
Logs: O que comem, onde vivem e como se reproduzem.
 
TDD - Test Driven Development (em PHP)
TDD - Test Driven Development (em PHP)TDD - Test Driven Development (em PHP)
TDD - Test Driven Development (em PHP)
 
Guia do mochileiro para escalabilidade
Guia do mochileiro para escalabilidadeGuia do mochileiro para escalabilidade
Guia do mochileiro para escalabilidade
 
Falhando miseralvelmente com PHP
Falhando miseralvelmente com PHPFalhando miseralvelmente com PHP
Falhando miseralvelmente com PHP
 
SfCon: Test Driven Development
SfCon: Test Driven DevelopmentSfCon: Test Driven Development
SfCon: Test Driven Development
 
Orientação a objetos v2
Orientação a objetos v2Orientação a objetos v2
Orientação a objetos v2
 
Under engineer
Under engineerUnder engineer
Under engineer
 
Como escalar aplicações PHP
Como escalar aplicações PHPComo escalar aplicações PHP
Como escalar aplicações PHP
 
The small things
The small thingsThe small things
The small things
 
Somos jardineiros
Somos jardineirosSomos jardineiros
Somos jardineiros
 
PHP - O que, porquê e como
PHP - O que, porquê e comoPHP - O que, porquê e como
PHP - O que, porquê e como
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Testar é bom, integrar é ainda melhor
Testar é bom, integrar é ainda melhorTestar é bom, integrar é ainda melhor
Testar é bom, integrar é ainda melhor
 
Segurança em PHP
Segurança em PHPSegurança em PHP
Segurança em PHP
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Boas Práticas, Práticas !
Boas Práticas, Práticas !Boas Práticas, Práticas !
Boas Práticas, Práticas !
 
Mitos do PHP
Mitos do PHPMitos do PHP
Mitos do PHP
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

PHPSC Conference 2010 - Testar é bom, integrar é melhor ainda!