PLB CONSULTANT : 03. Qualité des applications
Organisme
92300 LEVALLOIS PERRETVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Travaux pratiques. Auto-évaluation en début et en fin de formation.
Prix
Public
Architectes, développeurs, analystes, chefs de projets…
Pré-requis
Disposer d’une première expérience de développement et maîtriser un langage de programmation (C#, Java ou C++)
Objectifs pédagogiques
- Connaître les bonnes pratiques d’écriture d’un code incluant la maintenance de l’application
- Connaître les outils nécessaires à la fabrique logicielle pour produire des livrables de qualité
- Appréhender l'offre des outils de tests de performance et de charge
- Appréhender les outils et phases de mise en œuvre d’une intégration continue
- Savoir utiliser Git pour gérer les codes sources
Programme détaillé
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’artefact
Le rôle d’un dépôt d’artefact
L’exemple de Nexus
Release d’un logiciel
Numé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
Les tests
Introduction
Typologie des tests, types de tests et phases de construction
Les méthodes centrées sur les tests. Principes de l’XP Programming
Les tests unitaires
Principes 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égration
Principes 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, end2end
L’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 performance
Mise 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’acceptation
Objectifs 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
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