Allons plus loin
avec Selenium



                   1
#agilefrance




Merci à nos sponsors :




                         web & mail   gold
Présentation

   ๏ Pierre-Yves JAIR
   ๏ Coach et Formateur technico Agile
   ๏ Développeur ... un peu quand même
   ๏ J’aime qu’un plan se déroule sans accroc

@pierreyves29
pierre-yves.jair@soat.fr


                                                3
Rappel




         4
Tester une IHM ?

๏ Cahier de recette
๏ Coûts dédiés
๏ Coûts grandissant
๏ Tests régressions
๏ Tests nouveautés
๏ Lassant

                          5
Tester une IHM ?


๏ Durant le sprint ?
๏ Validation nominale ?
๏ Validation exhaustive ?


                            6
Les solutions

Watir
Web Application Testing in Ruby




                                                  7
Les solutions

Watir
Web Application Testing in Ruby




                                                  7
3 Utilisations


๏ Facile et Rapide
๏ Robuste et Souple
๏ Facile, Rapide, Robuste et Souple


                                      8
Rappel ou pas ?
        http://seleniumhq.org/




                                 9
Rappel ou pas ?
                                        http://seleniumhq.org/




Selenium IDE    Selenium RC       Selenium WebDriver   Selenium Grid
                 Remote Control




                                                                       9
Rappel ou pas ?
                                        http://seleniumhq.org/


                                                       API




Selenium IDE    Selenium RC       Selenium WebDriver   Selenium Grid
                 Remote Control




                                                                       9
Facile et Rapide
   Selenium IDE




                   10
Selenium IDE




               11
Selenium IDE




               12
Selenium IDE




               13
Robuste et Souple
    API Selenium




                    14
API

	     selenium.open("/");
	 	 verifyTrue(selenium.isTextPresent("Agilité, Java EE, .NET et plus si affinités"));
	 	 selenium.click("//ul[@id='navigation']/li[2]/a/span");
	 	 selenium.waitForPageToLoad("30000");
	 	 for (int second = 0;; second++) {
	 	 	 if (second >= 60) fail("timeout");
	 	 	 try { if ("Créé en 2000, So@t s’impose progressivement dans le paysage de
l’ingénierie et du conseil en informatique.".equals(selenium.getText("//div[@id='post-2']/
div/p[2]"))) break; } catch (Exception e) {}
	 	 	 Thread.sleep(1000);
	 	 }

	   	   selenium.click("//ul[@id='navigation']/li[3]/ul/li/a/span");
	   	   selenium.waitForPageToLoad("30000");
	   	   selenium.click("css=a.fadeThis.sf-with-ul; span.title");
	   	   selenium.waitForPageToLoad("30000");




                                                                                    15
API
Export depuis Selenium IDE




                        16
API & IDE


๏ Isolation des parties
๏ Absence de communication
๏ Avantages et Inconvénients
๏ Utilisation


                               17
Utilisation
f1   f2     f3   Interface utilisateur




                 Services




                                         18
Utilisation
 f1   f2     f3   Interface utilisateur




                  Services




TU


                                          18
Utilisation
 f1   f2      f3   Interface utilisateur




                   Services




TU    TUF


                                           18
Utilisation
 f1   f2       f3       Interface utilisateur




                        Services




TU    TUF    TU + TUF


                                                18
Utilisation
f1   f2     f3   Interface utilisateur




                 Services




                                         18
Utilisation
f1   f2     f3   Interface utilisateur




                 Services




                                         18
Facile, Rapide, Robuste et Souple




                                    19
Vie du besoin
Métier / Client


    MOA


    MOE


  Recette


                            20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Vie du besoin
Métier / Client
                     Métier
    MOA


    MOE
                     TEAM
  Recette


                              20
Fluidifier les relations


๏ Pouvons-nous éviter des aller-
  retours inutiles ?
๏ Créer une dynamique commune
  de test ?


                                   21
Challenges
๏ Sécuriser au plus tôt les
  développements
๏ Détecter au plus tôt la régression
๏ Mise en place de tests adaptés
๏ Création de tests rapides et simples
๏ Tests robustes et génériques

                                         22
Organisation




               23
Organisation
         Développement
            terminé




                         23
Organisation
                   Développement
                      terminé




      Selenium

Validation automatique
                                   23
Organisation
Mise en place d’un              Développement
     scénario                      terminé




                     Selenium

        Validation automatique
                                                23
Organisation
Mise en place d’un              Développement
     scénario                      terminé



             HTML




                     Selenium

        Validation automatique
                                                23
Organisation
Mise en place d’un                      Développement
     scénario                              terminé



             HTML



            HTML

               Partage des ressources


                     Selenium

        Validation automatique
                                                        23
Organisation
Mise en place d’un                      Développement
     scénario                              terminé



             HTML



            HTML

               Partage des ressources


                     Selenium

        Validation automatique
                                                        23
Organisation
Mise en place d’un                        Développement
     scénario                                terminé
                                        Custom

             HTML



            HTML

               Partage des ressources


                     Selenium

        Validation automatique
                                                          23
Organisation
Mise en place d’un                           Développement
     scénario                                   terminé
                                         Custom

             HTML



            HTML                JAVA / C# / ...

               Partage des ressources


                     Selenium

        Validation automatique
                                                             23
Remarques




            24
Remarques


๏ Avantages
๏ Inconvénients
๏ Approche ATDD



                      24
Approche ATDD
 Acceptance Test Driven Development


Given I have selected adress area
When I select Country where i live
And select the zip code
Then define the differents street



                                      25
Approche ATDD




                26
Approche ATDD




                27
Remarque

๏ ... résistance au changement
๏ Faire travailler les gens ensemble
๏ Former les équipes
๏ Une nouvelle philosophie de travail



                                        28
Un petit bonus
Couverture de code




                        29
Questions

            30
Merci



        31

Allons plus loin avec Selenium