Construire un patrimoine de tests automatisés en Java

Le test automatisé n'est ni une contrainte, ni réservé aux experts, il permet de vous prémunir au plus tôt des bugs, à l'origine de perte de temps et d'argent. En 3 jours, cette formation permet d'appréhender les différents types de tests, d'apprendre à écrire des tests unitaires, d'intégration et de bout-en-bout.

La personne apprenante sera en capacité de les exécuter dans un pipeline d'intégration continue avec GitLab. Elle mettra également en pratique des concepts plus avancés tels que le développement piloté par les tests (TDD), le Behavior Driven Development (BDD), ainsi que les tests de sécurité et de performance.

(21 heures)

En présentiel ou en classe virtuelle
En français ou en anglais
Public

6 mois d'expérience en Java

Accessible aux personnes en situation de handicap

Délai

Le cours peut être organisé dans un délai d'un mois.

Objectifs

A l'issue du cours vous saurez :

Prérequis

Méthodes pédagogiques

Programme détaillé

Typologie et hiérarchie des tests
  • Comprendre les différents types de tests : unitaires, intégration, end-to-end, etc.
  • Identifier la place de chaque type de test dans le cycle de vie d'une application.
  • Savoir équilibrer et prioriser les efforts de test selon les besoins du projet.

Mise en pratique: cartographier les tests nécessaires pour un projet type.

Les bases des tests unitaires avec JUnit et AssertJ
  • Présenter JUnit et ses fonctionnalités clés.
  • Structurer des fichiers de tests unitaires clairs et maintenables.
  • Utiliser les assertions pour valider le comportement du code.

Mise en pratique: écrire et exécuter un premier test unitaire sur une fonction simple.

Découverte du développement piloté par les tests (TDD)
  • Comprendre les principes du TDD et ses bénéfices.
  • Adapter son environnement pour le TDD (watch mode, feedback rapide).
  • Intégrer le TDD dans le développement de nouvelles fonctionnalités.

Mise en pratique: développer une fonctionnalité en TDD sur le projet fil rouge.

Tests unitaires avancés
  • Gérer les cas d'exception et les erreurs attendues.
  • Utiliser les doublures de tests (mocks, stubs, spies) pour isoler le code testé.
  • Analyser la couverture du code.

Mise en pratique: écrire des tests unitaires avancés avec gestion des erreurs et mocks, et évaluer la couverture

Intégration continue et automatisation des tests
  • Comprendre les principes de l'intégration continue (CI).
  • Configurer un pipeline de tests automatisés avec GitLab CI.
  • Automatiser l'exécution des tests à chaque push.

Mise en pratique: mettre en place un pipeline CI pour exécuter les tests sur GitLab.

Tests d'intégration API et gestion des jeux de données
  • Différencier tests unitaires et tests d'intégration.
  • Préparer et insérer des jeux de données.
  • Tester les interactions entre modules et avec la base de données.
  • Tester les API

Mise en pratique: écrire un test d'intégration avec gestion de jeux de données.

Behavior Driven Development (BDD)
  • Comprendre les principes du BDD et du langage Gherkin.
  • Écrire des scénarios utilisateurs sous forme Given/When/Then.
  • Intégrer Cucumber avec JUnit pour des tests orientés métier.

Mise en pratique: rédiger un scénario Gherkin et l'implémenter en test automatisé.

Tests de bout-en-bout (end-to-end)
  • Présenter Selenium pour les tests E2E.
  • Écrire des tests simulant des parcours utilisateurs réels.
  • Intégrer les tests E2E dans le pipeline CI.

Mise en pratique: écrire et exécuter un test Selenium sur le projet, puis l'intégrer à GitLab.

Tests automatisés sur la sécurité applicative
  • Découvrir l'OWASP Top 10 et les risques majeurs.
  • Détecter et mettre à jour les dépendances vulnérables.
  • Corriger les failles courantes : contrôle d'accès, hashage, injection SQL, XSS.

Mise en pratique: identifier et corriger une faille de sécurité sur le projet fil rouge.

Tests de charge et performance
  • Présenter les enjeux des tests de charge.
  • Utiliser JMeter pour simuler de la charge sur une API.
  • Analyser les résultats et identifier les goulets d'étranglement.

Mise en pratique: écrire et exécuter un test de charge avec JMeter, puis l'intégrer à GitLab.

Prix et financements

2 12

Réduction de 50% pour les associations reconnues d'utilité publique.

Sources de financements pour les organisations françaises:

Contact

Questions, inscriptions, demande d'adaptation: