EDITIONS ENI : 03. Qualité des applications
Organisme
44812 ST HERBLAIN CEDEXVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Par les stagiaires, qui en début et fin de formation, réalisent une auto-évaluation de leurs connaissances et compétences en lien avec les objectifs de la 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é
Principes fondamentaux de la qualité logicielle et de l’intégration continue (0,25 jour)
• Qualité et méthodologie
- Evolution des méthodologies pour améliorer la qualité
- De l’importance des tests logiciels
• Les étapes du cycle de vie logiciel
- De l’expression des besoins à la mise en production
• Les limites du cycle en V
• Les méthodologies Agiles
- Le cycle de vie itératif et incrémental
• L’importance des tests logiciels
- Les différents types de tests et leur intervention dans le cycle logiciel
• Limites de l’exécution des tests par les frameworks de test
• La nécessité de l’automatisation
• Les outils de la chaîne d’intégration continue
- L’ordonnanceur
- Les outils de construction logiciel
- Les gestionnaires de code source
- Les référentiels de livrables
Bonne pratiques d’écriture de code pour la qualité logicielle (0,25 jour)
• La programmation par intention
- Ecrire du code compréhensible pour faciliter la lecture et la maintenance des applications
• La documentation du code
- Principes et outils selon les langages de programmation
• La documentation par les tests
• Ecrire du code testable
- SOLID : Les cinq principes de conception pour écrire du code testable et maintenable
• Travaux pratiques :
- Amélioration de la qualité du code sur une application existante
- Identification des portions de code améliorables et application des corrections
Mise en oeuvre des tests logiciels (0,75 jour)
• Les principes fondamentaux du test logiciel
- Bonnes pratiques de mise en oeuvre et de conception des tests
• Les tests unitaires
- Réalisation et exécution
- Les frameworks de mise en oeuvre
• Les tests d’intégration
- La difficulté de mise en oeuvre des tests d’intégration
- Bonnes pratiques de mise en oeuvre et préparation des tests
- Les outils associés
• Les tests fonctionnels
- Validation des spécifications fonctionnelles
- Les tests d’IHM
- Solutions techniques pour la mise en oeuvre
- Difficulté de la mise en oeuvre des tests fonctionnels sur les applications Web
• Les tests de charge et de performances
- Les outils de test et de mesure
- L’offre du marché pour la réalisation de test de charge et de performances
- Mise en place d’un environnement de mesure des performances
• Travaux pratiques :
- Mise en oeuvre des tests unitaires, d’intégration et fonctionnels sur des projets existants
- Utilisation de frameworks de test (JUnit, NUnit, CppUnit, PyUnit) pour les tests unitaires en Java, C#, C++ et Python
- Création d’un banc de test de charge et de performances sur une application déployée
- Mesure et analyse des résultats
La gestion du code source et des versions (0,5 jour)
• La centralisation du code source
- Les besoins et fonctionnalités attendues
- La notion de SCM (Source Code Management)
• Interactions entre les développeurs et le SCM
- Bonnes pratiques et sensibilisation des développeurs
• Les principaux outils de gestion du code
- CVS
- Subversion/SVN
- Git / GitHub
- Comparatif et caractéristiques majeurs des principaux outils
- Intégration aux IDE
• Git
- Concepts fondamentaux et principales commandes
- Le référentiel GitHub
• Travaux pratiques :
- Création d’un dépôt logiciel à partir de code source existant
- Gestion des changements dans la base de code
- Mise en place d’un dépôt partagé et collaboratif
Les outils de construction logiciel (0,5 jour)
• Le besoin d’automatisation des constructions de projets
- Difficultés de constructions homogènes
- Limiter l’erreur humaine
- Les constructions multi-projets et multi-environnements
• Les problématiques d'intégration continue dans un projet
- Les besoins en termes d'outillage
• Panorama des outils existants
- Les outils selon les langages
• Le cycle de vie d’un projet : compilation, packaging, déploiement
• La gestion des dépendances de bibliothèques
- Mécanismes de déclaration
• Générer la documentation des programmes
- Génération et publication
• Utiliser un outil de construction logiciel avec un outil de gestion de configuration logicielle : Git / Subversion
• Exécution de tests
- Intégration avec les outils de tests
• Génération de rapports
• Travaux pratiques :
- Présentation et mise en oeuvre simple d’un outil de construction sur un projet logiciel existant
- Déclaration des dépendances et compilation du projet
- Ajustement de la construction pour produire un livrable
L’intégration continue (0,75 jour)
• La chaîne d'intégration continue
• Principes de mise en oeuvre de l’intégration continue
- Le serveur d'intégration continue
- Les outils du marché
• Installer et configurer un serveur d’intégration continue
• Configuration globale
- Intégration des outils de construction
- Intégration des gestionnaires de code source
• Création d'un job : projet de construction
• Les déclencheurs
• Les actions post-construction
• Visualiser les résultats d'un job
• Automatisation des tests
- Les tests unitaires
- Les tests d'intégration
- Les tests de charge et performances
• Configurer et consulter les rapports de test
• Utilisation d’un gestionnaire de bugs
- Intégration de Mantis, Redmine
• Un serveur central pour le stockage des livrables
- La génération des livrables
• Les alertes
- Le système de notifications
- Notifications par mail, …
• Les outils de test de la qualité de code
- La suite d’outils Sonar
• Travaux pratiques : Mise en oeuvre avec Jenkins
- Installer et configurer Jenkins
- Configurer un SCM avec Jenkins
- Configurer un outil de construction avec Jenkins
- Configurer un serveur de documentation et un serveur de livrable avec Jenkins
- Créer des jobs pour la construction de projets Java, C#, C++ et Python
- Générer des rapports de tests et les publier sur un serveur Web
- Générer des livrables et les publier sur un serveur Nexus