SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Réunion technique


 Selenium
Oui mais non ...




                   réunion technique
                           05/03/2010
                                    2
Stop au massacre !


• Coupling is the single greatest problem in large
    software systems.
• Toujours penser :
 ●
     Qu'on voudra utiliser cette classe dans un contexte
     différent (en CLI par exemple !)
 ●
     Que si, sur le moment c'est pénible, les chatons t'en
     remercient




                                                     réunion technique
                                                             05/03/2010
                                                                      3
N'introduisez pas de dépendances


• Non vraiment …
• Sinon, au plus simple
 ●
     Injection dans le constructeur
 ●
     Injection sur certaines méthodes
 ●
     Notifiez un événement
 ●
     Parlons en …




                                        réunion technique
                                                05/03/2010
                                                         4
Point boulet direct !




                        réunion technique
                                05/03/2010
                                         5
En fait … Epic Fail !




                        réunion technique
                                05/03/2010
                                         6
C'est mieux !




                réunion technique
                        05/03/2010
                                 7
En plus on t'aide !


• Dans les contrôleurs
 ●
     $this->getContext()
 ●
     $this->getPmsipilotContext()
• Dans les formulaires étendant BaseForm
 ●
     $this->getValidUser()
 ●
     $this->getValidContext()




                                           réunion technique
                                                   05/03/2010
                                                            8
Tests unitaires


• Fatalement on peut les faire sur du code
    faiblement couplé
• Face à un bug ou une évol d'une classe
 ●
     Ecrire un test validant le comportement voulu
 ●
     Faire le dev
• != tests fonctionnels
• En général c'est tout simple




                                                     réunion technique
                                                             05/03/2010
                                                                      9
Tests unitaires




                  réunion technique
                          05/03/2010
                                  10
Tests unitaires


• On peut tester :
 ●
     le retour de fonctions
 ●
     Le type des objets
 ●
     Le lancement d'exception
 ●
     ...
• Cf Adrien
• Cf test/unit




                                réunion technique
                                        05/03/2010
                                                11
Les tests chez PMSIpilot


• Tests unitaires
 ●
     Bas niveau
 ●
     Fonctionnement des classes
 ●
     Comportements attendus et effets de bord
• Tests fonctionnels
 ●
     Tester les données, les workflows
 ●
     Parcourir le logiciel
• Tests d'interfaces
 ●
     Tester le JS, la CSS
 ●
     Sur différents navigateurs


                                                réunion technique
                                                        05/03/2010
                                                                12
Selenium


•   Un framework de test en Javascript (fear !)
•   Conçu pour tester les interfaces
•   Pour gérer les différences entre les navigateurs
•   http://seleniumhq.org/projects/ide/




                                             réunion technique
                                                     05/03/2010
                                                             13
Test suite


• OMG c'est hachetéheumelle !
• web/selenium/TestSuite_PMSIpilot.html




                                          réunion technique
                                                  05/03/2010
                                                          14
Ecrire un test
• MERILESTFOU c'est toujours du hachetéheumelle




                                     réunion technique
                                             05/03/2010
                                                     15
Ecrire un test

• Une instruction
 ●
     Commande
 ●
     Cible
 ●
     Valeur
• Recherche / manip sur des éléments
 ●
     Facile pour les formulaires et les liens
 ●
     Xpath est ton ami pour le reste (ou d'autres trucs)
 ●
     Merci firebug




                                                     réunion technique
                                                             05/03/2010
                                                                     16
Ecrire un test




                 réunion technique
                         05/03/2010
                                 17
Commandes et assertions


•   open
•   click/clickAndWait
•   verifyTitle/assertTitle
•   verifyTextPresent
•   verifyElementPresent
•   verifyText
•   verifyTable
•   waitForPageToLoad
•   waitForElementPresent

                              réunion technique
                                      05/03/2010
                                              18
Démo




       réunion technique
               05/03/2010
                       19
Firefox … ça roule




                     réunion technique
                             05/03/2010
                                     20
IE 7 .. fail !




                 réunion technique
                         05/03/2010
                                 21
ROADMAP


• /pmsipilot/
• HUDSON
 ●
     http://wiki.hudson-
     ci.org/display/HUDSON/Selenium+Plugin




                                             réunion technique
                                                     05/03/2010
                                                             22
pmsiPicole




             réunion technique
                     05/03/2010
                             23

Weitere ähnliche Inhalte

Ähnlich wie Réunion technique PMSIpilot - Mars 2010

CocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeadsRNS
 
Une architecture agile et testable
Une architecture agile et testableUne architecture agile et testable
Une architecture agile et testablemartinsson
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)French Scrum User Group
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010JUG Lausanne
 
Reunion Technique PMSIpilot - Janvier 2010
Reunion Technique PMSIpilot - Janvier 2010Reunion Technique PMSIpilot - Janvier 2010
Reunion Technique PMSIpilot - Janvier 2010PMSIpilot
 
Liferay Portail Web Enterprise Plateforme Collaborative
Liferay Portail Web Enterprise Plateforme CollaborativeLiferay Portail Web Enterprise Plateforme Collaborative
Liferay Portail Web Enterprise Plateforme CollaborativeSavoir-faire Linux
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
ça marchait pourtant en dev
ça marchait pourtant en devça marchait pourtant en dev
ça marchait pourtant en devOlivier Doucet
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration ContinueNormandy JUG
 
ASFWS 2012 - Gestion opérationnelle de la sécurité logicielle sur la platefor...
ASFWS 2012 - Gestion opérationnelle de la sécurité logicielle sur la platefor...ASFWS 2012 - Gestion opérationnelle de la sécurité logicielle sur la platefor...
ASFWS 2012 - Gestion opérationnelle de la sécurité logicielle sur la platefor...Cyber Security Alliance
 
Agile tour2015
Agile tour2015Agile tour2015
Agile tour2015ffaure32
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web modernehalleck45
 
Agile tour de bordeaux 2013 - L’âge d’une technologique est-il une excuse ?
Agile tour de bordeaux 2013 - L’âge d’une technologique est-il une excuse ?Agile tour de bordeaux 2013 - L’âge d’une technologique est-il une excuse ?
Agile tour de bordeaux 2013 - L’âge d’une technologique est-il une excuse ?Chris DENIAUD
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...Sébastien Levert
 

Ähnlich wie Réunion technique PMSIpilot - Mars 2010 (20)

Et si on jouait au tdd 20131017
Et si on jouait au tdd 20131017Et si on jouait au tdd 20131017
Et si on jouait au tdd 20131017
 
CocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOS
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Une architecture agile et testable
Une architecture agile et testableUne architecture agile et testable
Une architecture agile et testable
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
 
Reunion Technique PMSIpilot - Janvier 2010
Reunion Technique PMSIpilot - Janvier 2010Reunion Technique PMSIpilot - Janvier 2010
Reunion Technique PMSIpilot - Janvier 2010
 
Liferay Portail Web Enterprise Plateforme Collaborative
Liferay Portail Web Enterprise Plateforme CollaborativeLiferay Portail Web Enterprise Plateforme Collaborative
Liferay Portail Web Enterprise Plateforme Collaborative
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
ça marchait pourtant en dev
ça marchait pourtant en devça marchait pourtant en dev
ça marchait pourtant en dev
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration Continue
 
1.pdf
1.pdf1.pdf
1.pdf
 
ASFWS 2012 - Gestion opérationnelle de la sécurité logicielle sur la platefor...
ASFWS 2012 - Gestion opérationnelle de la sécurité logicielle sur la platefor...ASFWS 2012 - Gestion opérationnelle de la sécurité logicielle sur la platefor...
ASFWS 2012 - Gestion opérationnelle de la sécurité logicielle sur la platefor...
 
Agile tour2015
Agile tour2015Agile tour2015
Agile tour2015
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderne
 
Agile tour de bordeaux 2013 - L’âge d’une technologique est-il une excuse ?
Agile tour de bordeaux 2013 - L’âge d’une technologique est-il une excuse ?Agile tour de bordeaux 2013 - L’âge d’une technologique est-il une excuse ?
Agile tour de bordeaux 2013 - L’âge d’une technologique est-il une excuse ?
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
 

Mehr von PMSIpilot

Test slideshare
Test slideshareTest slideshare
Test slidesharePMSIpilot
 
Git workflow
Git workflowGit workflow
Git workflowPMSIpilot
 
Introduction à Git (avec PHPStorm)
Introduction à Git (avec PHPStorm)Introduction à Git (avec PHPStorm)
Introduction à Git (avec PHPStorm)PMSIpilot
 
Reu tech-git-100915100046-phpapp01
Reu tech-git-100915100046-phpapp01Reu tech-git-100915100046-phpapp01
Reu tech-git-100915100046-phpapp01PMSIpilot
 
Réunion technique - tests unitaires
Réunion technique - tests unitairesRéunion technique - tests unitaires
Réunion technique - tests unitairesPMSIpilot
 
End Year Prez
End Year PrezEnd Year Prez
End Year PrezPMSIpilot
 
pmsipilotMCOCriteria
pmsipilotMCOCriteriapmsipilotMCOCriteria
pmsipilotMCOCriteriaPMSIpilot
 

Mehr von PMSIpilot (7)

Test slideshare
Test slideshareTest slideshare
Test slideshare
 
Git workflow
Git workflowGit workflow
Git workflow
 
Introduction à Git (avec PHPStorm)
Introduction à Git (avec PHPStorm)Introduction à Git (avec PHPStorm)
Introduction à Git (avec PHPStorm)
 
Reu tech-git-100915100046-phpapp01
Reu tech-git-100915100046-phpapp01Reu tech-git-100915100046-phpapp01
Reu tech-git-100915100046-phpapp01
 
Réunion technique - tests unitaires
Réunion technique - tests unitairesRéunion technique - tests unitaires
Réunion technique - tests unitaires
 
End Year Prez
End Year PrezEnd Year Prez
End Year Prez
 
pmsipilotMCOCriteria
pmsipilotMCOCriteriapmsipilotMCOCriteria
pmsipilotMCOCriteria
 

Réunion technique PMSIpilot - Mars 2010

  • 2. Oui mais non ... réunion technique 05/03/2010 2
  • 3. Stop au massacre ! • Coupling is the single greatest problem in large software systems. • Toujours penser : ● Qu'on voudra utiliser cette classe dans un contexte différent (en CLI par exemple !) ● Que si, sur le moment c'est pénible, les chatons t'en remercient réunion technique 05/03/2010 3
  • 4. N'introduisez pas de dépendances • Non vraiment … • Sinon, au plus simple ● Injection dans le constructeur ● Injection sur certaines méthodes ● Notifiez un événement ● Parlons en … réunion technique 05/03/2010 4
  • 5. Point boulet direct ! réunion technique 05/03/2010 5
  • 6. En fait … Epic Fail ! réunion technique 05/03/2010 6
  • 7. C'est mieux ! réunion technique 05/03/2010 7
  • 8. En plus on t'aide ! • Dans les contrôleurs ● $this->getContext() ● $this->getPmsipilotContext() • Dans les formulaires étendant BaseForm ● $this->getValidUser() ● $this->getValidContext() réunion technique 05/03/2010 8
  • 9. Tests unitaires • Fatalement on peut les faire sur du code faiblement couplé • Face à un bug ou une évol d'une classe ● Ecrire un test validant le comportement voulu ● Faire le dev • != tests fonctionnels • En général c'est tout simple réunion technique 05/03/2010 9
  • 10. Tests unitaires réunion technique 05/03/2010 10
  • 11. Tests unitaires • On peut tester : ● le retour de fonctions ● Le type des objets ● Le lancement d'exception ● ... • Cf Adrien • Cf test/unit réunion technique 05/03/2010 11
  • 12. Les tests chez PMSIpilot • Tests unitaires ● Bas niveau ● Fonctionnement des classes ● Comportements attendus et effets de bord • Tests fonctionnels ● Tester les données, les workflows ● Parcourir le logiciel • Tests d'interfaces ● Tester le JS, la CSS ● Sur différents navigateurs réunion technique 05/03/2010 12
  • 13. Selenium • Un framework de test en Javascript (fear !) • Conçu pour tester les interfaces • Pour gérer les différences entre les navigateurs • http://seleniumhq.org/projects/ide/ réunion technique 05/03/2010 13
  • 14. Test suite • OMG c'est hachetéheumelle ! • web/selenium/TestSuite_PMSIpilot.html réunion technique 05/03/2010 14
  • 15. Ecrire un test • MERILESTFOU c'est toujours du hachetéheumelle réunion technique 05/03/2010 15
  • 16. Ecrire un test • Une instruction ● Commande ● Cible ● Valeur • Recherche / manip sur des éléments ● Facile pour les formulaires et les liens ● Xpath est ton ami pour le reste (ou d'autres trucs) ● Merci firebug réunion technique 05/03/2010 16
  • 17. Ecrire un test réunion technique 05/03/2010 17
  • 18. Commandes et assertions • open • click/clickAndWait • verifyTitle/assertTitle • verifyTextPresent • verifyElementPresent • verifyText • verifyTable • waitForPageToLoad • waitForElementPresent réunion technique 05/03/2010 18
  • 19. Démo réunion technique 05/03/2010 19
  • 20. Firefox … ça roule réunion technique 05/03/2010 20
  • 21. IE 7 .. fail ! réunion technique 05/03/2010 21
  • 22. ROADMAP • /pmsipilot/ • HUDSON ● http://wiki.hudson- ci.org/display/HUDSON/Selenium+Plugin réunion technique 05/03/2010 22
  • 23. pmsiPicole réunion technique 05/03/2010 23