13. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 12 II. Les outils de recettage Afin de réaliser la phase de recette, il faut bien évidemment s’appuyer sur des outils de tests. Il est possible – et c’est ce qui est pratiqué dans mon service – d’utiliser simplement le logiciel Excel pour réaliser les cahiers de recette. Cela permet d’effectuer les tests à la main. Cependant, il existe des outils adaptés à la réalisation de tests automatisés. A. Les logiciels de tests sur PC Il existe des logiciels pour effectuer des tests fonctionnels automatisés ; Ceux-ci se choisissent principalement en fonction du langage de programmation utilisé par l’application à tester, ainsi que par sa complexité, l’objectif à atteindre et le coût. 1) Sélénium Sélénium est un outil très utilisé pour automatiser les tests fonctionnels. [Annexe 4] Même s’il semble un peu compliqué d’apparence il est en réalité logique d’utilisation. Sélénium se décompose comme suit :  Selenium IDE : c'est une extension de Firefox, qui permet d'enregistrer une suite d'actions, qu'il sera possible de rejouer à volonté ;  Selenium Web Driver : il s'agit cette fois d'une API, disponible pour plusieurs langages, permettant de programmer des actions sur l'interface, et à vérifier les réponses. Les actions à réaliser peuvent être exportées depuis Selenium IDE. 2) Quicktest Professional QTPro, de HP, représente ce jour l’offre phare dans le monde professionnel. Le référentiel d’objets est particulièrement bien conçu, celui-ci pouvant notamment être généré lors de l’enregistrement, enrichi manuellement ou encore importé à partir d’un autre scénario. Paradoxalement, le produit souffre principalement de sa complétude, difficile à prendre en main pour un débutant. De plus, le coût de la licence est assez élevé par rapport aux autres offres du marché.

Les variables sont des caractères génériques que vous pouvez créer et utiliser pour stocker des valeurs. Par exemple, vous pourriez créer la variable « WebsiteName », demander à Zennoposter de lire le nom du site Web que vous aimeriez utiliser à partir d’un fichier stocké sur votre ordinateur, le sauvegarder dans la variable « NomDuSite », puis utiliser cette variable pour insérer le nom du site au lieu de « monndd » par exemple. Vous pouvez voir que cela serait particulièrement utile lorsque vous voulez que le bot crée un nouveau nom de site Web pour chaque enregistrement qu’il fait.
11. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 10 Il faut évidemment tester les scénarios « passants » : quels sont les résultats attendus pour une utilisation correcte ? Mais il faut également tester les scénarios non passants – aussi appelés « bloquants » : que se passe-t-il si je provoque une erreur ? La réponse à cette question est définie entre le client, la maitrise d’ouvrage et la maitrise d’œuvre. Il faut définir ce que le client attend et ce qui est réalisable, c’est la maitrise d’ouvrage qui effectue le lien entre les deux parties. Créer un scénario pour tester une fonctionnalité nécessite d’envisager une multitude de tests différents. Prenons l’exemple d’un champ de saisie à l’écran : si celui-ci attends un numéro de téléphone, il faut tester l’écriture d’un numéro de téléphone à 10 chiffres et vérifier que cela ne provoque pas d’erreur. Il faut également tester l’écriture de caractères (voire caractères spéciaux) pour provoquer une erreur. Mais aussi : un mix entre chiffre et lettres, un champ vide (ce champ est- il obligatoire ou facultatif ?), la taille du champ (celui-ci est-il limité ?)… Tous ces scénarios sont écris uniquement sur une seule et même «fonction » : celle du champ « numéro de téléphone ». Il y a donc environ 6 tests pour celui-ci, tout en sachant que l’on peut en faire 1, 2 ou plus, en fonction du temps imparti et de la pertinence des scénarios. Cet exemple basique prouve qu’il existe alors une quantité importante de tests pour une application. De nos jours, chaque logiciel ou applications possède plusieurs interfaces, composées elle-même de plusieurs fonctionnalités, boutons et autres actions. Ces actions peuvent être très simple comme l’exemple précédent ou bien plus compliquées : on peut imaginer des affichages de données en fonction de critères choisis, mais encore des envois de mails automatiques à des adresses différentes en fonction d’une maille entité / produit / objet. C. L’exécution de recette et les suivis d’avancement. Un cahier de recette correctement rédigé et précis, facilite grandement le travail à effectuer sans oublier de tests « évidents ». Cela permet également un suivi du travail effectué ou non, en cours, validé ou non. Ce cahier permet aussi de répertorier les problèmes rencontrés. En effet, le but étant de corriger les anomalies découvertes, il est ainsi très pratique de savoir pour chaque scénario ce qui pose problème. Lorsqu’un bogue est découvert, nous procédons comme suit : - Définir si le bogue est reproductible o Si oui, alors il est assez simple de définir la manipulation effectuée. o Si non, cela peut être dû à un problème qui n’est pas lié au développement, mais d’éléments externes (exemple : mauvaise connexion internet). Cela peut être également un problème « aléatoire ». Dans ce dernier cas, il est difficile de les résoudre. - Définir le périmètre du bogue : entité, écran, utilisateurs particuliers, etc. - Rapporter le bogue aux développeurs et le rapporter dans le cahier de tests. Pendant que l’anomalie est en cours d’analyse et de correction chez l’équipe de développement, la maitrise d’ouvrage peut poursuivre les autres tests. Lorsque le bogue est corrigé, un patch est alors appliqué et il est possible de tester à nouveau le scénario bloquant. Ce schéma est répété jusqu’à ce que le scénario soit complètement validé.
Wildfire est un outil gratuit, disponible en extension Chrome et Firefox. Le principe est simple : vous lancez l’enregistrement, vous effectuez des actions sur le web, vous arrêtez l’enregistrement. Quand vous le souhaitez, vous pouvez cliquer sur « Play » pour que les actions enregistrées soient effectuées. Vous pouvez même planifier l’exécution d’un workflow précédemment enregistré. C’est magique.

Gratuit et orienté purement vers les applicatifs sur le net, l’automate de test Selenium permet de travailler sur les langages les plus répandus pour la programmation web tels que C#, JAVA, Perl, PHP, Python ou Ruby. Sa simplicité d’utilisation pour l’enregistrement de tests et son efficacité pour les tests multinavigateurs font de lui un outil ultra productif pour automatiser les tests. Aujourd’hui, les principaux éditeurs de navigation web l’intègrent de façon native afin de faciliter les tests sur leurs platesformes. 

PhantomJS va nous servir de "Web-Driver" et cela sera là son unique utilité. De quoi s'agit-il ? Afin que Python puisse interagir avec le navigateur Web (Chrome, Firefox ou autres), de la même manière que la communication avec une base de données, il nous faut un driver (pilote). C'est là qu'intervient le Web Driver, il permet la communication entre le navigateur Web et notre script Python. De base, Selenium peut utiliser différents drivers pour différents navigateurs (Chrome, Firefox, Opéra) mais ce qui nous intéresse, ce n'est pas d'ouvrir un navigateur mais d'avoir un navigateur headless (sans interface graphique, uniquement en ligne de commandes). C'est là qu'intervient PhantomJS, qui fournit lui-même son Web Driver. L'utilité c'est donc la rapidité d'exécution par rapport aux navigateurs classiques.
×