AELION : 03. Qualité des applications
Organisme
31200 TOULOUSEVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Questionnaire d’évaluation des pré-requis avant le stage, de satisfaction en fin de stage, évaluation des acquis en fin de formation. Feuille de présence, attestation de 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é
DECRIRE LES BONNES PRATIQUES D’ECRITURE D’UN CODE INCLUANT LA MAINTENANCE DE L’APPLICATION
- A l’issue de cette séquence, vous êtes capable de définir le cycle de vie complet d’une application logicielle. Vous identifiez et comprenez les enjeux qualité dans le domaine de l’ingénierie logicielle. Vous identifiez ce que représente la philosophie Devops, et comment elle sert le cycle de vie d’une application, notamment dans une démarche de projet Agile. Vous appréhendez les bonnes pratiques et outils à utiliser pour l’écriture d’un code en respectant des attentes qualité.
- Cycle de vie complet d'une application (ALM et principes DEVOPS avec CI/CD)
- Bonnes pratiques pour l’écriture et la structure d’un code source
- Méthodes et outils de Linting
- Méthodes et outils de documentation
- Méthodes et outils d’organisation du code (structurer ses dossiers, espaces de noms)
- Techniques de mutualisation de code
- Utiliser et créer des librairies
- Gestion des dépendances
- Origine des défauts logiciels
- Sensibilisation au coût d'un programme non testé Indicateur
UTILISER GIT POUR GERER LES CODES SOURCES
- A l’issue de cette séquence, vous serez capable d’utiliser des commandes git pour initialiser un dépôt, travailler et utiliser les branches. Vous connaîtrez les bases du travail collaboratif sur git et a pu manipuler un workflow. Vous saurez comment utiliser une plateforme Git (Exemple GitHub ou Gitlab).
- GIT pour gérer les codes sources
- Installation et configuration
- Principes de GIT
- Approche décentralisée
- Branches et commit
- Les états Clear/stage/commit
- Guide pratique de git
- Récupérer un projet
- Créer un commit
- Gestion des branches
- Branches locales et remotes
- Merge et rebase
- Flux de travail collaboratif avec Git (exemple du Gitflow workflow).
IDENTIFIER ET UTILISER LES OUTILS NECESSAIRES A LA FABRIQUE LOGICIELLE POUR PRODUIRE DES LIVRABLES DE QUALITE
- A l’issue de cette séquence, vous êtes capable de d’identifier les possibilités offertes par les plateformes Git qui font office de forge logicielle. Vous connaîtrez les plateformes principales et les fonctionnalités attendues sur ce type d’outils.
- Les outils des forges logicielles: ISSUES, WIKI, ETC.
- Flux de travail collaboratif avec Git (exemple du Gitflow worklow)
IDENTIFIER L'OFFRE DES OUTILS DE TESTS DE PERFORMANCE ET DE CHARGE
- A l’issue de cette séquence, vous êtes capable d’identifier les différents types de tests (TU, E2E, qualité, sécurité, performance et charge). Vous prenez conscience qu’il est nécessaire pour tout projet de mettre en place une stratégie de tests adaptée en fonction des enjeux ou des besoins. Vous savez que certaines méthodes peuvent aider à mettre en place les tests au sein d’un projet (TDD, etc.).
- Les tests en agile ou cycle en V (TDD, BDD, ATDD)
- Niveaux de tests : composants, intégration, système
- Cible des tests : fonctionnels / non fonctionnels, architecture logicielle, non régression
UTILISER LES METHODES PUIS OUTILS POUR LES TESTS UNITAIRE, LES TESTS QUALITE, LES TESTS DE PERFORMANCE ET DE CHARGE
- A l’issue de cette séquence, vous êtes capable d’utiliser des commandes GIT pour initialiser un dépôt, travailler et utiliser les branches. Vous connaissez les bases du travail collaboratif sur git et savez manipuler un workflow. Vous savez comment utiliser une plateforme Git (exemple Github ou Gitlab).
- Ecriture de tests unitaires dans un langage de programmation
- Présentation d’une librairie de tests
- Ecriture d’un ou plusieurs tests unitaires
- Utilisation de doublures (Mocks, Stubs, Spy, Fakes...)
- Exécution des tests et génération de rapports
- Tests qualités avec Sonar
- Présentation de Sonar (fonctionnement, règles qualités et profils qualités)
- Branchement d’un projet sur Sonar
- Exécution des tests Sonar
- Tests de performance et de charge avec Gatling
- Présentation de Gatling
- Branchement d’un projet sur Gatling
- Exécution des tests Gatling
APPREHENDER LES OUTILS ET PHASES DE MISE EN œUVRE D’UNE INTEGRATION CONTINUE
- A l’issue de cette séquence, vous êtes capable d’utiliser les pipelines Gitlab configurés en YAML. Vous saurez créer et configurer un pipeline. Vous saurez utiliser d’autres applications de CI et dont la configuration est similaire (Infra-as-code) : par exemple Jenkins. Vous identifiez les étapes nécessaires au déploiement continu. Vous savez quels outils utiliser pour mettre un place un déploiement continu.
- Introduction a la CI avec GITLAB CI
- Rappels sur les principes de CI/CD et Devops
- Intégration Continue avec Gitlab CI
- Configuration Gitlab CI/CD
- Pipelines de CI/CD
- Gestion des runners
- Déploiement continu et Gitlab Runner
- Mise en pratique des outils Gitlab ci
- Définition d’un Pipeline Gitlab CI
- Les tests dans la pipeline (Ajout des tests automatisés dans la pipeline)
- Outils externes qui peuvent compléter Gitlab (Tests qualité avec Sonar, etc.)
- Rappels sur les principes de CI/CD et Devops
- Déploiement Continu avec GitLab CI
- Dépôt de packages (Mise en place registre docker, déploiement d’image dans la pipeline)
- Déploiement d’une MR dans un environnement de recette, déploiement en staging
- Mise en pratique des outils gitlab ci
- Définition d’un Pipeline GitLab CI/CD
- Les déploiements dans la pipeline (Ajout d’un déploiement)
- Outils externes qui peuvent compléter GitLab (Aperçu de Ansible)