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 InterfacesUX Booth
 
The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red SocietyNaresh Jain
 
Мерчендайзинг против юзабилити
Мерчендайзинг против юзабилитиМерчендайзинг против юзабилити
Мерчендайзинг против юзабилитиOWOX
 
UX, UI, WTF
UX, UI, WTFUX, UI, WTF
UX, UI, WTFwcfay
 
Vefica presentatie TV2.0 & IFA 2010
Vefica presentatie TV2.0 & IFA 2010Vefica presentatie TV2.0 & IFA 2010
Vefica presentatie TV2.0 & IFA 2010Vincent Everts
 

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

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
 
Vefica presentatie TV2.0 & IFA 2010
Vefica presentatie TV2.0 & IFA 2010Vefica presentatie TV2.0 & IFA 2010
Vefica presentatie TV2.0 & IFA 2010
 

More from 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

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 

Recently uploaded (20)

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 

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