8. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 7 2) Pourquoi réaliser des tests ? Lors de la création d’une nouvelle application ou d’un nouveau logiciel dans une compagnie, celle-ci ne peut se permettre de livrer un logiciel à un client sans vérifier le fonctionnement de celui- ci. On peut donc affirmer que « toute modification d’un programme engendrant une nouvelle livraison nécessite une phase de tests ». Bien qu’idéal, cette affirmation n’est pas toujours respectée. Certaines entreprises ayant des délais très courts et peu de ressources se passent de cette phase ou la réduise au maximum. Cependant, les grandes entreprises respectent bien souvent cette phase et effectuent différents types de tests. Il en va de même pour les évolutions sur une application déjà existante : chaque livraison doit être précédée de vérifications par l’entreprise. Le développement d’une application est toujours régi par des règles techniques et métier. Celles- ci doivent être respectées afin de satisfaire la demande du client. Il ne suffit donc pas de développer l’application en question sans se soucier du bon fonctionnement. Livrer un produit à destination d’un client final, avec de multiples erreurs, nuit à l’image de l’entreprise. 3) A quel moment réaliser ces tests ? Que la recette soit manuelle ou automatisée, il est donc nécessaire d’accorder du temps aux phases de recette, qui sont proportionnelles à l’ampleur des spécifications fonctionnelles. Cette phase doit être répétée avant chaque mise en production d’un produit. Il est nécessaire lors d’une livraison d’une évolution, de tester les nouvelles fonctionnalités, mais également les anciennes, appelées Tests de Non Régression.
Human-machine interfaces (HMI) or computer human interfaces (CHI), formerly known as man-machine interfaces, are usually employed to communicate with PLCs and other computers. Service personnel who monitor and control through HMIs can be called by different names. In industrial process and manufacturing environments, they are called operators or something similar. In boiler houses and central utilities departments they are called stationary engineers.[57]
10. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 9 Cette opération de préparation de planning pré-recette, permet de donner une date de fin de recette aux responsables. Parfois – et c’est le cas chez Groupama gan vie – la phase de recette est suivi d’une phase d’homologation. Cette phase se présente comme une phase de recette mais de façon bien plus synthétique : c’est la phase de pré-production. Il faut donc également prévoir dans les plannings cette phase ainsi que les réunions adéquates. La Moa se chargeant de la recette, c’est bien souvent des référents métiers qui se chargent de l’homologation. Ceux sont eux qui décident si oui ou non il est possible de mettre en production. Ce n’est en aucun cas la MOA qui donne le GO pour la mise en production. Le planning est donc un élément indispensable dans un projet pour toutes les ressources de celui-ci. 2) Jeux de données et base de données Qu’elle soit manuelle ou automatisée, la recette fonctionnelle nécessite dans tous les cas des données. Celles-ci sont utilisées pour effectuer des tests. Cela peut être des noms, des numéros de téléphone, des adresses…. Toutes ces informations doivent être préparées afin de ne pas perdre de temps durant la phase de test. Si une ou plusieurs informations venaient à manquer durant le cycle de recette, cela ralentirait le processus : il faut chercher les informations, les préparer et ré-exécuter les tests. C’est pourquoi il est idéal de fabriquer un fichier référence regroupant l’ensemble des données qui seront utilisées : - Pour une recette manuelle, les testeurs s’appuieront sur ce fichier pour préparer le cahier de test et si besoin pendant les tests en complément. - Pour une recette automatisée, c’est le logiciel utilisé qui aura pour point d’appui ce fichier. Il s’alimentera avec les informations contenues dans ce fichier, en fonction des paramètres fournis par les testeurs. De même, la phase de préparation nécessite avant tout une base de données pour les tests. Il faut donc créer la base en fonction des spécifications si elle n’existe pas. Dans le cas d’évolution sur une application existante, il faut s’assurer que la base a bien été modifiée en conséquence. Celle-ci doit également être soumise aux tests. 3) Le cahier de recette Avant de démarrer l’exécution de la recette – celle-ci ne se fait pas « à l’aveugle » - il faut rédiger un cahier de recette. J’ai eu l’occasion dans mon travail de rédiger plusieurs cahiers de tests et donc d’apprendre à le faire. En effet, ceux-ci se préparent en suivant les spécifications fonctionnelles rédigées après l’expression de besoin. Les spécifications fonctionnelles (détaillées ou générales) décrivent le fonctionnement de l’application, de ses modules ainsi que de ses interfaces. Elles répertorient alors la totalité des attentes du client détaillées sous formes de points à traiter. Le travail à réaliser est alors de prendre un à un les points énoncés et de préparer des scénarios de test. Un scénario, comporte de une à plusieurs manipulations à effectuer sur l’application.
The automation of vehicles could prove to have a substantial impact on the environment, although the nature of this impact could be beneficial or harmful depending on several factors. Because automated vehicles are much less likely to get into accidents compared to human-driven vehicles, some precautions built into current models (such as anti-lock brakes or laminated glass) would not be required for self-driving versions. Removing these safety features would also significantly reduce the weight of the vehicle, thus increasing fuel economy and reducing emissions per mile. Self-driving vehicles are also more precise with regard to acceleration and breaking, and this could contribute to reduced emissions. Self-driving cars could also potentially utilize fuel-efficient features such as route mapping that is able to calculate and take the most efficient routes. Despite this potential to reduce emissions, some researchers theorize that an increase of production of self-driving cars could lead to a boom of vehicle ownership and use. This boom could potentially negate any environmental benefits of self-driving cars if a large enough number of people begin driving personal vehicles more frequently.[53]
Actionaz est actuellement l'un des seuls logiciels d'automatisation libre et gratuit fonctionnant sur Windows et GNU/Linux vous permettant de créer des actions sans avoir à apprendre un langage de programmation. On peut considérer AutoIt ou AutoHotkey comme des équivalents, bien qu'il faille apprendre à programmer dans un langage propriétaire pour pouvoir les utiliser, au contraire d'Actionaz.
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.
WebDriver est basé sur un modèle client-serveur. Un client de test envoie des « commandes » via des requêtes HTTP à un serveur WebDriver après initialisation d’une session. Ce dernier distribue alors les commandes auprès des drivers des navigateurs concernés. Ces drivers exécutent les commandes sur les navigateurs en question via des mécanismes de communication interne – système d’exploitation ou JavaScript.
5. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 4 I. La phase de recette dans un projet Dans cette première partie, nous allons tout d’abord comprendre la notion de projet et ce qu’elle représente. Au sein de celui-ci, il est nécessaire de réaliser des tests mais pas à n’importe quel moment. C’est pourquoi, après avoir détaillé le système de projet et l’importance des tests, je développerai l’étape de préparation de recette et des plannings. Enfin, je détaillerai l’étape suivante qui est l’exécution de recette et les suivis d’avancements réalisés pendant cette phase. A. Pourquoi et à quel moment réaliser des tests ? 1) Les différentes méthodes de projet et les différents types de tests. Il existe plusieurs méthodes de gestion de projet et chacune sans exception possède une phase de tests. Elles ont bien évidemment des avantages et des inconvénients. Ayant pour expérience de travail la méthode linéaire, je développerai la suite de mon mémoire en me basant sur cette méthode. La méthode linéaire (ou « cycle en V ») : Cette méthode est classique en gestion de projet : c’est une succession de phases permettant d’aboutir au résultat final. Chaque phase ne chevauche pas sur la précédente ou la suivante : 1 – Source : http://www.ice-tech.fr/fr/p/domaines-interventions Cette méthode est assez rigoureuse est nécessite une organisation précise. Ses avantages sont : - Normalisation des étapes de développement - Rédaction de spécification pour les développements mais aussi pour les tests - Les tests sont effectués dans un environnement stable
L’utilisation des données issues des automates ainsi que les captures d’écrans permettent de réaliser des comparaisons et ainsi détecter des impacts impossibles à déceler avec des tests manuels. La comparaison des résultats des exécutions sur différent devices vous permet de certifier la portabilité de vos applications sur plusieurs systèmes. Un tel outil révolutionne la gestion du risque sur vos projets.
Des méthodes peuvent s'appliquer à ces sélecteurs, notamment send_keys (pour écrire du texte sur la balise sélectionnée, bien évidemment si ce n'est pas une balise type input ou contenteditable, cela n'écrira rien), ou encore click (pour cliquer sur la balise). Pour naviguer sur une page, la méthode .get(URL) suffira. Toutes ces méthodes et ces sélecteurs s'appliqueront au driver (donc à notre navigateur PhantomJS qui tourne en tâche de fond)
Each time you press F8 the line of code highlighted in yellow will execute, and then the next line down of code will turn yellow and wait for your key press. Say you change the code in a line and want to re-run it… you’d move the yellow line back up by dragging the yellow arrow with your mouse, or by clicking the line you want and then pressing CTRL+F9
Maintenant, il faut rédiger en français le déroulement de tous les cas de test et des suites de tests. (Exemple : charger la page, vérifier la présence des 4 liens vers les sous parties du sites ainsi que la présence et la validité des informations affichées dans la page...). Cela peut être le travail du responsable du projet ou des responsables qualités etc...
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.
Dans le chapitre « Comment réaliser le contrôle des flux ? »  : […] Une meilleure gestion des systèmes d'assainissement existants peut réduire les nuisances. Le pilotage plus ou moins automatisé, par temps de pluie, des réseaux de collecte et des installations de traitement est une solution intéressante. L'agglomération est alors considérée comme une unité complexe de production de flux d'eau et de pollution, les […] Lire la suite☛ http://www.universalis.fr/encyclopedie/hydrologie-urbaine/#i_2513
Qu’il s’agisse d’une petite tâche ou de quelque chose que peu de spécialistes du marketing veulent réaliser, vous êtes susceptible de rencontrer des centaines de scénarios comme celui-ci. C’est pourquoi Zennoposter est un outil incroyablement puissant. Vous pouvez l’utiliser pour automatiser des petites actions qui sont utiles et productives pour votre activité et pour lesquelles vous ne trouveriez pas de logiciel où alors à des prix prohibitifs.
Les exemples décrits ci-dessus sont relativement simples. Cependant les possibilités de paramétrages permettent des créer des objets types beaucoup plus complexes. Par exemple, TestComplete peut tester le nombre de nœuds enfants ainsi que leurs types, s’adaptant ainsi à la quasi-totalité des situations rencontrées lors de la création de tests fonctionnels.
The Defense Advanced Research Projects Agency (DARPA) started the research and development of automated visual surveillance and monitoring (VSAM) program, between 1997 and 1999, and airborne video surveillance (AVS) programs, from 1998 to 2002. Currently, there is a major effort underway in the vision community to develop a fully automated tracking surveillance system. Automated video surveillance monitors people and vehicles in real time within a busy environment. Existing automated surveillance systems are based on the environment they are primarily designed to observe, i.e., indoor, outdoor or airborne, the amount of sensors that the automated system can handle and the mobility of sensor, i.e., stationary camera vs. mobile camera. The purpose of a surveillance system is to record properties and trajectories of objects in a given area, generate warnings or notify designated authority in case of occurrence of particular events.[70]

TestPartner, anciennement produit de la société Compuware, est édité par Micro Focus, société basée à Newbury en Angleterre. Micro Focus a acquis en 2009 les activités de tests de Compuware. TestPartner propose d’automatiser les tests fonctionnels et permet également de définir des objets personnalisés. TestPartner peut gérer différents référentiels d’objets grâce à des bases de données telles que Oracle ou Microsoft SQL Server.

 Zalenium est une extension de Selenium Grid permettant la mise en place locale et dynamique de plateformes de tests en utilisant des conteneurs Docker. Elle utilise Docker Sélénium pour exécuter des tests automatiques sur Firefox et Chrome localement, et redirige vers un fournisseur de tests cloud (Sauce Labs, BrowserStack, TestingBot) lorsqu’un script doit être exécuté sur un navigateur différent


Une fois ces étapes réalisées, vous disposerez de la configuration de base afin de pouvoir commencer à travailler sur vos scripts. Voici ci-dessous où PhantomJS doit être localisé si vous travaillez sous Windows, ce screenshot vous montre également à quoi doit ressembler votre environnement de travail. On voit le dossier "selenium" installé donc tout est prêt.
×