ROLE ET COMPORTEMENT DU CONSULTANT
Pourquoi s’intéresser aux comportements en tant que consultant ?
- Qu’est-ce qu’un comportement ? Qu’est-ce qu’un rôle ?
- En quoi les comportements peuvent faire la différence ?
- Pourquoi choisit-on d’adopter un comportement ? Le processus d’apprentissage d’un « savoir-être »
Adopter la meilleure stratégie de coopération pour mieux travailler en équipe
- Comment agir pour des développer des relations positives et durables ?
- La théorie CRP
Savoir communiquer et éviter les malentendus
- Pourquoi la communication passe-t-elle mal : les filtres, le cadre de référence ?
- Savoir utiliser l’écoute active : questionnement ouvert et reformulation
- Savoir convaincre : comment influencer positivement les échanges
Comment faire évoluer ses comportements
- Qu’est-ce qui conditionne nos comportements ?
- Sur quel levier agir pour ajouter des « cordes à son arc »
Comprendre sa personnalité et mieux cerner celle des autres
- Savoir se situer et comprendre en quoi notre personnalité se traduit à travers nos comportements
- Situer les autres et comprendre leur mode de fonctionnement pour mieux coopérer
Développer son intelligence émotionnelle pour modifier ses comportements
- Qu’est-ce que l’intelligence émotionnelle ?
- En quoi notre QE est-il déterminant par rapport à nos comportements
- Apprendre à gérer son stress pour éviter les comportements inadaptés
.Le stress : de quoi parle-t-on ?
.Comment prévenir le stress et le gérer ?
Appréhender le rôle des croyances et de l’éducation dans nos comportements
- Qu’est-ce qu’une croyance ?
- Pourquoi conditionnent-elles nos comportements ?
L’assertivité et l’empathie pour mieux travailler en équipe
- Qu’est-ce que l’assertivité ? Qu’est-ce que l’empathie ?
- La notion de respects des besoins et de gagnant-gagnant
- Savoir recadrer un comportement qui ne nous convient pas et renouer avec des relations positives
LA METHODE AGILE SCRUM ET LE KANBAN
LA METHODE AGILE
L’Agilité, c’est quoi ?
- Les racines de l’Agilité (Manifeste Agile),
- Un cycle de vie différent
La méthode Scrum
- Présentation de la méthode Scrum,
- L’équipe Scrum et ses rôles : le Product Owner, le ScrumMaster et l’équipe, le stakeholder,
- Les responsabilités de chaque rôle
- Les pratiques d’ingénierie agiles du logiciel
Le Scrum Master en détail
- Un facilitateur et un garant de la méthode
- Responsabilités croisées entre Scrum Master et Product Owner
- Accompagnement de l’équipe de développement
- Accompagnement de l’organisation dans la mise en oeuvre de l’agilité
- Orientation solution / Servant Leadership
Le Product Backlog
- Identifier les Features et les Acteurs (Personas)
- Introduction aux «User Stories»
- Cycle de vie d’une User Story
- Rédiger les Users Stories à partir des Features
- Découper et détailler et prioriser les Users Stories dans le Backlog de produit
Gestion du Sprint Backlog et sa préparation
- Techniques d’estimations des Users Stories
- Priorisation & plans (Périmètre fixé, Date fixée)
- Vélocité estimée & mesurée de l’équipe
- Définition de prêt et de fini
Démarrage et déroulé du Sprint
- Planification de sprint
- Atelier : Session de planification de sprint : Création des tâches
- Le Daily Scrum : 3 questions quotidiennes ( qu’est ce j’ai fait hier, est ce que j’ai rencontré des difficultés, qu’est ce que je vais faire aujourd’hui)
- Gestion des impondérables
- L’avancement du sprint
- Les tests dans un contexte Agile
Fin du Sprint
- Livraison d’une release
- S’améliorer à intervalles réguliers
- La « sprint retrospective»
Les outils du Scrum Master
- Suivi du projet et gestion du temps
- Indicateurs et Key Performance Indicators (KPI)
- Suivre la qualité
- Comprendre les différents graphiques
KANBAN
Découvrir Kanban
- Historique et positionnement de Kanban.
- Où et comment positionner Kanban par rapport à d’autres méthodes ?
Mise en oeuvre d’un système Kanban
- Concepts.
- Présentation générale d’un système Kanban.
BDD ET ATTD
Introduction
- Des constats sur les difficultés de spécifier
Rappels de certains principes agiles
- Des valeurs déclarées du contexte agile
- Des caractéristiques du test en agile – les quadrants des tests, la pyramide des tests
Différencier TDD, ATDD et BDD
- TDD – une technique de développement agile
- ATTD – une approche du test d’acceptation dans le contexte agile
- BDD – une technique de spécification et de conception des tests
- La couverture de test avec les pratiques nDD
BDD et mise en pratique
- Introduction au langage Gherkin
- L’objectif des critères d’acceptation
- De l’utilisation de la conversation et des exemples pour une compréhension partagée
- Le scénario en tant que livrable du BDD
BDD et stratégie d’automatisation
- Pourquoi une stratégie d’automatisation ?
- Les apports du BDD pour la conception de tests automatisés
- Point de vue sur l’automatisation des tests de bout en bout
Un quizz est proposé pour clôturer cette partie théorique.
Travaux pratiques
- S’exercer à appliquer le langage Gherkin
- Spécifier avec Cucumber
- La mise en œuvre du BDD avec Cucumber
- Rédaction / conception de scénarii Gherkin
- Installation environnement Eclipse/Cucumber
GESTION DES EXIGENCES
Analyse des besoins
Spécifications fonctionnelles et techniques
Principes de la gestion des exigences
Procédures et processus
Gestion de projet et des risques
Responsabilités et règles
Définition des exigences
Spécifications des exigences
Analyse des exigences
Traçabilité des exigences
Gestion des exigences
Gestion des anomalies
Utilisation des outils
XRAY ET GESTION DE PROJET AGILE
Introduction
- Présentation de Jira
- Ajouter un add-on dans Jira
- Introduction à Xray
Utiliser le Développement piloté par le comportement (Behavior Driven Development)
- Présentation du BDD
- La syntaxe Gherkin
- Cucumber
Administrer Xray dans Jira
- Types de tests
- Environnement de test
- Générateur de document
- Statuts
- Configuration de Cucumber
- Autres paramètres
Configurer Xray dans un projet
- Association des types de tickets
- Couverture de tests
- Types de tests
- Générateur de document
- Environnement de test
- Étapes de tests
- Champs personnalisés
- Autres paramètres
Créer et configurer un test
- Test
- Précondition
- Exécution de test
- Jeu de tests
- Plan de test
Assurer le suivi des tests
- Bibliothèque de tests
- Tableau de plan de tests
- Rapports (couverture, traçabilité, métriques…)
- Importer des tests
Jira et l’Agilité
- Jira en mode Agile
- Création de user stories et de tickets
- Planification des Sprints et affectation des tâches
- Définition des priorités
- Livraison de logiciels
- Rapports
INITIATION A LA STRATEGIE DE TEST
Introduction : Quels sont les apports de la stratégie de test
- Quel contenu ?
- Quel planning ?
- Quels acteurs ?
- Que couvrira la recette au sein de l’application ?
- Quels livrables ?
Gestion et management de l’exigence
- Typologie des exigences (techniques, fonctionnelles, TNR…)
- Périmètre des exigences
- Risques autour des exigences
- Traçabilité des exigences
- Quid des portions non couvertes
- Elaboration de ratio de recevabilité
Le déroulement des tests
- Etablissement d’un planning
- Conception des tests
- Thématiques et objectifs des tests
- Impact des tests
- Profondeur des tests
- Phases des tests (SAT, FAT, VABF…)
- Analyse des situations bloquantes
- Capitalisation
Les phases du projet
- Définition des interactions des équipes
- Elaboration d’une démarche collaborative
- MOA, MOE, AMOA
- Fichiers de jeux de données
La recette au sein du SI
- Etude des normes (développement, sécurité, liées au Métier)
- Intégration dans le SI
- Gestion du planning global et recette
Outils
- Approche technique
- Choix des outils (automatisation)
- Performance
- Méthodologie de maintenance des scripts
ELABORER SA CAMPAGNE DE TESTS
Introduction à la recette
- Qu’est-ce que le test et la recette des logiciels ?
- Les difficultés du test et les non-conformités
- La psychologie du testeur
- Les acteurs du test : manager de recette, testeur, automaticien, ergonome …
- Le test fonctionnel.
- Le concept de « V&V », vérification et validation
- La typologie des tests
- La notion de couverture des tests
Le contexte projet
- Compréhension des rôles sur le projet (maîtrise d’ouvrage, maîtrise d’œuvre, équipe de recette, utilisateurs)
- Le cycle de vie du projet : modes classique et agile
- Les différents processus
- Les livrables (cahier des charges, spécifications, plan de recette, tests …)
- Les exigences (typologie, critères qualité)
La démarche de recette
- Le processus de recette et ses interactions
- Les étapes de la démarche de recette (synoptique)
- La recette dans le planning projet
- Le versioning
- Les tests de non-régression
La gestion des tests et des non-conformités
- Les principes et les pratiques de la gestion des tests
- Les référentiels de test, les fonctions. Les outils du marché
- L’architecture des tests
- Les principes de la gestion des non-conformités
- Les gestionnaires d’anomalies, les principes et les solutions du marché
- La gestion de configuration des tests (principes et pratiques)
La conception de tests
- Les principes de conception
- La trace de conception
- La traçabilité des exigences et des tests
- Les techniques de partitionnement ou définition de « classes d’équivalence »
- Les techniques de « tests aux limites »
- Les tables de décisions ou définition de combinaisons d’entrée-sortie
- Le graphe de causes à effets. Le graphe à états finis
- Les techniques de test non fonctionnel (ergonomie, utilisabilité, performance …)
- La couverture des objectifs de test
L’implémentation des tests
- Les principes et conditions de l’implémentation
- L’apport des spécifications fonctionnelles
- Les plateformes de test
- Le test manuel
- Les jeux d’essai, les bases de données
- Les générateurs de données de test
- Le test automatisé : principes, avantages et inconvénients
- Les robots de test fonctionnel (vue d’ensemble)
- La revue de test par les pairs
L’exécution des tests
- La préparation de la campagne
- Livraison de la version sous test et sa documentation
- Le passage des tests
- L’enregistrement des résultats et des anomalies
- Les versions correctives/évolutives (Change Control Board CCB)
- La consolidation des résultats
- Les critères d’arrêt et d’acceptation (Go/No go)
- Le procès verbal de recette
METTRE EN ŒUVRE DES TESTS MANUELS AVEC XRAY
Déroulement du module
- Les stagiaires travaillent en toute autonomie, en binôme. Ils sont libres d’effectuer les choix adaptés, de développer les parties dont ils jugent avoir le plus besoin et d’apporter leurs propres solutions aux problèmes posés.
- Le formateur encadre les stagiaires par sa présence et répond aux questions. Il intervient pour épauler un binôme en difficulté ou pour faire le point à l’ensemble du groupe sur des notions non acquises. Il peut être amené à approfondir ou compléter certaines connaissances.
REPORTING
Livrables
- Procès verbal de fin de recette
- Master test plan
- Reporting (tableaux de bords)
- Rédaction de bilans
LES BASES DE DONNEES RELATIONNELLES ET SQL
BDDR
Introduction
- Limites des systèmes à fichier
- Organisation base de données
- Définitions
- Objectifs des SGBD
- Fonctions des SGBD
- Processus de conception de base de données
Le modèle Entité-relation
- Généralités
- Entités et attributs
- Types et occurrences
- Identifiants
- Associations et cardinalités
- Exemples
Le modèle relationnel
- Généralités
- Relations, attributs et tuples
- Contraintes d’intégrité
- Traduction modèle E/A – modèle relationnel
- Problème de la redondance
- Normalisation
- Algèbre relationnelle
Architecture d’une base de données
SQL
Introduction
Les requêtes simples
- Connaître la syntaxe de l’ordre SELECT
- Connaître les prédicats simples
- Savoir écrire des requêtes sur une seule table
- Comprendre ce qu’est une jointure
- Savoir écrire des requêtes sur plusieurs tables
- Connaître les fonctions utilisées dans les requêtes
Les requêtes avec regroupement
- Comprendre le regroupement
- Savoir écrire une requête utilisant le regroupement
Les requêtes ensemblistes
- Connaître les opérateurs ensemblistes
- Savoir écrire une requête utilisant des opérateurs ensemblistes
Les requêtes imbriquées
- Connaître les opérateurs utilisés pour les sous requêtes
- Savoir écrire des requêtes imbriquées
Le langage de manipulation des données
- Savoir insérer une ligne dans une table
- Savoir modifier une ligne dans une table
- Savoir supprimer une ligne dans une table
Le langage de définition de données
- Syntaxe de creation des différents types de tables
- Définition de contraintes (clé primaire, clé étrangère …)
- Index B-tree, bitmap, états des lieux des index
PROGRAMMATION JAVA
Concepts Objet
- Classes
- Instances
- Objet
- Encapsulation
- Membres
- Méthodes
- Héritage
- Polymorphisme
La syntaxe du langage Java (variables, opérateurs, tests, boucle)
- Constructeur et processus d’instanciation, le mot clé static
- Notion d’identité objet
- Déclaration de variables et Initialisation
- Types primitifs et classes du package java.lang
- Les constantes
- Opérateurs d’affectation, de comparaison, booléens, …
- Instruction de contrôles (if, switch, ?)
- Boucles et itérations
- Manipulation des tableaux Java
- Utilisation des collections
- Gestion des exceptions
- Classes élémentaires du framework
Cas pratiques
AUTOMATISER LES TESTS AVEC SELENIUM
Les bases de l’automatisation des tests
- Principes du test fonctionnel
- Principes du test de compatibilité
- Pourquoi automatiser ?
- Bénéfices et limites de l’automatisation
- Choisir les tests à automatiser
- Les tentations des fournisseurs et des utilisateurs
Introduction à Selenium
- A propos de Selenium
- Architecture de la suite Selenium
- Points forts et limites de l’outil
Selenium IDE
- Présentation de l’IDE
- Capture et rejeu avec Selenium IDE
- Structure des scripts
- Création manuelle de script
- Les suites de test
Optimiser les tests avec Selenium IDE
- Utiliser les assertions
- Intégrer des expressions régulières
- Localiser avec XPath
- Mettre en place des Rollup Rules
Piloter les tests conçus avec Selenium IDE et WebDriver
- Installation du serveur
- Convertir les scripts de tests
- Langages supportés
- Avantages de la conversion
- Exécuter les tests
- Consulter et interpréter les résultats
- Migrer de RC vers WebDriver
Paralléliser les tests
- Avantages de la parallélisation
- Présentation et architecture Selenium Grid
- Présentation de la parallélisation des tests avec Selenium Grid
LES TESTS WEB SERVICES AVEC JAVA/ POSTMAN
Fonctionnement des Services Web
- Technologies de distribution d’applications : de l’approche client/serveur aux objets distribués
- Limite dans l’approche objet distribué.
- Principe des Services Web
Representational State Transfer (REST)
- Rappel sur les requêtes HTTP
- Les principes de base de REST
- Les éléments architecturaux de REST
- Les formats d’échange des données : XML, JSON
Présentation des protocoles pris en charge par Postman
- REST, Vault, HTTP, GraphQL, Authentification…
- Paramètres de chemin vs paramètres de requête
Principes fondamentaux des tests API
- Obtenir des demandes
- Publier des demandes
- Paramétrer les demandes
- Les collections
Préparation de l’environnement de développement
- Installation de librairies JAVA (RestAssured)
- Utilisation des librairies dans les tests
Création de requêtes vers des API
- Utilisation d’une API de test
- Transmission de données supplémentaires avec une demande
- Création de requêtes dynamiques avec des variables
- Importer des requêtes depuis un navigateur
- Demandes de débogage
- Enregistrement et partage des requêtes
- Inspecter les réponses
Test et script
- Écriture d’un test
- Test d’une API
- Tests de refactorisation
Workflows API avec GitHub
- Configuration de l’authentification à deux facteurs sur Postman et dans GitHub
- Créer un flux de travail simple avec l’API GitHub
Automatisation de l’exécution des tests avec Postman
- Coureur de collecte d’échantillons
- Utilisation des moniteurs Postman
- Installation de NewMan
- Exécution d’une collection sur Newman et génération d’un rapport
Cas Pratiques
LINUX, LES BASES
Comment installer une version Linux Debian
Lancer une Linux Debian depuis son poste Windows
Comment gérer les utilisateurs sur une machine
Le Shell/Bash
- Généralités
- Les liens logiques – les alias
- Historique des commandes
- Expressions régulières (grep…)
- Les variables d’environnement
- Les filtres
- Les scripts
- Les batch
DEVOPS ET INTEGRATION CONTINUE
DEVOPS
Historique du mouvement DevOps, origines et influences
- Qu’est-ce que DevOps ?
- Planète DevOps : tendances et mouvements émergents
La conduite du changement
- DevOps, comment placer le curseur entre Dev et Ops ?
- Vers une convergence des métiers : changements organisationnels / culturels / technologiques
- Alignement des Dev aux réalités des Ops : rendre son application « prête pour la production »
- Alignement des Ops aux enjeux des Dev : intégration de la plateforme de production à l’usine logicielle
Processus et étapes éligibles à des fonctionnements DevOps
- Usine logicielle
- Livraison
- Déploiement
- Exploitation
- Troubleshooting
Bonnes pratiques pour un développement industriel
- Performance
- Sécurité
- Exploitabilité
Le rôle et choix des outils dans les organisations DevOps
CI
Les tests dans le processus de construction
- Intérêts de l’automatisation des tests
- Principes des « Test Driven Development »
- Présentations des familles de tests
- Tests unitaires, tests d’intégrations et tests fonctionnels
Concepts et enjeux
- Les problématiques de la livraison logicielle (Déploiement manuel, Déploiement dans un environnement différent, configuration manuelle, etc)
- Qui est concerné?
- Définition du processus et l’amélioration de la chaîne de valeur
- Les bénéfices
- Mesurer son niveau de maturité et se fixer des objectifs par palier
De CI vers CD
- La gestion de configuration
- L’usage d’un outil de gestion de source
- La gestion des dépendances (internes et externes)
- La gestion de la configuration logicielle
- La gestion des spécificités des différents environnements
« Continuous Integration» première étape du «Continuous Delivery»
- Rappel des principes et enjeux de l’intégration continue
- Liaison entre l’outil de gestion de sources, le build, les tests, le déploiement et la livraison
- Rappel des meilleures pratiques (TDD, Pre tested commit, etc)
« Continuous Delivery »
- Les différents impacts (versionning, …)
- Les cas d’usage et exemples concrets
- Chaîne (Pipeline) de déploiement
- Les principales étapes
- Mise en oeuvre
- Le rôle d’un serveur d’intégration continue comme orchestrateur de déploiement
- Les critères de validation
- Illustration avec Jenkins
Déploiement et Livraison Logicielle
- Illustration de la mise en oeuvre d’un projet avec Maven et GIT
Gestion des infrastructures et des environnements
- Cas de l’utilisation de Docker et Terraform
Cas pratique CI/CD : Mise en place d’une PIC et illustration avec Docker, Gitlab-CI et Jenkins