Organisme de Formation aux technologies et métiers de L'informatique

Formation Automatisation des tests logiciels

Informations générales

OTT
4 jours (28h)
2 650 €HT
repas inclus

Objectifs

Après ce cours, vous serez capable de :

  • Utiliser un référentiel de tests et paramétrer des liens vers des outils connexes, pour automatiser une campagne de test
  • Faire une analyse statique de code et de couverture de tests et l'intégrer dans une chaîne de fabrication logicielle
  • Utiliser les techniques d'objets factices, souches ou simulacres et mettre en place un serveur d'intégration continue
  • Mettre en œuvre une automatisation de tests fonctionnels sur client lourd et sur Web
  • Automatiser les tests de performance, avec mise en place d'un test de détermination du seuil de déni de service

Public

Ce cours s'adresse avant tout aux personnes suivantes :

  • Chefs de projet.
  • Equipes de développement.
  • Assistance à maîtrise d'ouvrage.
  • Equipe de test et de qualification.

Prérequis

Pour suivre ce cours, vous devez déjà posséder les connaissances suivantes :

  • Bonnes connaissances en programmation Java.

Programme de la formation

Le test logiciel est une activité fastidieuse et coûteuse en ressources lorsqu'elle est entièrement manuelle. Automatiser l'ensemble du processus de tests, malgré un coût initial certain, améliore l'organisation et la rentabilité à terme. Après un bref rappel sur les tests et le processus de tests, vous découvrirez les bonnes pratiques et les applications utiles pour l'automatisation des tests dans tout le processus de développement des logiciels. Les aspects organisationnels et financiers de l'automatisation seront également abordés.

Introduction, rappels sur le processus du test logiciel

  • Rôle du test dans le processus de développement.
  • Les tests : unitaires, fonctionnels, etc.
  • Les différentes méthodes de test.
  • Processus de test et stratégie de test.
  • Outils et méthodes intervenant à différentes étapes.
  • Travaux pratiques : Installation de quelques outils.

Automatisation de la gestion des tests

  • Gestion de la couverture des exigences par les tests. Notion de couverture et de granularité.
  • Démarche de mise au point : organisation des suites de tests et création des cas.
  • Faut-il automatiser un test ? Critères à prendre en compte.
  • Préparation à l'automatisation.
  • Construction de la population de test.
  • Mise au point et vérification des tests (Revue)
  • Exécution, enregistrement des anomalies. Notion de rapport d'incident d'après l'IEEE.
  • Gestionnaires d'anomalies. Automatisation de la création des anomalies.
  • Analyse de résultats d'exécution de tests. Consolidation des tests.
  • Travaux pratiques : Utilisation d'un référentiel de tests. Paramétrages de ponts vers des outils connexes (TestLink/Squash/Quality Center ou autres...).

Automatisation des tests unitaires

  • Organisation et bonnes pratiques pour les tests unitaires.
  • Critères d'automatisation.
  • Tests unitaires : Tests Driven Development.
  • Mesure de la couverture de code : couverture des tests structurels, couverture d'instructions et branches.
  • Analyse statique de code : analyse outillée du code source hors exécution (règles de codage) : Checkstyle, Cobertura.
  • Automatisation avec un fichier de configuration.
  • Analyse dynamique de code : couverture des instructions, des branches, des prédicats...
  • Automatisation avec un outil d'analyse de couverture.
  • Organisation des tests unitaires, pair programming, pair testing.
  • Utilisation des frameworks : gestion des scripts de tests, gestion des données de tests, récupération des résultats.
  • Travaux pratiques : Mise en œuvre de tests unitaires avec Junit/TestNG. Intégration dans une chaîne de fabrication de logiciel (Ant/Maven...).

Automatisation des tests d'intégration

  • Stratégies propres à l'intégration : big-bang, "au fil de l'eau", par incréments etc.
  • Intégration ascendante versus descendante. Intégrations mixtes.
  • Objets simulacres : bouchons pour simuler les fonctions appelées, mocking pour remplacer un objet. Les frameworks.
  • Intégration continue : mise en place de gestionnaire de configuration, constructeur de build, outils de pilotage.
  • Focus sur un gestionnaire de configuration logiciel.
  • Signalement automatique des anomalies.
  • Exécution automatique et cyclique des tests logiciels.
  • Focus sur un constructeur de build.
  • Focus sur un serveur d'intégration continue.
  • Travaux pratiques : Utilisation d'objets simulacres. Mise en place d'un serveur d'intégration continue (Jenkins, Hudson ou Continuum).

Automatisation du test fonctionnel

  • Définition du test fonctionnel, non-régression.
  • Le test simulant l'action des utilisateurs à partir des interfaces utilisateurs (IHM).
  • Constats sur l'automatisation du test fonctionnel.
  • Automatisation des tests via l'IHM, via des interfaces de programmation (API).
  • Chaîne d'outils, robots de test, script (API publiques).
  • Gestion de l'obsolescence des tests.
  • Travaux pratiques : Automatisation de tests fonctionnels sur client lourd et sur Web. Utilisation de robots, d'une couche logicielle publique (API). Mise en oeuvre d'un outil d'automatisation (Selenium/HP QuickTest Pro).

Automatisation des tests système

  • Les différents type de tests système : performance, charge, stress.
  • Constats sur les tests de performance.
  • Tests de performance, définition des indicateurs.
  • Scripts de tests de performance. Mise en œuvre d'outils et analyse.
  • Tests de montée en charge, tests de stress : présentation des indicateurs clés et de l'outillage.
  • Gérer la base de données de tests. Gestion du contexte.
  • Travaux pratiques : Mise en place d'un test de charge.

Synthèse

  • Automatisation des tests : coût directs, indirects.
  • Gains quantitatifs de l'automatisation : volumétrie, modularité...
  • Gains qualitatifs de l'automatisation : mode opératoire sauvegardé, pas d'erreur, confiance...
  • Mesure du retour sur investissement.
plus d'infos

Méthode pédagogique

Chaque participant travaille sur un poste informatique qui lui est dédié. Un support de cours lui est remis soit en début soit en fin de cours. La théorie est complétée par des cas pratiques ou exercices corrigés et discutés avec le formateur. Le formateur projette une présentation pour animer la formation et reste disponible pour répondre à toutes les questions.

Méthode d'évaluation

Tout au long de la formation, les exercices et mises en situation permettent de valider et contrôler les acquis du stagiaire. En fin de formation, le stagiaire complète un QCM d'auto-évaluation.

Suivre cette formation à distance

  • Un ordinateur avec webcam, micro, haut-parleur et un navigateur (de préférence Chrome ou Firefox). Un casque n'est pas nécessaire suivant l'environnement.
  • Une connexion Internet de type ADSL ou supérieure. Attention, une connexion Internet ne permettant pas, par exemple, de recevoir la télévision par Internet, ne sera pas suffisante, cela engendrera des déconnexions intempestives du stagiaire et dérangera toute la classe.
  • Privilégier une connexion filaire plutôt que le Wifi.
  • Avoir accès au poste depuis lequel vous suivrez le cours à distance au moins 2 jours avant la formation pour effectuer les tests de connexion préalables.
  • Votre numéro de téléphone portable (pour l'envoi du mot de passe d'accès aux supports de cours et pour une messagerie instantanée autre que celle intégrée à la classe virtuelle).
  • Selon la formation, une configuration spécifique de votre machine peut être attendue, merci de nous contacter.
  • Pour les formations incluant le passage d'une certification la dernière journée, un voucher vous est fourni pour passer l'examen en ligne.
  • Pour les formations logiciel (Adobe, Microsoft Office...), il est nécessaire d'avoir le logiciel installé sur votre machine, nous ne fournissons pas de licence ou de version test.
  • Horaires identiques au présentiel.

Mis à jour le 08/11/2023