SlideShare une entreprise Scribd logo
Git Flow: un processus de
  développement Agile

        Xavier HAUSHERR
A propos




            Xavier HAUSHERR
                     CTO

           Twitter: @xkobal
           Blog: xavier.over-blog.com
Git Flow: un processus de développement Agile




          Le projet Overblog
Qui sommes nous ?

Né en 2004, Overblog est la plateforme de blogs Européenne n°1.

Nous sommes la première plateforme a avoir mis en place le partage
de revenu publicitaire généré par l’audience.

La nouvelle version est sortie en Juin 2012 avec un très bon retour des
blogueurs. Elle ne cesse depuis d’évoluer fonctionnellement.

C’est aussi:
 3 millions de blogs dans 5 langues
 38 millions de visiteurs uniques par mois
 275 millions pages vues par mois
 16ème audience française
 Plus de 80 serveurs pour servir les blogs
Nom de code «Kiwi»

Refonte complète du produit
Une forte orientation vers les réseaux sociaux
Une équipe de 10 personnes



Utilisation de nouvelles technologies
Nouvelle architecture
Un projet orienté service



7 mois de développement
1 année d’évolution
Sortie de nouvelles fonctionalités avant l’été
Git Flow: un processus de développement Agile




      Du cycle en V à l’agilité
Evolution du process

   - Planning en V
   - Gantt
   - Flou au démarrage
   - Manque de spécifications fonctionnelles
   - Evolution très rapide des besoins produits




                       Scrum
Equipe Scrum


• Développeurs
• Scrum Master
• Product Owner


• Business Owner
• Stackholders
• Quality Manager
Scrum
Détail d’un sprint Scrum chez Overblog

Semaine 1       Lundi             Mardi          Mercredi           Jeudi          Vendredi

            Sprint Planning   Daily Meeting    Daily Meeting    Daily Meeting    Daily Meeting




             Mise en Prod
             Release n-1      Poker Planning                    Poker Planning




Semaine 2       Lundi             Mardi          Mercredi           Jeudi          Vendredi
            Daily Meeting     Daily Meeting    Daily Meeting    Daily Meeting    Daily Meeting

                                                                Debug / Refacto Debug / Refacto

                                                                Demo             Code Review

            Poker Planning                     Feature Freeze                    Retrospective
Nos besoins de développement Agile




Coder sans mettre en péril le projet
Travailler à deux ou plus sur des features
Tester chaque fonctionnalité avant mise en production
Intégration continue pour certaines fonctionnalités
Release pour les grosses fonctionnalités
Gestion des urgences
Être accepté par l’équipe Scrum
Git Flow: un processus de développement Agile
                                                            feature-*          master   release-*          hotfix-*   stable

                                                                                                                              Tag 1.0


                                                                                               Bugfixes
                                                                                              Production




                                                                                                                              Tag 1.1




                        +                                                                     Intégration continue
                                                                                                                              Tag 1.2




                                                                                              Intégration continue
                                                                                                                              Tag 1.3




      Git Flow                             Github Flow

                                                            feature-*          master   release-*          hotfix-*   stable
                                                                 Feature for
                              Release 0                         next release                                                  Tag 1.0
                                             Feature for
                                           future release
                                                                                               Bugfixes




          =
                                                                                              Production




                                                                                                                              Tag 1.1




                                                                                              Intégration continue




Overblog Flow
                                                                                                                              Tag 1.2
                                                                                                     Start of
                               Feature                                                               release
                               Freeze                                                               branch for
                                                                                                       2.0




                                                                                                      Only
                                                                                                    bugfixes !



                               Mise en
                                                                                                                              Tag 2.0
                              production
Git flow
                              feature-*          develop            release-*             hotfix-*   master
                                   Feature for
Release 0                         next release                                                               Tag 1.0
               Feature for
             future release
                                                                              Bugfixes
                                                                             Production




                                                                                                             Tag 1.1




                                                                                    Start of
 Feature                                                                            release
 Freeze                                                                            branch for
                                                                                      2.0




                                                                                     Only
                                                                                   bugfixes !



 Mise en                                                                                                     Tag 2.0
production




                                  http://nvie.com/posts/a-successful-git-branching-model/
Git flow
            feature-*          develop
                 Feature for
Release 0       next release




                   Feature branches
Git flow
             feature-*   develop   release-*                master

Release 0                                                            Tag 1.0




                                                Start of
 Feature                                        release
 Freeze                                        branch for
                                                  2.0




                                                 Only
                                               bugfixes !



 Mise en                                                             Tag 2.0
production




                   Release branches
Git flow
                              feature-*   develop   release-*                master

Release 0                                                                             Tag 1.0
               Feature for
             future release




                                                                 Start of
 Feature                                                         release
 Freeze                                                         branch for
                                                                   2.0




 Mise en                                                                              Tag 2.0
production




                                Long feature branches
Git flow
               develop                     hotfix-*   master

Release 0                                                     Tag 1.0


                               Bugfixes
                              Production




                                                              Tag 1.1




            Hotfix branches
Nos besoins de développement Agile

Coder sans mettre en péril le projet
Travailler à deux ou plus sur des features
Tester chaque fonctionnalité avant mise en production
Intégration continue pour certaines fonctionnalités
Release pour les grosses fonctionnalités
Gestion des urgences
Être accepté par l’équipe Scrum




                                       Connection décentralisée
                                       Merge compliqué
                                       Qui merge ?
                                       Quand tester ?
Github Flow
                              feature-*          master
                                                 develop       release-*            hotfix-*    stable
                                                                                               master
                                   Feature for
Release 0                         next release                                                          Tag 1.0
               Feature for
             future release
                                                                        Bugfixes
                                                                       Production




                                                                                                        Tag 1.1




                                                                        Intégration continue
                                                                                                        Tag 1.2
                                                                             Start of
 Feature                                                                     release
 Freeze                                                                     branch for
                                                                               2.0




                                                                              Only
                                                                            bugfixes !



 Mise en                                                                Intégration continue
                                                                                                        Tag 1.3
                                                                                                            2.0
production
                                                Scott Chacon
                                 software developer & Git evangelist @Github

                               http://scottchacon.com/2011/08/31/github-flow.html
Github Flow
              feature-*         master         release-*            hotfix-*    stable

                                                                                        Tag 1.0


                                                        Bugfixes
                                                       Production




                                                                                        Tag 1.1




                                                        Intégration continue
                                                                                        Tag 1.2




                                                        Intégration continue
                                                                                        Tag 1.3


                                Scott Chacon
                 software developer & Git evangelist @Github

               http://scottchacon.com/2011/08/31/github-flow.html
Nos besoins de développement Agile

Coder sans mettre en péril le projet
Travailler à deux ou plus sur des features
Tester chaque fonctionnalité avant mise en production
Intégration continue pour certaines fonctionnalités
Release pour les grosses fonctionnalités
Gestion des urgences
Être accepté par l’équipe Scrum




                                       Plus de release
Overblog Flow
                              feature-*          develop
                                                 master    release-*          hotfix-*   master
                                                                                        stable
                                   Feature for
Release 0                         next release                                                   Tag 1.0
               Feature for
             future release
                                                                  Bugfixes
                                                                 Production




                                                                                                 Tag 1.1




                                                                 Intégration continue
                                                                                                 Tag 1.2
                                                                        Start of
 Feature                                                                release
 Freeze                                                                branch for
                                                                          2.0




                                                                         Only
                                                                       bugfixes !



 Mise en                                                                                         Tag 2.0
production
Overblog Flow
                              feature-*          master   release-*          hotfix-*   stable
                                   Feature for
Release 0                         next release                                                  Tag 1.0
               Feature for
             future release
                                                                 Bugfixes
                                                                Production




                                                                                                Tag 1.1




                                                                Intégration continue
                                                                                                Tag 1.2
                                                                       Start of
 Feature                                                               release
 Freeze                                                               branch for
                                                                         2.0




                                                                        Only
                                                                      bugfixes !



 Mise en                                                                                        Tag 2.0
production
Git Flow: un processus de développement Agile




Les Tests unitaires et fonctionnels
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Un processus de déploiement Agile
                                                                    Prod Server




                                                                                    Fun
                                                                                        c   tion
                                                                                                 a   l Te
                                                                                                            sts

                                                             Production
                                                              delivery

                                                                                                    Te   sts
                                                                                          tio   nal
                                                                                       c
                                                                                   Fun
   Run Unit Tests                                                                                                 Quality Manager
                           V
                           Va
                              ll
                             id
                              da
                               at
                                 e
                                 e




                                                                                                  ts
                                   &
                                   &




                                                                                              es
                                     M




                                                                                            lT
                                       er
                                        rg




                                                                                          na
                                         gee



                                                                  Staging Server




                                                                                       io
                                          Pu
                                          Pu




                                                                                     ct
                                                                                      n
                                               lll R




                                                                                   Fu
                                                   R
                                                  eq
                                                   q   u
                                                       ue




   Unit
                                                        st
                                                        st




  Tests




                                                  sts
                                   Pull Reque

                                                                    Test Server
              Developers                                                             Product Owner
Tests unitaires PHP
    PHPUnit
    Environnement de test Symfony 2
    Lancés par jenkins
namespace OverblogBlogBlogBundleTestsTwigNodeVisitor;

use OverblogBlogBlogBundleTwigNodeVisitorMethodCallOptimizerNodeVisitor;

class MethodCallOptimizerNodeVisitorTest extends PHPUnit_Framework_TestCase
{
    public function testSingle()
    {
        $env = $this->getTwig(array('tpl' => '{{ foo.bar }}'));
        $env->addNodeVisitor(new MethodCallOptimizerNodeVisitor(array(
             array('foo', 'getbar')
        )));

        $src = $env->getLoader()->getSource('tpl');
        $php = $env->compileSource($src, 'tpl');

        $this->assertContains(
            '$context["foo"]->getbar()',
            $php
        );
    }
}
Tests unitaires Javascript
      YUI Test
      Lancés par jenkins
      Navigateur Chromium dans un environnement VLC
var suite = new Y.Test.Suite("Timeline : TimelineView");

suite.add(
    new Y.Test.Case({

        name: "Test TimelineView",

        testRender: function ()
        {
            Y.Assert.areEqual(
                4,
                Y.all('.statuses button').size()
            );
            Y.Assert.areEqual(
                2,
                Y.all('.class button').size()
            );
            Y.Assert.areEqual(
                3,
                Y.all('.advanced select').size()
            );
        },
});

Y.Test.Runner.add(suite);
Tests fonctionnels
    Cucumber
    Lancés par jenkins
    Navigateurs controlés par Watir
@comment @ie
Scenario: I can add a comment
    When I connect to my comment account
    When I initialize a post with title "Test comments" and text "You can comment"
    When I publish
    Then I see success message "POST_PUBLISHED"
    Then I need to sleep a little
    Given I visit my comment blog
    When I open article "Test comments"
    Then I don't see errors
    When I add a comment with:
    | name            | text               |
    | Anonym comment | This article is top |
    Then I don't see errors
    Then I should see "Your comment has been published"
    Given I visit my comment blog
    When I open article "Test comments"
    Then I see comment:
    | name            | text               |
    | Anonym comment | This article is top |
    When I goto admin
    When I delete the article with:
    | title	         |
    | Test comments |
    Then I see success message "POST_DELETED"
Tests fonctionnels
Résultats des tests
Merci pour votre attention




                    Questions?

   Prenez le temps de créer votre blog sur
            www.over-blog.com

Contenu connexe

PDF
Continuous delivery-with-maven
PPTX
Version control system
PPTX
Git in 10 minutes
ODP
Source Code Management systems
PPTX
Software configuration management
PDF
Git real slides
PPTX
Git 101 for Beginners
PDF
Git - An Introduction
Continuous delivery-with-maven
Version control system
Git in 10 minutes
Source Code Management systems
Software configuration management
Git real slides
Git 101 for Beginners
Git - An Introduction

Tendances (20)

PPTX
Versioning avec Git
PDF
Git et les systèmes de gestion de versions
PPTX
Branching and Merging Practices
PPTX
Sistemas de controle de versão
ODP
Logging presentation
PDF
Dealing with Merge Conflicts in Git
KEY
Introduction to Git
PPT
Vista lógica
PDF
Git Version Control System
PDF
Git flow
PDF
Qemu Introduction
PDF
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
PDF
Introduction to Git and Github
PDF
GIT | Distributed Version Control System
PDF
Apresentação maven
KEY
Git and GitHub
KEY
Introduction To Git
PPS
A histórias dos Computadores
PDF
Git (Internals)
PDF
git - eine praktische Einführung
Versioning avec Git
Git et les systèmes de gestion de versions
Branching and Merging Practices
Sistemas de controle de versão
Logging presentation
Dealing with Merge Conflicts in Git
Introduction to Git
Vista lógica
Git Version Control System
Git flow
Qemu Introduction
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Introduction to Git and Github
GIT | Distributed Version Control System
Apresentação maven
Git and GitHub
Introduction To Git
A histórias dos Computadores
Git (Internals)
git - eine praktische Einführung
Publicité

En vedette (20)

PPTX
En quoi git serait plus agile que svn ?
PDF
Tutoriel GIT
PDF
Git pour les (pas si) nuls
PPT
Git vs SVN
PDF
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
PPTX
Présentation Git & GitHub
PDF
SVN 2 Git
PPTX
GitHub - Présentation
PDF
Git flow in action
PDF
Formation GIT gratuite par ippon 2014
PPTX
Atelier Git + GitHub
PDF
How Kris Writes Symfony Apps
ODP
C'est si simple git ! (devoxx france 2012)
PDF
Comparison of SVN and Git
PDF
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
PPTX
Paul valery et les Web components
PDF
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
PDF
Git flow for daily use
En quoi git serait plus agile que svn ?
Tutoriel GIT
Git pour les (pas si) nuls
Git vs SVN
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Présentation Git & GitHub
SVN 2 Git
GitHub - Présentation
Git flow in action
Formation GIT gratuite par ippon 2014
Atelier Git + GitHub
How Kris Writes Symfony Apps
C'est si simple git ! (devoxx france 2012)
Comparison of SVN and Git
Symfony2, Backbone.js & socket.io - SfLive Paris 2k13 - Wisembly
Paul valery et les Web components
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Git flow for daily use
Publicité

Similaire à Git Flow: un processus de développement Agile (7)

PDF
Chaine de production pipeline
PDF
KEY
PPTX
Mobile DevOps @While_42
PPTX
Retour d'experience GIT, Integration continue
ODP
Industrialisation bar camp2010
PDF
Github workflow
Chaine de production pipeline
Mobile DevOps @While_42
Retour d'experience GIT, Integration continue
Industrialisation bar camp2010
Github workflow

Git Flow: un processus de développement Agile

  • 1. Git Flow: un processus de développement Agile Xavier HAUSHERR
  • 2. A propos Xavier HAUSHERR CTO Twitter: @xkobal Blog: xavier.over-blog.com
  • 3. Git Flow: un processus de développement Agile Le projet Overblog
  • 4. Qui sommes nous ? Né en 2004, Overblog est la plateforme de blogs Européenne n°1. Nous sommes la première plateforme a avoir mis en place le partage de revenu publicitaire généré par l’audience. La nouvelle version est sortie en Juin 2012 avec un très bon retour des blogueurs. Elle ne cesse depuis d’évoluer fonctionnellement. C’est aussi: 3 millions de blogs dans 5 langues 38 millions de visiteurs uniques par mois 275 millions pages vues par mois 16ème audience française Plus de 80 serveurs pour servir les blogs
  • 5. Nom de code «Kiwi» Refonte complète du produit Une forte orientation vers les réseaux sociaux Une équipe de 10 personnes Utilisation de nouvelles technologies Nouvelle architecture Un projet orienté service 7 mois de développement 1 année d’évolution Sortie de nouvelles fonctionalités avant l’été
  • 6. Git Flow: un processus de développement Agile Du cycle en V à l’agilité
  • 7. Evolution du process - Planning en V - Gantt - Flou au démarrage - Manque de spécifications fonctionnelles - Evolution très rapide des besoins produits Scrum
  • 8. Equipe Scrum • Développeurs • Scrum Master • Product Owner • Business Owner • Stackholders • Quality Manager
  • 10. Détail d’un sprint Scrum chez Overblog Semaine 1 Lundi Mardi Mercredi Jeudi Vendredi Sprint Planning Daily Meeting Daily Meeting Daily Meeting Daily Meeting Mise en Prod Release n-1 Poker Planning Poker Planning Semaine 2 Lundi Mardi Mercredi Jeudi Vendredi Daily Meeting Daily Meeting Daily Meeting Daily Meeting Daily Meeting Debug / Refacto Debug / Refacto Demo Code Review Poker Planning Feature Freeze Retrospective
  • 11. Nos besoins de développement Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion des urgences Être accepté par l’équipe Scrum
  • 12. Git Flow: un processus de développement Agile feature-* master release-* hotfix-* stable Tag 1.0 Bugfixes Production Tag 1.1 + Intégration continue Tag 1.2 Intégration continue Tag 1.3 Git Flow Github Flow feature-* master release-* hotfix-* stable Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes = Production Tag 1.1 Intégration continue Overblog Flow Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production
  • 13. Git flow feature-* develop release-* hotfix-* master Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production http://nvie.com/posts/a-successful-git-branching-model/
  • 14. Git flow feature-* develop Feature for Release 0 next release Feature branches
  • 15. Git flow feature-* develop release-* master Release 0 Tag 1.0 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production Release branches
  • 16. Git flow feature-* develop release-* master Release 0 Tag 1.0 Feature for future release Start of Feature release Freeze branch for 2.0 Mise en Tag 2.0 production Long feature branches
  • 17. Git flow develop hotfix-* master Release 0 Tag 1.0 Bugfixes Production Tag 1.1 Hotfix branches
  • 18. Nos besoins de développement Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion des urgences Être accepté par l’équipe Scrum Connection décentralisée Merge compliqué Qui merge ? Quand tester ?
  • 19. Github Flow feature-* master develop release-* hotfix-* stable master Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Intégration continue Tag 1.3 2.0 production Scott Chacon software developer & Git evangelist @Github http://scottchacon.com/2011/08/31/github-flow.html
  • 20. Github Flow feature-* master release-* hotfix-* stable Tag 1.0 Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Intégration continue Tag 1.3 Scott Chacon software developer & Git evangelist @Github http://scottchacon.com/2011/08/31/github-flow.html
  • 21. Nos besoins de développement Agile Coder sans mettre en péril le projet Travailler à deux ou plus sur des features Tester chaque fonctionnalité avant mise en production Intégration continue pour certaines fonctionnalités Release pour les grosses fonctionnalités Gestion des urgences Être accepté par l’équipe Scrum Plus de release
  • 22. Overblog Flow feature-* develop master release-* hotfix-* master stable Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production
  • 23. Overblog Flow feature-* master release-* hotfix-* stable Feature for Release 0 next release Tag 1.0 Feature for future release Bugfixes Production Tag 1.1 Intégration continue Tag 1.2 Start of Feature release Freeze branch for 2.0 Only bugfixes ! Mise en Tag 2.0 production
  • 24. Git Flow: un processus de développement Agile Les Tests unitaires et fonctionnels
  • 25. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 26. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 27. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 28. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 29. Un processus de déploiement Agile Prod Server Fun c tion a l Te sts Production delivery Te sts tio nal c Fun Run Unit Tests Quality Manager V Va ll id da at e e ts & & es M lT er rg na gee Staging Server io Pu Pu ct n lll R Fu R eq q u ue Unit st st Tests sts Pull Reque Test Server Developers Product Owner
  • 30. Tests unitaires PHP PHPUnit Environnement de test Symfony 2 Lancés par jenkins namespace OverblogBlogBlogBundleTestsTwigNodeVisitor; use OverblogBlogBlogBundleTwigNodeVisitorMethodCallOptimizerNodeVisitor; class MethodCallOptimizerNodeVisitorTest extends PHPUnit_Framework_TestCase { public function testSingle() { $env = $this->getTwig(array('tpl' => '{{ foo.bar }}')); $env->addNodeVisitor(new MethodCallOptimizerNodeVisitor(array( array('foo', 'getbar') ))); $src = $env->getLoader()->getSource('tpl'); $php = $env->compileSource($src, 'tpl'); $this->assertContains( '$context["foo"]->getbar()', $php ); } }
  • 31. Tests unitaires Javascript YUI Test Lancés par jenkins Navigateur Chromium dans un environnement VLC var suite = new Y.Test.Suite("Timeline : TimelineView"); suite.add( new Y.Test.Case({ name: "Test TimelineView", testRender: function () { Y.Assert.areEqual( 4, Y.all('.statuses button').size() ); Y.Assert.areEqual( 2, Y.all('.class button').size() ); Y.Assert.areEqual( 3, Y.all('.advanced select').size() ); }, }); Y.Test.Runner.add(suite);
  • 32. Tests fonctionnels Cucumber Lancés par jenkins Navigateurs controlés par Watir @comment @ie Scenario: I can add a comment When I connect to my comment account When I initialize a post with title "Test comments" and text "You can comment" When I publish Then I see success message "POST_PUBLISHED" Then I need to sleep a little Given I visit my comment blog When I open article "Test comments" Then I don't see errors When I add a comment with: | name | text | | Anonym comment | This article is top | Then I don't see errors Then I should see "Your comment has been published" Given I visit my comment blog When I open article "Test comments" Then I see comment: | name | text | | Anonym comment | This article is top | When I goto admin When I delete the article with: | title | | Test comments | Then I see success message "POST_DELETED"
  • 35. Merci pour votre attention Questions? Prenez le temps de créer votre blog sur www.over-blog.com