2. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 1 Table des matières Introduction............................................................................................................................................. 3 I. La phase de recette dans un projet................................................................................................. 4 A. Pourquoi et à quel moment réaliser des tests ? ......................................................................... 4 1) Les différentes méthodes de projet et les différents types de tests. ..................................... 4 2) Pourquoi réaliser des tests ? ................................................................................................... 7 3) A quel moment réaliser ces tests ? ......................................................................................... 7 B. La préparation de recette et les plannings.................................................................................. 8 1) Planning et plan de tests ......................................................................................................... 8 2) Jeux de données et base de données...................................................................................... 9 3) Le cahier de recette................................................................................................................. 9 C. L’exécution de recette et les suivis d’avancement. .................................................................. 10 II. Les outils de recettage................................................................................................................... 12 A. Les logiciels de tests sur PC ....................................................................................................... 12 1) Sélénium................................................................................................................................ 12 2) Quicktest Professional........................................................................................................... 12 3) QAWizard .............................................................................................................................. 13 B. Les logiciels de tests sur mobile ................................................................................................ 13 1) Des tests spécifiques aux mobiles......................................................................................... 13 2) Les outils à disposition : payants........................................................................................... 14 3) Les outils à disposition : gratuits ........................................................................................... 14 C. Les logiciels de suivi d’anomalie................................................................................................ 15 1) Un logiciel open source : MantisBT....................................................................................... 15 2) Des concurrents à MantisBT.................................................................................................. 16 III. Peut-on envisager une totale automatisation des tests ?......................................................... 17 A. Les avantages de l’automatisation............................................................................................ 17 B. Les inconvénients...................................................................................................................... 18 C. La reconnaissance des formes : les CAPTCHA........................................................................... 19 Conclusion ............................................................................................................................................. 21 Annexes................................................................................................................................................. 24

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.
Dans le chapitre « Automatisation »  : […] utilisés pour les bouées, qui par définition doivent fonctionner sans surveillance. L'automatisation à grande échelle, qui réduit considérablement les coûts de fonctionnement, vit le jour après l'apparition des équipements et des technologies électriques et la disparition des signaux de brume à air comprimé. On conçoit désormais des feux non […] Lire la suite☛ http://www.universalis.fr/encyclopedie/phares/#i_2513
Cependant, la définition des tests automatisés pour les applications web peut être difficile parce que l'interface utilisateur de votre application peut changer régulièrement, en raison d'incompatibilités entre les navigateurs et parce que vous avez généralement besoin d'appuyer diverses plates-formes de serveur ou client. Les outils suivants permettent d’écrire et exécuter facilement des tests automatisés pour les applications web.
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.
I’m not a programmer by trade. Just a short while back, I knew nothing about it. But with a few VBA beginner courses, help from quick-answer sites like stackoverflow.com, and a willingness to learn, anyone can code. Now VBA is a fun hobby and I’ve helped lots of people automate daily tasks and turn small projects into big ones with bots over the past 6 years.
Dans le chapitre « Automatisation des moyens photomécaniques »  : […] Les tables de prise de vue image par image assistées par ordinateur sont aujourd'hui d'un usage courant. C'est pourtant pour des recherches esthétiques particulières que John Withney avait, dans les années quarante, construit autour d'un ordinateur militaire son Cam System (Film Exercice, 1943-1944 ; Catalog, 1961), afin d' […] Lire la suite☛ http://www.universalis.fr/encyclopedie/cinema-cinemas-paralleles-le-cinema-d-animation/#i_2513 

6. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 5 L’inconvénient majeur de cette méthode est que le résultat est dépendant du travail effectué en amont. C’est-à-dire la validation et la vérification des documents de chaque phase précédente. Cela peut entrainer des détections d’erreurs jusqu’à la fin du développement. La méthode Agile Cette méthode est de plus en plus répandue de nos jours car elle possède des avantages non négligeables. Elle s’organise de la manière suivante : c’est une réalisation itérative qui permet d’éviter l’effet tunnel. Le produit est adapté au besoin du client plus rapidement. Le code est mis à jour à chaque itération. 2 - Source : http://www.ntiercustomsolutions.com/training-courses/agile-software-development/ Deux pratiques essentielles constituent cette méthode : - La réalisation des tests dits exploratoires, consistant à tester les nouvelles fonctionnalités mis en place lors de la dernière livraison - L’exécution des tests couvrant systématiquement les fonctionnalités définies et garantissant en permanence le contrôle de conformité aux besoins métiers. Cette façon de travailler permet de répartir de manière plus efficace la charge de travail. Le cycle en V possède une phase de test en « dent de scie » tandis que la méthode Agile axée sur le principe de l’itération, permet d’avoir une charge constante donc optimale.
Aujourd’hui je vous propose de réaliser une petite application qui va se connecter à un site et qui va aller télécharger un fichier. Le meilleur dans l’histoire c’est que tout cela va se faire automatiquement sans que vous ayez à lever le petit doigt. De la magie ? Non, nous devons cela à la gem Mechanize que je vais vous présenter sans plus attendre.
Êtes-vous peut-être l'une de ces personnes qui passent trop de temps sur le travail de routine, ou peut-être que vous avez beaucoup d'idées en tête, mais que vous n'avez tout simplement pas le temps de les réaliser toutes ? Vous êtes peut-être l'un de ceux qui sont trop occupés pour étudier la programmation, mais qui souhaitent tout systématiser. Oui ? Eh bien, vous n'avez pas vraiment besoin de dépenser votre argent durement gagné pour des programmeurs et des pigistes. Avec ZennoPoster, c'est absolument possible ! Mais comment ?

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.


Automation is the technology by which a process or procedure is performed with minimum human assistance.[1] Automation [2] or automatic control is the use of various control systems for operating equipment such as machinery, processes in factories, boilers and heat treating ovens, switching on telephone networks, steering and stabilization of ships, aircraft and other applications and vehicles with minimal or reduced human intervention. Some processes have been completely automated.
La première conséquence est donc évidente. Il y’a beaucoup de bogues à rechercher et à remonter au développeur pendant la phase de recette avant la publication au client. Le développeur devra ensuite analyser et corriger tous les bogues remontés, et les fonctionnalités incriminées devront encore être re-testé afin de s’assurer que les bogues ne sont plus présent.

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.
Dans le chapitre « Bref historique »  : […] Depuis le début des années 1980, on est entré dans une phase d'industrialisation, avec des systèmes moins ambitieux mais plus aboutis. L'accent est mis moins sur la formalisation des processus de calcul (de plus en plus assimilés à des boîtes noires) que sur leur rapidité et sur la constitution de ressources linguistiques à grande échelle ( […] Lire la suite☛ http://www.universalis.fr/encyclopedie/traitement-automatique-des-langues/#i_2513
Les serveurs, ils tournent sur une machine liée ou non au projet. Ils sont plus performants, ne bloquent pas l’utilisateur et peuvent s’intégrer dans un workflow de développement (Ex : Selenium webdriver, IBM rational functional tester, …). Les actions sont les différentes commandes qui seront jouées dans un test. Cela va du clic, à la gestion de variable, à la vérification d’attribut.
Ce logiciel dispose également d'une interface visuelle de glisser-déposer facile à utiliser. Il a même son propre enregistrement automatisé de modèles de zennoposter, basé sur les opérations de l'utilisateur. Il suffit d'un minimum d'efforts pour automatiser votre travail. Tout ce que vous avez à faire est de visiter le site officiel, de cliquer sur ce que vous désirez et ensuite vous pouvez réviser les étapes. Très simple et facile, n'est-ce pas ? Ces modèles prennent même en charge les branches logiques qui permettent de générer des solutions flexibles. Que demander de plus ?
Solenoid valves are widely used on compressed air or hydraulic fluid for powering actuators on mechanical components. While motors are used to supply continuous rotary motion, actuators are typically a better choice for intermittently creating a limited range of movement for a mechanical component, such as moving various mechanical arms, opening or closing valves, raising heavy press rolls, applying pressure to presses.
Automation of homes and home appliances is also thought to impact the environment, but the benefits of these features are also questioned. A study of energy consumption of automated homes in Finland showed that smart homes could reduce energy consumption by monitoring levels of consumption in different areas of the home and adjusting consumption to reduce energy leaks (such as automatically reducing consumption during the nighttime when activity is low). This study, along with others, indicated that the smart home’s ability to monitor and adjust consumption levels would reduce unnecessary energy usage. However, new research suggests that smart homes might not be as efficient as non-automated homes. A more recent study has indicated that, while monitoring and adjusting consumption levels does decrease unnecessary energy use, this process requires monitoring systems that also consume a significant amount of energy. This study suggested that the energy required to run these systems is so much so that it negates any benefits of the systems themselves, resulting in little to no ecological benefit.[54]

24. HITEMA – Groupama Gan Vie L’automatisation des tests fonctionnels SIMON Emeline 23 Bibliographie / Webographie https://fr.wikipedia.org/wiki/Test_unitaire https://fr.wikipedia.org/wiki/Extreme_programming#Tests_de_recette_.28ou_tests_fonctionnels.29 http://blog.octo.com/demarches-de-tests-fonctionnels/ http://fr.slideshare.net/gmantel/automatisation-des-tests-le-mythe-du-roi https://fr.wikipedia.org/wiki/Mantis_Bug_Tracker http://www.e-systemes.com/live-blog/suivi-des-bugs-et-des-projets-quelle-application-pour-e- systemes/434/ http://atatorus.developpez.com/tutoriels/java/test-application-web-avec-selenium/#LI http://www.osaxis.fr/blog/automatiser-ses-tests-fonctionnels-partie-2-2/ http://www.zdnet.fr/actualites/6-conseils-pour-les-tests-d-applications-mobiles-39806167.htm http://www.all4test.fr/actualites/477-test-mobile-comment-tester-les-applications-mobiles https://fr.wikipedia.org/wiki/CAPTCHA http://www.nextinpact.com/news/91233-recaptcha-google-veut-prouver-que-vous-netes-pas-robot- avec-case-a-cocher.htm http://www.conseilorga.com/publications/recettes-tests-et-qualifications Livre : Industrialiser le test fonctionnel - 2e édition: Pour maîtriser les risques métier et accroître l'efficacité du test - Bruno Legeard, Fabrice Bouquet, Natacha Pickaert
Alors oui, on peut considérer qu’utiliser plusieurs niveaux de tests est une opération répétitive dans le sens ou plusieurs intervenants vont devoir tester plusieurs fois le projet avec des méthodologies différentes. Néanmoins, ce n’est pas redondant car la recherche d’anomalie est beaucoup plus efficace et permet de détecter des instabilités liés à des mécanismes différents.

Voir ci-dessous une liste populaire de Framework et des outils de test unitaire pour différents Framework et langages de programmation. Ces Framework peuvent être utilisés par les programmeurs pour tester des fonctionnalités spécifiques dans les couches métiers des applications. Ils sont utilisés pour tester automatiquement les nouvelles versions et construire un processus d’intégration et de déploiement automatiques.
Automation is the technology by which a process or procedure is performed with minimum human assistance.[1] Automation [2] or automatic control is the use of various control systems for operating equipment such as machinery, processes in factories, boilers and heat treating ovens, switching on telephone networks, steering and stabilization of ships, aircraft and other applications and vehicles with minimal or reduced human intervention. Some processes have been completely automated.
29. L’automatisation des tests fonctionnels SIMON Emeline Annexe 4 : Exemple de test avec Selenium, classe Selenium. public class selenium { private Selenium selenium; @Before public void setUp() throws Exception { WebDriver driver = new FirefoxDriver(); String baseUrl = "http://localhost:8080/tutoselenium"; selenium = new WebDriverBackedSelenium(driver, baseUrl); } @Test public void testSelenium() throws Exception { // Connexion au site selenium.open("/tutoselenium/"); // On est page 1, on va page 2 selenium.type("id=contentForm:pageText", "2"); selenium.click("id=contentForm:nextPage"); selenium.waitForPageToLoad("30000"); // puis page 3 selenium.click("id=contentForm:page3Button"); selenium.waitForPageToLoad("30000"); // et retour page 1 selenium.select("id=contentForm:pageList_input", "value=1"); selenium.click("id=contentForm:nextPageButton"); selenium.waitForPageToLoad("30000"); // On passe en anglais selenium.click("id=headerForm:english_button"); // etc. } @After public void tearDown() throws Exception { selenium.stop(); } }

Ainsi qu’évoqué plus haut, le plus grand défi à relever dans l’automatisation des tests est la difficulté à les maintenir dans le temps. Aussi pour répondre à cette problématique, nous avons mis en place différentes stratégies, parmi lesquelles l’utilisation du Page Object pattern, ou encore des pattern plus évolués comme le Screenplay pattern qui est une approche pour écrire du code de haute qualité pour les tests automatisé et qui est basés sur les principes du SOLID on peut citer à titre d’exemple, le Single Responsability principle ou le Open Closed principle.


An early development of sequential control was relay logic, by which electrical relays engage electrical contacts which either start or interrupt power to a device. Relays were first used in telegraph networks before being developed for controlling other devices, such as when starting and stopping industrial-sized electric motors or opening and closing solenoid valves. Using relays for control purposes allowed event-driven control, where actions could be triggered out of sequence, in response to external events. These were more flexible in their response than the rigid single-sequence cam timers. More complicated examples involved maintaining safe sequences for devices such as swing bridge controls, where a lock bolt needed to be disengaged before the bridge could be moved, and the lock bolt could not be released until the safety gates had already been closed.
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.
×