Evolution MM

Formations à l'informatique
Découvrez la différence ENI

Lien accueil

Téléchargez le Calendrier des formations

Nantes, Rennes, Niort, Nice, Paris

jusqu'à juillet 2019

Rechercher
Rechercher une formation
 

Mise en oeuvre des tests dans le processus de développement logiciel

Réaliser des tests logiciels est une activité fastidieuse et coûteuse en ressources. L'automatisation de l'ensemble du processus de tests, malgré un investissement initial nécessaire, améliore fortement l'organisation et la rentabilité à terme.
Un bref rappel sur les tests et le processus de tests permet de définir le contexte. Ensuite, une présentation des bonnes pratiques et des applications utiles pour l'automatisation des tests dans tout le processus de développement est exposée. Les aspects organisationnels et financiers de l'automatisation seront également abordés afin de mieux comprendre le contexte positif de la mise en œuvre de ces techniques.

Public :

  • Développeurs, chefs de projet et responsables des équipes de développement.

Objectifs :

  • 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.

Pré-requis :

  • Connaissance des langages et des systèmes de développement ;
  • Utilisation d'un navigateur Web ;
  • Notions de PHP (les exemples sont fait avec ce langage), les outils équivalents pour d'autres langages seront cités.

Contenu pédagogique

Introduction : rappels sur le test logiciel

  • Le test dans le processus de développement
  • Les tests : unitaire, intégration, fonctionnel, charge, sécurité
  • Les différentes méthodes de test
  • Déroulement et stratégie de test
  • Travaux pratiques : installation de la plate-forme de test

Automatisation des tests

  • Définir la couverture et les exigences des tests
  • Organiser les suites de tests et création des cas
  • Critères sur le choix des tests
  • Intégration des tests dans l'outil d'intégration continue
  • Construction de la population de test
  • Valider et mettre au point les tests
  • Analyser et consigner les anomalies
  • Amélioration continue adaptée aux tests automatiques
  • Travaux pratiques :
    • Utilisation d'un référentiel de tests
    • Lier les produits avec Jenkins (TestLink, Squash TM, ou autres...)

Automatisation des tests unitaires

  • Définir les tests unitaires
  • Les bonnes pratiques
  • Intégrer les tests unitaires à la plate-forme d'intégration continue
  • Travailler en " Tests Driven Development "
  • Définir et contrôler la couverture de code
  • Réaliser une analyse des codes sources
  • La gestion des scripts de tests
  • La gestion des données de tests
  • Récupérer et consigner les résultats
  • Travaux pratiques :
    • Mise en œuvre de tests unitaires
    • Analyse statique de code et de couverture de tests
    • Intégration dans une chaîne de fabrication de logiciel (phpUnit, DBUnit, CheckStyle, Cobertura, Phing...)

Automatisation des tests d'intégration

  • Systématiser les tests d'intégration
  • Utiliser des bouchons pour simuler les fonctions appelées, le mocking pour remplacer un objet
  • Mettre en place le gestionnaire de configuration, constructeur de build
  • Remontée automatique des anomalies
  • Lancement automatiques des tests
  • Exemple Phing, un constructeur de build
  • Exemple Jenkins, un serveur d'intégration continue
  • Travaux pratiques :
    • Création de bouchons, de classe " mocking "
    • Intégration sous Jenkins

Automatisation des tests fonctionnels

  • Les tests fonctionnels, de non-régression
  • Simuler l'action des utilisateurs à partir des interfaces utilisateurs
  • Automatisation des tests via les interfaces utilisateurs, par programmation
  • Chaîne d'outils, robots de test, script (API publiques)
  • Gérer l'obsolescence
  • Travaux pratiques :
    • Comment automatiser les tests fonctionnels sur client lourd et sur Web
    • Utilisation de robots, d'une couche logicielle publique (API)
    • AutoIt, Selenium

Automatisation des tests de charge / de sécurité

  • Les tests à valider : performance, charge, stress, sécurité
  • Réaliser et mise en œuvre des tests de performance
  • Définir des indicateurs pour les tests de performance
  • Utiliser des outils pour les tests de performance
  • Analyse des résultats
  • Tests de montée en charge, tests de stress : présentation des indicateurs clés et de l'outillage
  • Travaux pratiques : déterminer le seuil de déni de service sur un serveur Web

Synthèse

  • Les coûts liés à l'automatisation des tests
  • Les gains réalisables par la mise en œuvre de système d'intégration continue
  • Mesurer le retour sur investissement