SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Génération de tests fonctionnels 
Titre présentation | Conférencier 
Thomas Rabaix 
contact : thomas.rabaix@soleoweb.com - www.soleoweb.com
• Consultant via la société Soleoweb : expertise internet 
et spécialiste symfony. 
• Utilise symfony depuis 3 ans : 
– plugins : sfLucenePlugin : port vers Doctrine et sf1.2 (Zend et 
Solr), swDoctrineAssetsLibraryPlugin : Doctrine et sf1.2, 
swToolboxPlugin : divers outils sympa 
– mailing list, bug reports 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Thomas Rabaix 
– symfony 1.0 et Propel 
– symfony 1.1 et Propel / Doctrine 
– symfony 1.2 et Doctrine 
• Contributions 
Génération de tests fonctionnels 
Thomas Rabaix
swToolboxPlugin - c’est quoi ? 
• un ensemble de class php qui peut être utile à vos 
projets symfony 
• un outil qui rajoute des fonctionnalités : 
– fil d’arianne 
– AJAX avec sfForm 
– sendMail ;-) 
– widgets : adresse avec google map, nested set doctrine, etc ... 
– lien entre application natif 
– et .... un générateur de tests fonctionnels 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Génération de tests fonctionnels 
Thomas Rabaix
• “functional tests validate a process and require a 
scenario. In symfony, you should write functional tests 
for all your actions...” [1] 
• ... dans l’idéal, les tests sont écrits avant le code ... 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Les tests fonctionnels 
Génération de tests fonctionnels 
Thomas Rabaix
– longs à écrire et pénibles car il faut connaitre les noms de tous 
les champs dans un formulaire 
– répétitifs, c’est souvent les mêmes lignes de codes qui 
reviennent 
– représentent des coups importants 
– permettent de tester une application web de manière 
automatique 
– permettent de prévenir les effets de bord lors de la 
maintenance ou lors de l’ajout de nouvelles fonctionnalités 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
... dans la réalité 
• Inconvénients 
• Avantages 
Génération de tests fonctionnels 
Thomas Rabaix
• Peut on faire disparaitre ces inconvenients ? 
• Comment ? en enregistrant un scénario qui utilise 
simplement l’application 
• A l’aide de quel outil ? le filtre swFilterFunctionalTest 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Inconvenients... vraiment ? 
Génération de tests fonctionnels 
Thomas Rabaix
• Création d’une application de démonstration 
• Mini cahier des charges : 
– knowledge base application (swKnowledgeBase) 
• accès seulement aux personnes authentifiées 
• chaque entrée est rattachée à une catégorie 
• il est possible de lier des entrées entre elles en fonction de la catégorie 
(AJAX) 
• options simples de recherche 
– c’est tout ! vous avez une journée !!! 
• ... et en plus il faut des tests fonctionnels 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Démonstration par l’exemple 
Génération de tests fonctionnels 
Thomas Rabaix
• Utilisation des plugins suivants : 
– sfDoctrineGuardPlugin : authentification 
– sfAdminDashPlugin : interface d’administration 
– swToolboxPlugin : 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
swKnowledgeBase 
• test fonctionnel 
• ajax 
Génération de tests fonctionnels 
Thomas Rabaix
Activation 
• installer le package swToolboxPlugin 
– symfony plugin:install swToolboxPlugin 
– http://symfony-live.com/plugins/swToolboxPlugin 
• Editer le fichier filters.yml 
• Activer la bar de debug symfony 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Génération de tests fonctionnels 
Thomas Rabaix
– Avec erreur 
– correction de l’erreur 
– Ajax pour lier une entrée avec d’autres entrées 
• Vérification : l’entrée doit être présente dans la liste 
• Click sur édition 
• Suppression de l’entrée 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Scénario 
• Authentification sur l’application 
• Rajout d’une entrée 
Génération de tests fonctionnels 
Thomas Rabaix
Demonstration 
en video 
http://www.rabaix.net/en/2009/05/11/sflive-2009-paris 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Génération de tests fonctionnels 
Thomas Rabaix
• l’objet sfBrowser permet d’accéder au “sfContext” 
– récupération de toutes les informations de symfony 
– récupération des variables définies dans l’action 
• L’outil de génération de test : 
– fonctionne seulement si la session en cours est dans le bon 
“état” (supression des cookies) 
– peut avoir des incohérences avec les paramètres dynamiques 
dans les urls comme les identifiants. 
– permet de tester les actions AJAX 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Quelques notes 
Génération de tests fonctionnels 
Thomas Rabaix
• Application disponible en version sandbox 
– http://soleoweb.com/uploads/sw_kb_sandbox.zip 
– A regarder 
• la class swKbEntryForm : définition des champs et de l’ajax 
• doctrine.yml : définition du model de donnés 
• l’application frontend pour les options de liste 
• Demo en ligne disponible prochainement sur : 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
swKnowledgeBase - demo 
– http://kb.soleoweb.com 
Génération de tests fonctionnels 
Thomas Rabaix
Questions ? 
✓ la mailing-list symfony-users@googlegroups.com 
✓ la prochaine application kb.soleoweb.com ;) 
✓ articles sur http://rabaix.net 
contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com 
Pour aller plus loin : 
Génération de tests fonctionnels 
Thomas Rabaix

Contenu connexe

En vedette

symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
Fabien Potencier
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Hugo Hamon
 
20140608 tiempo-para-ver (1)
20140608 tiempo-para-ver (1)20140608 tiempo-para-ver (1)
20140608 tiempo-para-ver (1)
Regiana Batista
 
Belle et indomptable_hp
Belle et indomptable_hpBelle et indomptable_hp
Belle et indomptable_hp
filipj2000
 
66046danylou 091201105144-phpapp01
66046danylou 091201105144-phpapp0166046danylou 091201105144-phpapp01
66046danylou 091201105144-phpapp01
filipj2000
 

En vedette (20)

Drupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteDrupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnante
 
Symfonytn
SymfonytnSymfonytn
Symfonytn
 
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec Symfony
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
 
FrenchWeb 500, le classement des entreprises de la tech française
FrenchWeb 500, le classement des entreprises de la tech françaiseFrenchWeb 500, le classement des entreprises de la tech française
FrenchWeb 500, le classement des entreprises de la tech française
 
Accompagnement des déficients visuels à la bibliothèque de Saint Lô
Accompagnement des déficients visuels à la bibliothèque de Saint LôAccompagnement des déficients visuels à la bibliothèque de Saint Lô
Accompagnement des déficients visuels à la bibliothèque de Saint Lô
 
20140608 tiempo-para-ver (1)
20140608 tiempo-para-ver (1)20140608 tiempo-para-ver (1)
20140608 tiempo-para-ver (1)
 
Monasteres
MonasteresMonasteres
Monasteres
 
Belle et indomptable_hp
Belle et indomptable_hpBelle et indomptable_hp
Belle et indomptable_hp
 
66046danylou 091201105144-phpapp01
66046danylou 091201105144-phpapp0166046danylou 091201105144-phpapp01
66046danylou 091201105144-phpapp01
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
Randall_D._Boni_un_bucheron_doue
Randall_D._Boni_un_bucheron_doueRandall_D._Boni_un_bucheron_doue
Randall_D._Boni_un_bucheron_doue
 
Lennin
LenninLennin
Lennin
 
Comment intégrer efficacement les media sociaux dans votre stratégie e-commer...
Comment intégrer efficacement les media sociaux dans votre stratégie e-commer...Comment intégrer efficacement les media sociaux dans votre stratégie e-commer...
Comment intégrer efficacement les media sociaux dans votre stratégie e-commer...
 
La bibliothèque émancipatrice : Bibliothèque et médiation numérique, créer du...
La bibliothèque émancipatrice : Bibliothèque et médiation numérique, créer du...La bibliothèque émancipatrice : Bibliothèque et médiation numérique, créer du...
La bibliothèque émancipatrice : Bibliothèque et médiation numérique, créer du...
 

Plus de th0masr

Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014
th0masr
 
sfDay Cologne - Sonata Admin Bundle
sfDay Cologne - Sonata Admin BundlesfDay Cologne - Sonata Admin Bundle
sfDay Cologne - Sonata Admin Bundle
th0masr
 
Small Talk about the Symfony2 Form Component
Small Talk about the Symfony2 Form ComponentSmall Talk about the Symfony2 Form Component
Small Talk about the Symfony2 Form Component
th0masr
 
Drupal & Symfony2
Drupal & Symfony2Drupal & Symfony2
Drupal & Symfony2
th0masr
 

Plus de th0masr (6)

Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014
 
sfDay Cologne - Sonata Admin Bundle
sfDay Cologne - Sonata Admin BundlesfDay Cologne - Sonata Admin Bundle
sfDay Cologne - Sonata Admin Bundle
 
Small Talk about the Symfony2 Form Component
Small Talk about the Symfony2 Form ComponentSmall Talk about the Symfony2 Form Component
Small Talk about the Symfony2 Form Component
 
Drupal & Symfony2
Drupal & Symfony2Drupal & Symfony2
Drupal & Symfony2
 
Integrating the Solr search engine
Integrating the Solr search engineIntegrating the Solr search engine
Integrating the Solr search engine
 
Internationalization with the symfony framework
Internationalization with the symfony frameworkInternationalization with the symfony framework
Internationalization with the symfony framework
 

Symfony Live ~ Génération de tests fonctionnels

  • 1. Génération de tests fonctionnels Titre présentation | Conférencier Thomas Rabaix contact : thomas.rabaix@soleoweb.com - www.soleoweb.com
  • 2. • Consultant via la société Soleoweb : expertise internet et spécialiste symfony. • Utilise symfony depuis 3 ans : – plugins : sfLucenePlugin : port vers Doctrine et sf1.2 (Zend et Solr), swDoctrineAssetsLibraryPlugin : Doctrine et sf1.2, swToolboxPlugin : divers outils sympa – mailing list, bug reports contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Thomas Rabaix – symfony 1.0 et Propel – symfony 1.1 et Propel / Doctrine – symfony 1.2 et Doctrine • Contributions Génération de tests fonctionnels Thomas Rabaix
  • 3. swToolboxPlugin - c’est quoi ? • un ensemble de class php qui peut être utile à vos projets symfony • un outil qui rajoute des fonctionnalités : – fil d’arianne – AJAX avec sfForm – sendMail ;-) – widgets : adresse avec google map, nested set doctrine, etc ... – lien entre application natif – et .... un générateur de tests fonctionnels contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Génération de tests fonctionnels Thomas Rabaix
  • 4. • “functional tests validate a process and require a scenario. In symfony, you should write functional tests for all your actions...” [1] • ... dans l’idéal, les tests sont écrits avant le code ... contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Les tests fonctionnels Génération de tests fonctionnels Thomas Rabaix
  • 5. – longs à écrire et pénibles car il faut connaitre les noms de tous les champs dans un formulaire – répétitifs, c’est souvent les mêmes lignes de codes qui reviennent – représentent des coups importants – permettent de tester une application web de manière automatique – permettent de prévenir les effets de bord lors de la maintenance ou lors de l’ajout de nouvelles fonctionnalités contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com ... dans la réalité • Inconvénients • Avantages Génération de tests fonctionnels Thomas Rabaix
  • 6. • Peut on faire disparaitre ces inconvenients ? • Comment ? en enregistrant un scénario qui utilise simplement l’application • A l’aide de quel outil ? le filtre swFilterFunctionalTest contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Inconvenients... vraiment ? Génération de tests fonctionnels Thomas Rabaix
  • 7. • Création d’une application de démonstration • Mini cahier des charges : – knowledge base application (swKnowledgeBase) • accès seulement aux personnes authentifiées • chaque entrée est rattachée à une catégorie • il est possible de lier des entrées entre elles en fonction de la catégorie (AJAX) • options simples de recherche – c’est tout ! vous avez une journée !!! • ... et en plus il faut des tests fonctionnels contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Démonstration par l’exemple Génération de tests fonctionnels Thomas Rabaix
  • 8. • Utilisation des plugins suivants : – sfDoctrineGuardPlugin : authentification – sfAdminDashPlugin : interface d’administration – swToolboxPlugin : contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com swKnowledgeBase • test fonctionnel • ajax Génération de tests fonctionnels Thomas Rabaix
  • 9. Activation • installer le package swToolboxPlugin – symfony plugin:install swToolboxPlugin – http://symfony-live.com/plugins/swToolboxPlugin • Editer le fichier filters.yml • Activer la bar de debug symfony contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Génération de tests fonctionnels Thomas Rabaix
  • 10. – Avec erreur – correction de l’erreur – Ajax pour lier une entrée avec d’autres entrées • Vérification : l’entrée doit être présente dans la liste • Click sur édition • Suppression de l’entrée contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Scénario • Authentification sur l’application • Rajout d’une entrée Génération de tests fonctionnels Thomas Rabaix
  • 11. Demonstration en video http://www.rabaix.net/en/2009/05/11/sflive-2009-paris contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Génération de tests fonctionnels Thomas Rabaix
  • 12. • l’objet sfBrowser permet d’accéder au “sfContext” – récupération de toutes les informations de symfony – récupération des variables définies dans l’action • L’outil de génération de test : – fonctionne seulement si la session en cours est dans le bon “état” (supression des cookies) – peut avoir des incohérences avec les paramètres dynamiques dans les urls comme les identifiants. – permet de tester les actions AJAX contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Quelques notes Génération de tests fonctionnels Thomas Rabaix
  • 13. • Application disponible en version sandbox – http://soleoweb.com/uploads/sw_kb_sandbox.zip – A regarder • la class swKbEntryForm : définition des champs et de l’ajax • doctrine.yml : définition du model de donnés • l’application frontend pour les options de liste • Demo en ligne disponible prochainement sur : contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com swKnowledgeBase - demo – http://kb.soleoweb.com Génération de tests fonctionnels Thomas Rabaix
  • 14. Questions ? ✓ la mailing-list symfony-users@googlegroups.com ✓ la prochaine application kb.soleoweb.com ;) ✓ articles sur http://rabaix.net contact : thomas.rabaix@soleoweb.com ‐ www.soleoweb.com Pour aller plus loin : Génération de tests fonctionnels Thomas Rabaix