Aller au contenu principal
  • Cours pratique
  • Informatique

Formation Qualité des applications (cours dédié aux actions collectives Atlas)

Demander un devis
Une formatrice accompagne deux participants penchés sur leurs notes, en salle de formation
Durée
3 jours
Niveau
Intermédiaire
Modalités
Présentiel / Distanciel

Description de la formation Qualite applications

Industrialiser la production logicielle, c’est définir précisément le cycle de vie d’un projet et les outils nécessaires à l’automatisation et l’amélioration de la qualité. Quels que soient les technologies, langages ou frameworks, les différentes étapes et les outils associés sont similaires :

  • Les outils de gestion des sources (SCM) et de collaboration, directement intégrés dans les IDE, permettent la collaboration au sein des équipes de développement quelquefois géo-dispersées
  • Les outils de construction (build) permettent d’automatiser et d’uniformiser le processus de fabrication à partir des sources du projet. Il gère également les dépendances du projet vers les autres librairies d’artefacts permettent de contrôler le processus de release d’un logiciel.
  • Les outils de tests permettent de valider qu’un artefact est conforme à ses spécifications fonctionnelles et techniques
  • Les outils d’analyse qualité permettent de contrôler la maintenabilité du code, de maitriser sa complexité
  • Les dépôts d’artefacts permettent de conserver les différentes releases produites afin de pouvoir les déployer à tout moment
  • Enfin, la plateforme d’intégration ou de déploiement continue permettent d’exécuter tous les précédents à chaque ajout de code source dans le SCM.

Cette formation Qualité des applications a vocation à donner une vision claire aux participants du cycle de production du logiciel, des prérequis et outils nécessaires à l’amélioration de la qualité de production.
En dehors des présentations des concepts et des outils, un projet complet servira de fil conducteur pour illustrer le propos et pour alimenter les ateliers effectués par les participants.

Atelier en salle : une participante présente des notes au tableau

Objectifs pédagogiques

Objectifs pédagogiques :

À l'issue de cette formation Qualité des applications, vous aurez acquis les connaissances et compétences nécessaires pour :

  • Connaître les outils intervenant dans le cycle « Code, Build, Deploy » selon le principe d’intégration continue
  • Comprendre les apports d’un outil de build et des dépôts d’artefact pour produire des livrables de qualité
  • Connaître les workflows de collaboration autour de Git
  • Connaître les principaux outils de tests et la typologie des tests
  • Comprendre la démarche qualité et le support de SonarQube
  • Comprendre le rôle d’une plateforme de CI/CD dans le cadre d’une fabrique logicielle

Objectifs opérationnels

Objectif opérationnel :

Connaître les outils, méthodes et bonnes pratiques pour développer une application de qualité (à travers la mise en place d'une usine logicielle).

Programme

Contenu du cours

J1

Introduction

Qu’est-ce la qualité logicielle ? 
Modèles qualité du logiciel, les efforts de standardisation, les normes SquaRE
Le concept de l’usine logicielle
Cycle de vie d’un projet : de la spécification à la production
Les apports du CI/CD, prérequis sur la qualité
Relations avec les méthodes agiles, avec DevOps

L’outil SCM

Les outils de gestion de sources : rôles et apports
La solution Git est ses particularités
Modèles de collaboration Gitflow et Fork. Leur contexte d’utilisation
Les outils les plus répandus : GitLab et GitHub
Atelier 1 :Objectif : Apprendre les commandes de base de Git et un workflow de collaboration typique autour de la notion de Merge Request
Description : 
Initialisation de dépôt
Prise en charge d’une issue sur Gitlab
Création de Branche et de Merge Request
Intégration dans la branche stable

Les outils de build et les dépôts d’artefacts

Outil de build

Les apports d’un outil de build
Les principaux outils, l’exemple de Maven

Dépôt d’artefactLe rôle d’un dépôt d’artefact
L’exemple de Nexus
Release d’un logicielNumérotation des versions, gestion des tags
Branche de préparation de release, Publication des artefacts
Automatisation des releases avec Git/Maven/Nexus
Atelier 2 :Objectif : Identifier un plan de build, Comprendre les rôles d’un dépôt d’artefact d’entreprise, Appréhender les tâches de release
Description : 
Visualisation d’un plan de build Maven
Publier des SNAPSHOT et des version stable vers Nexus
Effectuer une release via le plugin Maven
J2

Les tests

IntroductionTypologie des tests, types de tests et phases de construction
Les méthodes centrées sur les tests. Principes de l’XP Programming
Les tests unitairesPrincipes du test unitaire, Rôle du moteur d’exécution
Cycle d’un test : setUp, Invocation, Assertions, tearDown
Rapport des tests, les format xUnit
Isolation:Fake Object, Mocking et Stub
Atelier 3 :Objectif : Comprendre le cycle d’un test, Isoler du code pour effectuer un test unitaire
Description : 
Visualisation d’une classe de test, explication du Mocking
Exécution du test dans l’IDE et exécution par l’outil de construction
Les tests d’intégrationPrincipes du test d’intégration
Les systèmes embarqués (bases de données et serveurs)
Mock Serveurs, exemple WireMock
Atelier 4 :Objectif : Savoir initialiser une base de données embarquées avant chaque test, Utiliser un serveur HTTP mocké
Description : 
Test de la couche de persistance
Test de la couche web
Exécution par l’outil de construction
Les tests fonctionnels, end2endL’approche boîte noire des tests fonctionnels
Prérequis aux tests fonctionnels
Difficulté des tests fonctionnels
Exemple de Selenium
Atelier 5 :Objectif : Comprendre l’exécution d’un test Selenium
Description : 
Visualisation de la classe de test
Exécution du test fonctionnel
Les tests de performanceMise en place des tests de charge
Modélisation de charge, préparation d’un banc de test
Rapport des tests de performance, principales métriques
Exemple de JMeter
Atelier 6 :Objectif : Comprendre les métriques d’un rapport de performance standard
Description : 
Visualisation de la classe de test
Exécution du test fonctionnel
Les tests d’acceptationObjectifs des tests d’acceptation, le BDD et la syntaxe Gherkin
Les acteurs du tests d’acceptation
L’exemple de Cucumber
Atelier 7 :Objectif : Comprendre les implications des tests d’acceptation
Description : 
Visualisation des scénarios de texte via la syntaxe Gherki
Visualisation du code plomberie
Exécution du test d’acceptation
J3

Mise en place d’une démarche qualité

Les règles de codage, règles standard, règle propre à un langage, spécifique à un projet
Les transgressions : typologie, classification et sévérité
Notion de dette technique, workflow de résolution des transgressions, rôles projet
Concepts pour adapter la démarche :  profils qualité, leak periods, indicateurs, métriques et portes qualité
Recommandation pour la définition des objectifs et amélioration continue
Atelier 8 :Objectif : Comprendre les concepts de la qualité présents dans Sonarqube
Description : 
Paramétrage d’une analyse puis exécution
Interprétation des résultats
Adaptation d’une porte qualité

Plateforme de CI/CD

Rôle d’une plateforme de CI/CD
Notion de pipeline, rôle des branches dans la pipeline
Intégration, Livraison, déploiement continue
Automatisation des déploiements, les différents outils en fonction des infrastructures cibles
Les tests de post-déploiement
Atelier 9 :Objectif : Comprendre le rôle et l’apport de la plateforme CI/CD
Description : 
Description d’une pipeline multi-branche Jenkins de Continous Delivery
Exécution de la pipeline sur une branche de feature
Merge dans une branche Stable
Exécution de la pipeline sur la branche stable et publication d’une release
Approbation manuelle pour un déploiement automatisé en production

Programme mis à jour le 12/06/2025

Formations liées