Informatique

TDD & CI/CD

Automatiser la qualite avec les tests et le deploiement continu

Automatiser la Qualité

Le DevOps n'est pas juste des outils, c'est une culture. Le TDD garantit que le code marche, le CI/CD garantit qu'il arrive en production sans casser Internet.

Le cycle TDD qui tourne

Clique sur « Étape suivante » ou directement sur un arc : le test et le code évoluent à chaque phase.

RED écris un test qui échoue itération n°1 sum.test.js // test expect(sum(1,2)) .toBe(3); // code (rien pour l'instant) FAIL : sum is not defined Toujours dans cet ordre : le test d'abord, le code ensuite, le ménage à la fin.
RED : le test échoue — normal, la fonction n'existe pas encore. C'est lui qui définit l'objectif.

TDD: Test Driven Development

1. RED 🔴

Écrire un test qui échoue.

expect(sum(1, 2)).toBe(3);
// Error: sum is not defined

2. GREEN 🟢

Écrire le code minimum pour passer.

function sum(a, b) {
  return a + b;
}

3. REFACTOR 🔵

Améliorer le code sans casser le test.

const sum = (a, b) => a + b;

Pipeline Plumber

Fais passer le code de DEV à PROD sans bugs !

Status
READY
Score
0
Commit Test (CI) Build Deploy (CD)
Prêt à déployer ?

🔄 CI: Continuous Integration

L'intégration continue, c'est fusionner le code de tous les développeurs dans une branche principale plusieurs fois par jour.

  • Détection rapide des conflits
  • Tests automatisés à chaque push
  • Empêche le "Works on my machine"

🚀 CD: Continuous Deployment

Le déploiement continu, c'est la mise en production automatique si tous les tests passent.

  • Feedback utilisateur immédiat
  • Petits changements = moins de risques
  • Le développeur se concentre sur le code

Le pipeline, gardien de la prod

Pousse un commit sain ou buggé : chaque étape valide… ou stoppe tout avant la production.

COMMIT BUILD TESTS DEPLOY attente attente attente attente git push CI CD → prod Un humain ne touche à rien : le pipeline décide en fonction des tests. Pousse un commit pour lancer le pipeline.
Glisser pour continuer vers OWASP Top 10
⬇️
Bachelor Informatique