réunion technique pmsipilot - mars 2010
DESCRIPTION
Tests SeleniumTRANSCRIPT
![Page 1: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/1.jpg)
Selenium
Réunion technique
![Page 2: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/2.jpg)
05/03/20102
réunion technique
Oui mais non ...
![Page 3: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/3.jpg)
05/03/20103
réunion technique
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
![Page 4: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/4.jpg)
05/03/20104
réunion technique
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 …
![Page 5: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/5.jpg)
05/03/20105
réunion technique
Point boulet direct !
![Page 6: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/6.jpg)
05/03/20106
réunion technique
En fait … Epic Fail !
![Page 7: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/7.jpg)
05/03/20107
réunion technique
C'est mieux !
![Page 8: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/8.jpg)
05/03/20108
réunion technique
En plus on t'aide !
• Dans les contrôleurs● $this->getContext()● $this->getPmsipilotContext()
• Dans les formulaires étendant BaseForm● $this->getValidUser()● $this->getValidContext()
![Page 9: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/9.jpg)
05/03/20109
réunion technique
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
![Page 10: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/10.jpg)
05/03/201010
réunion technique
Tests unitaires
![Page 11: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/11.jpg)
05/03/201011
réunion technique
Tests unitaires
• On peut tester :● le retour de fonctions● Le type des objets● Le lancement d'exception● ...
• Cf Adrien• Cf test/unit
![Page 12: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/12.jpg)
05/03/201012
réunion technique
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
![Page 13: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/13.jpg)
05/03/201013
réunion technique
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/
![Page 14: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/14.jpg)
05/03/201014
réunion technique
Test suite
• OMG c'est hachetéheumelle !• web/selenium/TestSuite_PMSIpilot.html
![Page 15: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/15.jpg)
05/03/201015
réunion technique
Ecrire un test
• MERILESTFOU c'est toujours du hachetéheumelle
![Page 16: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/16.jpg)
05/03/201016
réunion technique
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
![Page 17: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/17.jpg)
05/03/201017
réunion technique
Ecrire un test
![Page 18: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/18.jpg)
05/03/201018
réunion technique
Commandes et assertions
• open• click/clickAndWait• verifyTitle/assertTitle• verifyTextPresent• verifyElementPresent• verifyText• verifyTable• waitForPageToLoad• waitForElementPresent
![Page 19: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/19.jpg)
05/03/201019
réunion technique
Démo
![Page 20: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/20.jpg)
05/03/201020
réunion technique
Firefox … ça roule
![Page 21: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/21.jpg)
05/03/201021
réunion technique
IE 7 .. fail !
![Page 22: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/22.jpg)
05/03/201022
réunion technique
ROADMAP
• /pmsipilot/• HUDSON
● http://wiki.hudson-ci.org/display/HUDSON/Selenium+Plugin
![Page 23: Réunion technique PMSIpilot - Mars 2010](https://reader036.vdocuments.site/reader036/viewer/2022081403/555a8eaad8b42abb628b5410/html5/thumbnails/23.jpg)
05/03/201023
réunion technique
pmsiPicole