23. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 22 Glossaire Anomalies : Absence de conformité entre un comportement applicatifs attendu et un comportement obtenu en phase de test. Campagne de test : ensemble de cas de test à exécuter sur une partie de l’application. MOA : Maitrise d’ouvrage, correspond à l’ensemble des personnes définissant les besoins devant être satisfait par une application. MOE : Maitrise d’œuvre, correspond à l’ensemble des personnes en charge de la réalisation d’un composant ou d’un système. Open-Source : désigne un logiciel dans lequel le code source est à la disposition du grand public. Test de Turing : Ce test consiste à mettre en confrontation verbale un humain avec un ordinateur et un autre humain à l’aveugle.
La première des étapes afin de pouvoir automatiser votre navigateur Web est l'installation de l'ennvironnement Python. Pour cela, rendez-vous sur le site https://www.python.org/downloads/ Deux versions seront au choix : la 3.5.2 et la 2.7.12. Celle qui sera utilisée dans l'exemple en dernière partie sera la version 3.5.2 (la plus récente donc). Une fois le téléchargement fini, procéder à l'installation qui prendra quelques temps en n'oubliant pas de cocher l'option au préalable "Add Python x.x TO PATH" (très important afin que l'interpréteur Python soit disponible dans une variable d'environnement). Dans le cas d'un système d'exploitation Windows, je conseille fortement d'installer Python à la racine de votre disque dur (C:/Python...). Sous MAC OS X, un simple "brew install Python" vous permettra d'installer l'environnement Python.
Une autre fonctionnalité phare de Selenium et l’automatisation de tests fonctionnels grâce à Selenium Webdriver, anciennement Selenium Remote Control. En effet, cet outil est un serveur java qu’il est possible d’installer en local ou sur un serveur d’intégration, va permettre de démarrer virtuellement un navigateur et d'interpréter des scripts en langage Selenese (langage de programmation Selenium) afin d’interagir avec le navigateur. Par ailleurs, il est possible de le paramétrer finement de façon à lancer les tests sur plusieurs navigateurs à la fois. PHPUnit et Codeception proposent un plugin permettant d’interfacer Selenium Webdriver dans leur interface. De cette façon, la gestion des tests s’effectue au même emplacement. Néanmoins, l’utilisation de Selenium Webdriver nécessite l’installation de dépendances dédiés au java, la configuration ainsi que la prise en main est plutôt longue et difficile. Dans ce contexte là, il faut s'assurer que mettre en place une telle solution puisse être amortie.
Les logiciels de tests fonctionnels cherchent à reproduire le comportement d’un utilisateur lors de l’utilisation d’une application. L’outil doit donc reconnaître les actions et évènements déclenchés sur les différents éléments de l’interface. La reconnaissance des objets est ainsi importante car si l’outil arrive à reconnaître un objet en utilisant ses caractéristiques et non pas par ses coordonnées à l’écran, le test sera de meilleure qualité et pourra être réutilisé même en cas d’une réorganisation des objets à l’écran.
Avec Docker, le kernel est en mesure de partager les ressources de l’hôte et d’interagir avec les différents containers. Ainsi on comprend que Docker ne fonctionne pas comme une Virtual Machine mais permet d’offrir un environnement de travail virtuel. On parle alors de virtualisation légère pour Docker. Qui plus est, puisque le conteneur n’a pas besoin de faire tourner son propre système, il est moins gourmand en mémoire, plus facile à migrer et plus rapide à sauvegarder.
L’automatisation du test logiciel n’est ni aussi simple ni aussi rapide que semble l’indiquer cette appellation. Les outils de test logiciel peuvent s’avérer coûteux, tandis que la configuration, l’exécution et l’analyse des résultats de test exigent un effort manuel important. Toutefois, par l’usage d’outils adéquats, notamment de logiciels en Open source, et de processus et frameworks d’automatisation appropriés, les entreprises sont en mesure de réaliser des économies de coûts et de bénéficier de la qualité du test logiciel automatisé.
Contrairement à ses prédécesseurs, WebDriver offre la possibilité d'exécuter des tests sur des navigateurs avec des événements "natifs" (native events VS synthetic events) tel qu'un utilisateur final le ferait. Autrement dit, plus d'injection JavaScript comme auparavant c'est désormais le système d'exploitation qui déclenche les événements du navigateur via un driver. Même si dans la pratique, cela n'est pas toujours vrai, beaucoup de drivers injectent encore du JS... En effet, Firefox sous Linux ne supporte pas nécessairement les événements natifs selon le gestionnaire de fenêtres utilisé. Et ça n'est pas encore implémenté pour MAC OS.
Nous avons conçu un framework composite (voir ci-dessous), associant les meilleurs éléments des deux approches –déterminée par mots clés et pilotée par les données. Il assure le stockage des données de test indépendamment de l’outil d’automatisation (en général, dans une feuille Excel), ce qui permet de maintenir et réutiliser les scripts très facilement.
IFTTT est  la référence des outils permettant d’automatiser ses actions sur le web. Mais il n’a pas le monopole : Zapier constitue une alternative efficace. Si vous avez l’habitude d’utiliser IFTTT, vous ne serez pas perdu, car les interfaces sont similaires. Zapier fonctionne de la même manière : vous choisissez un déclencheur et l’action à effectuer lorsque le trigger est activé. Les recettes peuvent être partagées et vous pouvez parcourir celles créées par la communauté. Les services supportés sont très nombreux. Certains sont payants, mais ce ne sont pas les plus utilisés au quotidien : Evernote Business, HubSpot, MySQL, PayPal… Les comptes gratuits sont limités, contrairement à IFTTT : 100 tâches par mois, 5 recettes au maximum et un checking des déclencheurs toutes les 15 minutes uniquement. 

Au Japon, les moissonneuses-batteuses et les repiqueuses de riz de Kubota ont contribué à l’automatisation du repiquage et de la récolte du riz, processus avec la plus forte intensité de main-d’œuvre en riziculture. Les coûts de main-d’œuvre sont ainsi réduits et le rendement augmenté. La culture du riz en Asie s’automatisant rapidement, Kubota se sert de ses technologies d’équipements de riziculture raffinées afin de concevoir des solutions pour une clientèle à l’extérieur du Japon. Kubota fabrique des moissonneuses-batteuses et des repiqueuses de riz depuis plus de 50 ans. En tant que spécialiste du domaine, Kubota propose des technologies fiables qui appuient autant de fermiers que possible afin de produire ne serait-ce qu’un seul grain de riz de plus.

Pourquoi dans ce cas utiliser Squash TA ? Tout simplement car ces automates se limitent à interagir avec l'application à tester en simulant des actions IHM (application webs) ou en appelant des services (webservices). Or, cela ne suffit pas pour garantir que le test automatisé sera reproductible. Squash TA propose donc de compléter ces tests avec des fonctionnalités diverses permettant par exemple de gérer les jeux de données et de faire des vérifications complémentaires à l'issue des tests. Des exemples de fonctionnalités sont présentés ci-dessus.
Par exemple, selon les spécifications, si l’utilisateur rentre un identifiant ou un mot de passe erroné, il est renvoyé sur l’écran d’authentification et un message d’erreur est affiché. Le test consistera donc à contrôler que c’est effectivement le cas, et que le bon message est affiché à l’écran.Pour une explication détaillée de ce que chacun d'entre eux peut faire, consultez le guide de Podio.
Contrairement à IFTTT, Zapier ou Microsoft Flow qui peuvent être utilisés pour (presque) tout type d’activité, Wappwolf, lui, est spécialisé dans l’archivage de données numériques. Il permet d’automatiser des tâches sur Dropbox et GoogleDrive et ainsi par exemple de convertir automatiquement les fichiers déposés dans un format prédéfini, de les imprimer via Google Cloud Print ou de les envoyer vers un autre cloud. Autres caractéristiques : Wappwolf donne la possibilité à ses utilisateurs de faire du traitement d’images et de convertir des fichiers audio.
On le répète souvent : l’automatisation des tests de non régression est un enjeu stratégique pour les entreprises. Et dans un contexte où les délais et les coûts de développement des applicatifs sont très serrés, les tests manuels ont de moins en moins de place. D’autant plus qu’un automate est capable de refaire des tests pré-enregistrés et prédéfinis, de comparer les résultats avec les comportements attendus et de signaler le succès ou l’échec des tests. Une fois créés, les tests automatisés peuvent être facilement rejoués. Ils peuvent également être étendus afin d’exécuter des tâches impossibles à effectuer avec un test manuel.
Another major shift in automation is the increased demand for flexibility and convertibility in manufacturing processes. Manufacturers are increasingly demanding the ability to easily switch from manufacturing Product A to manufacturing Product B without having to completely rebuild the production lines. Flexibility and distributed processes have led to the introduction of Automated Guided Vehicles with Natural Features Navigation.
×