Module CMS Portail Jeunes Séniors - Club utilisateurs des solutions
Transcription
Module CMS Portail Jeunes Séniors - Club utilisateurs des solutions
PHILIPPE DE OLIVEIRA Automatisation Des Tests D’Interface WHO AM I ? PHILIPPE DE OLIVEIRA Directeur Technique 01 41 40 59 17 [email protected] Expertise Technique Architecture Audits Resp. Direction Technique Qualité des livrables Expertise Smile Veille technologique Industrialisation Capitalisation 2 SOMMAIRE 1 SMILE 5 2 LET’S TEST ! 6 TOUT AUTOMATIQUE 3 DEMO 1 4 AUTOMATISATION DES TESTS 7 CONCLUSION DEMO 2 3 1 – SMILE ! 4 SMILE IN A FEW FIGURES Leading European open source integrator 700 25% EXPERTS PER YEAR OPEN SOURCE More than 20 INCREASE IN TURNOVER YEARS EXPERIENCE IN OPEN SOURCE More than 35 PARTNERS IN OPEN SOURCE More than 50 MILLION EUROS IN TURNOVER IN 2013 5 18 OFFICES IN 8 COUNTRIES Smile is increasing its presence throughout Europe 6 OPEN SOURCE : TECHNOLOGY OF THE FUTURE INNOVATIVE POPULAR Experts in cutting edge technologies such as More than Cloud, Big data An ROI SAVING OF UP TO 65% 92% large companies use open source $ SAFE & SECURE Jahia is used for leading e-com/corp sites Linux motorises all global stock markets MATURE & STABLE Twitter, Facebook, Google are based on open source open source SMILE IS THE LEADING EUROPEAN OPEN SOURCE INTEGRATOR SMILE IS THE BIGGEST OPEN SOURCE PLAYER IN EUROPE 700 employees, 17 offices, 300 new projects per year MULTI-TECHNOLOGIES, A UNIQUE EXPERTISE More than 35 technological partnerships, the highest level of recognition for most 8 SMILE, MUCH MORE THAN A SIMPLE INTEGRATOR AMBASSADOR • Member of APRIL and PLOSS associations in France • Organiser, sponsor and participant of over 10 major events each year: Open World Forum, CMSday, Salon Linux Solutions… CONTRIBUTOR Dozens of extensions and contributions given for TYPO3, OpenERP, eZ Publish, Redmine, Magento, Drupal, jQuery, Ginco, Play! Framework… • 30 seminars and webinars each year • Articles and white papers regularily published. Over 100 000 downloads per year EDITOR OF ESIGate, TEA, Mongogento… • Creator and host of : open- source-guide.com 9 OUR EXPERTISE AND OUR BELIEFS ARE DETAILED IN OUR WHITE PAPERS Web Culture System E-business ERP et Business Intelligence Content Management and DMS OVER 100 000 DOWNLOADS PER YEAR 10 OUR REFERENCES 63% OF CAC 40 COMPANIES HAVE TRUSTED US 11 WHAT DO WE DO FOR YOU ? CONSULTING Project Framework / Audits / Benchmark HOSTING Hosting / Corrective and upgrade Maintenance / Support TRAINING Change management Intra and inter company training A 360° SERVICE FOR YOUR PROJECTS DIGITAL Visual identity/ Ergonomics Accessibility / Editorial Strategy / SEO ENGINEERING Conception / Development / Configuration 12 5 OFFERS FOR YOUR BUSINESS WEB Internet sites/Web portals Mobile and responsive design Management of cross-media content Digital devices WEB 13 5 OFFERS FOR YOUR BUSINESS WEB E-BUSINESS Catalogues E-commerce platforms Extranet client B2B Cross channel selling and multiple devise customer experience E-BUSINESS 14 5 OFFERS FOR YOUR BUSINESS WEB E-BUSINESS COLLABORATIVE Intranet Portals Enterprise Content Management Digital Asset Management Corporate Social Network Research COLLABORATIVE 15 5 OFFERS FOR YOUR BUSINESS WEB E-BUSINESS COLLABORATIVE BUSINESS INFORMATION SYSTEMS Data Integration Business Intelligence ERP Customer Relationship Management Big Data Management BUSINESS INFORMATION SYSTEMS 16 5 OFFERS FOR YOUR BUSINESS WEB E-BUSINESS COLLABORATIVE BUSINESS INFORMATION SYSTEMS INFRASTRUCTURE IT Asset Management Helpdesk Supervision Virtualization / Private Cloud Identity management Messaging INFRASTRUCTURE 17 2 – LET’S TEST ! 18 CONCEPTS Test Ensemble d’actions permettant de valider un point précis En général, plusieurs actions + une vérification Le résultat est un OK ou KO (booléen) Suite de tests Regroupe un ensemble de tests Représentatif d’un context fonctionnel donné (workflow de publication, tunnel de vente, 19 POSITIONNEMENT DES TESTS D’INTERFACE 20 POSITIONNEMENT DES TESTS D’INTERFACE 21 PORTÉE DES TESTS D’INTERFACE 22 PROBLEMATIQUES TESTS FONCTIONNELS Pour adopter le point de vue de l’utilisateur, il faut un navigateur ! Cela implique des tests manuels Lenteur du processus Coût prohibitif pour rejouer tous les tests Risque de regression Reproduction peu fiable des tests Pas d’historique précis des tests 23 SELENIUM Selenium regroupe différents produits Open Source (Apache 2.0) et gratuits (Donate ;-)) : Selenium IDE Enregistre des scénarios de test depuis Firefox Rejoue des scénarios enregistrés Selenium Server Serveur distant de manipulation de navigateur Selenium WebDriver API pour le développement de scénarios dans différents langages : Java, C#, Python, Ruby, PHP, Perl, JS Connexion et pilotage de Selenium Server 24 SELENIUM - COÛTS Sur un projet significatif (> plusieurs centaines de jours) Les tests durent longtemps (la durée d’affichage cumulée !) Un seul peut s’exécuter à la fois Un serveur dédié doit être déployé Charges usuelles Un coût d’initialisation dérisoire (à partir d’une VM déjà configurée) 10% du temps de développement pour obtenir un code coverage de 70% avec les tests d’interface o Données de test des TU réutilisées o Masse de code inférieure et par nature isolée Coût de possession 2x plus élevé pour les TI TMA plus coûteuse Le TCO étant très élevé, on vise une couverture des fonctionnalités critiques pour trouver un ROI satisfaisant 25 SELENIUM – CONCEPTS Fonctionnement Prend le contrôle du navigateur Réalise exactement les mêmes actions qu’un humain (clic, saisie, etc.) 3 types d’opérations réalisées par Selenium Actions : réalise une action dans le navigateur Accessors : accède au contenu affiché par le navigateur Assertions : vérifie une condition particulière sur un contenu 26 SELENIUM – CONCEPTS Pour cibler un élément de contenu, Selenium offre des Locators Par ID : btnAddToCart Par XPath : //input[name=‘myButton42’] Par son texte (pour les liens) : link=Logout Par une expression JavaScript DOM : document.images[42] Attention à ne pas introduire de couplage trop fort !!! Très mauvais exemple : //div/div/form/input[4] 27 DEMO Selenium IDE SELENIUM – LIMITATIONS DE SELENIUM IDE Commandes Selenium IDE assez simplistes. C’est tout de même suffisant pour la vaste majorité des cas. Limité à Firefox, aïe… Aujourd’hui il faut être compatible Firefox, Chrome, Safari et Internet Explorer Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation o Complexité de test illimitée o Intégration aux frameworks de tests (JUnit, PHPUnit, TestNG, etc.) o Intégration au cycle de vie projet (versionning, livraison, etc.) Possibilité d’exporter les scénarios de Selenium IDE en code Lancement des tests sur un ou plusieurs navigateurs ! 29 SELENIUM REMOTE – ARCHITECTURE 30 DEMO Selenium WebDriver + Server AUTOMATISATION DES TESTS 32 AUTOMATISATION DES TESTS - OBJECTIFS Facilite l’execution des tests (tâche automatique) Réduit le delta entre création et détection de bug, et donc la durée de diagnostique Permet à quelqu’un de non-technique de Correction Test Diagnostic lancer les tests (mode “push-button”) Garantie l’invariabilité et l’exhaustivité des tests au cours du temps Permet à l’humain de n’intervenir là il y a de la valeur-ajoutée Création de nouveaux tests Diagnostics en cas d’erreurs 33 AUTOMATISATION DES TESTS - PIC Les plateformes d’intégrations continue (PIC) Récupération de la dernière version des sources Build du projet Relance l’ensemble des tests (si au moins une modification a eu lieu) Envoi (mail, jabber, SMS, etc.) d’un rapport en cas de test en erreur : o Dernière modification effectuée o Test(s) en erreur o Auteur de la modification… PIC Open Source Jenkins / CruiseControl / Continuum 34 AUTOMATISATION DES TESTS - JENKINS Jenkins résulte d’un fork de Hudson (Oracle) suite à une petite dispute ;-) La communauté est énorme (>500 contributeurs) Eco-système de plugins très riche (>1000 plugins) o Support de beaucoup de technologies (Java, Ruby, PHP, etc.) o Gamification o Thèmes / UI o Tâches complexes o Etc. Système de build distribué très performant 35 AUTOMATISATION DES TESTS - JENKINS 36 SUR LA ROUTE DU TOUT AUTOMATIQUE 37 SUR LA ROUTE DU TOUT AUTOMATIQUE Pour résumer, on peut avoir : Des tests unitaires couvrant 70% du code Des tests d’interface pour s’assurer des fonctionnalités critiques Un lancement de tous ces tests dès qu’une modification du source est effectuée Mais pourquoi pas ne pas livrer directement en (pre-)prod ? Continous Delivery ! Grâce à des outils de déploiement reliés au PIC, on peut boucler un cycle complet : Dev Commit Build T* Livrable Deploiement 38 GO BY THOUGHWORKS 39 SUR LA ROUTE DU TOUT AUTOMATIQUE Automatisations encore peu répandues : Des tests d’intrusion et de sécurité o Zed Attack Proxy Des tests de charge à mesure différentielle o Gatling ou JMeter 40 CONCLUSION 41 CONCLUSION Tests d’interface automatisés Simplification de la recette Exhaustivité de la recette Non-regression de la recette Création d’un patrimoine de tests à forte valeur ajoutée Déploiement serein et fiable !! Selenium Automatisation rapide d’un scénario pour le rejouer plusieurs fois Intégration des tests d’interface au cycle de vie projet Intégration aux outils de build et donc aux PIC Attention à la qualité des tests d’interface, la rigueur requise est à la mesure du gain obtenu 42 ET DEMAIN ? Nous sommes dans une bascule technologique assez forte dans le Web Les traitements sont déportés sur le client grâce entre autre à l’avènement des technologies JavaScript Angular Backbone Amber On bascule vers des Single Page Application (SPA), portables sur les mobiles, avec une complexité d’interface telle que les tests d’interface deviennent essentiels pour ne pas décevoir les utilisateurs 43 QUESTIONS ? 44