Ma dernière expérimentation m’a permis d’obtenir un ensemble de tests de non-régression pour une application web mobile, multiplateformes (Browser),  multilingue (Anglais/Français) et multi-environnement (QA/ DEV/ Intégration) en moins de 15 JP d’effort. Créer de nouveaux scénarios requiert environ 1 JP par scénario et la maintenance est de 0,5 JP par itération. Le temps d’exécution étant de 2 minutes par scénario.

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)
IFTTT (If This Then That) est l’outil le plus connu en matière d’automatisation de tâches. Disponible dans une version web ainsi que sous la forme d’applications mobiles pour les plateformes Android et IOS, il permet de créer des petits programmes baptisés « applets ». Leurs rôles ? Etablir des interactions entre les différents outils numériques que l’on utilise au quotidien afin d’automatiser des tâches courantes.
Il s'agit de tester un module indépendamment du reste du programme afin de s'assurer qu'il répond aux spécifications fonctionnelles et qu'il fonctionne correctement en toutes circonstances. Cette vérification est essentielle, en particulier dans les applications critiques. Elle s'accompagne la plupart du temps d'une vérification de la globalité du code, qui consiste à s'assurer de la conformité de l'ensemble ou d’une fraction déterminée des instructions présentes dans le code à tester. L'ensemble des tests unitaires doit être rejoué après une modification du code afin de vérifier qu'il n'y a pas de régressions (l'apparition de nouveaux dysfonctionnements).
La recette (ou test d'acceptation) est une phase de développement des projets, visant à assurer formellement que le produit est conforme aux spécifications. Il ne s’agit plus de tester une fonctionnalité précise comme c’est le cas avec les tests fonctionnels, mais bien de tester l’application dans sa globalité. Pour cela, des scenarii de tests sont la plupart du temps utilisés afin de refléter une utilisation réelle de l’application. Ces tests peuvent être réalisés par le chef de projet fonctionnel ou par le client.
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(); } }
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
Vous pouvez utiliser un mélange de Sélénium et Sikuli. Selenium est vraiment un excellent outil pour l'automatisation du navigateur. Cependant, dans le cas où vous devez utiliser des éléments d'interface utilisateur qui ne sont pas automatisables par Selenium, je recommanderais d'utiliser Sikuli pour C#. Here J'ai trouvé un exemple comment il pourrait ressembler à:
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.
Les utilisateurs avancés peuvent même ajouter du code ECMAScript (similaire à Javascript) aux actions pour personnaliser encore plus le déroulement de l'exécution d'un script. Ceux qui veulent aller encore plus loin peuvent même développer des scripts complètement en ECMAScript et les exécuter en utilisant le programme en ligne de commande ActExec.
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
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.
Hormis sur des projets statiques, la nécessité de tests fonctionnels automatisés augmente exponentiellement avec la complexité du projet. Les tests automatisés ne font pas perdre de temps, au contraire ils en font gagner, car une fois écrits, les tests peuvent être rejoués à volonté sans prendre du temps supplémentaire aux testeurs, cela dépend de la solution mise en place (voir ci-dessous). Le rôle du testeur, en plus de l’écriture des tests, devient alors plus de comprendre d’où vient le bug / la régression rencontré(e) et de les retranscrire aux développeurs, plutôt que de les chercher. Le testeur doit alors avoir une meilleure compréhension du fonctionnel et de la technique de l’application afin d’accomplir sa mission.

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

Cette fonctionnalité permet à des testeurs sans aucune connaissance en programmation de construire des tests fonctionnels et d’acceptation. La plupart du temps, les testeurs disposent au travers de ce genre d’outil d’un langage de programmation allégé leur permettant de réaliser ces tests. Avec Selenium, le besoin pour les testeurs d’utiliser un tel langage de test ne se limite qu’à de petites correction sur des scripts générés.


Le code en Ecmascript vous permet d'utiliser l'ensemble des fonctionnalités proposées par la bibliothèque Qt ainsi qu'une trentaine d'objets plus simples à utiliser, voir la page du wiki. Vous pouvez par exemple ouvrir un serveur TCP ou UDP, exécuter des requêtes sur une base de données MySQL ou bien accéder à la base de registres de Windows. Un débogueur est disponible pour vous aider à corriger vos scripts. La documentation du logiciel est disponible en français et en anglais, bien que certaines parties soient en cours de traduction/rédaction.

Chaque logiciel présenté ci-après gère son référentiel d’objets d’une manière différente. vTest propose de visualiser et de modifier les propriétés uniquement des objets qui sont reconnus lors des tests. TestComplete et TestPartner permettent de créer des modèles ou des objets-types et donnent la possibilité de faire reconnaître au logiciel des objets complexes aux propriétés personnalisées.


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.
On ne se contente pas d’installer des outils et de vous former en disant que c’est facile. La marketing numérique est une tâche complexe, avec mille subtilités et surtout, qui évolue sans cesse. Nos experts sont dédiés exlusivement à trouver les meilleures tactiques et optimiser les outils implantés chez nos clients. Vous ne perdrez pas de temps à apprendre des tonnes de trucs qui ne seront utiles que 10% de votre précieux temps. Vous pouvez donc vous concentrer sur ce que vous connaissez déjà!
Cette fonctionnalité permet à des testeurs sans aucune connaissance en programmation de construire des tests fonctionnels et d’acceptation. La plupart du temps, les testeurs disposent au travers de ce genre d’outil d’un langage de programmation allégé leur permettant de réaliser ces tests. Avec Selenium, le besoin pour les testeurs d’utiliser un tel langage de test ne se limite qu’à de petites correction sur des scripts générés.
Zennoposter peut fonctionner en arrière-plan et produire des résultats tout seul, tandis que vous vous concentrez sur les aspects les plus importants de votre entreprise. Il y a littéralement des milliers de tâches en ligne que Zennoposter peut automatiser et au fur et à mesure que vous l’utilisez, vous reconnaîtrez toutes les tâches que vous pouvez automatiser.

Afin de profiter au mieux de l’automatisation des tests, voici huit recommandations issues de notre expérience, acquise au cours de plus de 50 projets internationaux d’automatisation des tests en entreprise. Ces conseils sont destinés à aider l’amélioration du retour sur investissement en automatisation de tests et à améliorer la qualité logicielle.
Nous avons pris soin d'importer le framework unittest de Python afin de disposer de la classe TestCase et du test runner. Nous avons également importé le webdriver fourni par Selenium, qui va nous permettre d'automatiser le navigateur. Les méthodes setUp() et tearDown() d'xUnit sont implémentées pour initialiser notre driver avant de lancer les tests et le fermer une fois terminé.
L'expression « machine-outil » contient en elle-même sa définition : un matériel ayant pour but de faire mouvoir l'outil par une transmission actionnée au moyen d'un moteur, au lieu de la laisser manier par la main de l'ouvrier. D'une manière plus précise, la définition proposée par le Syndicat des constructeurs français de […] Lire la suite☛ http://www.universalis.fr/encyclopedie/machines-outils/#i_2513

Ensuite, même si cette phase a été correctement effectuée, il arrive quasi-systématiquement que plusieurs bogues passent à la trappe. C’est donc le client qui les remarque et qui les remonte à l’équipe de développement. Dans cette situation là, c’est double peine. En effet, d’une part, on repart sur une additionnelle phase de test en interne avant de prévenir le client que l’anomalie est corrigé, et d’autre part, cela nuit directement à la qualité du travail perçu par le client.
Dans le chapitre « Instruments et applications »  : […] La nouvelle génération des spectrophotomètres est entièrement automatisée. Ils permettent l'enregistrement rapide, routinier et répétitif des spectres d'absorption ou d'émission avec un nombre de manipulations considérablement réduit et, donc, un faible coût d'exploitation ; dans ce cadre, on peut citer l'emploi des supports […] Lire la suite☛ http://www.universalis.fr/encyclopedie/spectrophotometrie-optique/#i_2513
De plus en plus présents en entreprises, les assistants virtuels contribuent eux aussi à l’automatisation de certaines tâches professionnelles. Dans notre article, « L’assistant virtuel de demain : un cerveau global ? » nous vous parlions notamment d’Astro qui permet de faire rapidement le tri dans ses e-mails et de Findo dont le rôle est de naviguer dans nos boîtes mails, fichiers et cloud personnel pour y trouver l’information que l’on cherche. Et bien sûr, pour automatiser vos RDV il y a Julie Desk 😉

The governor could not actually hold a set speed; the engine would assume a new constant speed in response to load changes. The governor was able to handle smaller variations such as those caused by fluctuating heat load to the boiler. Also, there was a tendency for oscillation whenever there was a speed change. As a consequence, engines equipped with this governor were not suitable for operations requiring constant speed, such as cotton spinning.[16]
Dans le chapitre « Genèse des recherches en indexation automatique »  : […] Plusieurs facteurs ont incité les chercheurs en informatique documentaire à tenter de concurrencer l'indexation humaine. D'abord, les contraintes et les insuffisances inhérentes à celle-ci : elle est coûteuse (il faut entre un quart d'heure et une heure pour indexer un document) ; elle est tributaire de la subjectivité de l'indexeur (deux analystes […] Lire la suite☛ http://www.universalis.fr/encyclopedie/indexation/#i_2513
×