Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 1 · Contrôles

Les contrôles automatiques : tests, lint, SAST

La suite du vocabulaire concerne ce que la pipeline vérifie. Le cours distingue quatre familles.

Tests unitaires : le fonctionnement microscopique

On teste une petite brique isolée. Exemple du cours (Java) : une méthode add(a, b) retourne la somme, et un test vérifie que 40 + 2 donne 42 :

void add(int a, int b) {        // Implémentation
    return a + b;
}

@Test                            // Test
void canAddTwoIntegers() {
    assertEquals(42, add(40, 2));
}

Vérifie que tu as compris

Que vérifie le test unitaire donné en exemple ?

Tests d'intégration : le fonctionnement macroscopique

On teste l'ensemble qui fonctionne ensemble. L'exemple du cours démarre l'application web en arrière-plan sur localhost, port 80, envoie une requête à http://localhost/api/ et vérifie que le code de statut est 200 :

@Test
void isApiWorking() {
    WebApp app = new MyApp();
    app.startInBackground("localhost", 80);

    WebClient client = new WebClient();
    WebResponse response = client.request("http://localhost/api/");
    assertEquals(200, response.statusCode);
}

Le test traverse plusieurs couches (serveur, routage, réponse HTTP) : c'est ce qui le rend « macroscopique ».

Vérifie que tu as compris

Pourquoi l'exemple isApiWorking est-il un test d'intégration ?

Linting : la mise en forme du code

Le lint vérifie le style. Le cours montre un code Java mal espacé (espaces avant les points-virgules, appel coupé sur plusieurs lignes) et sa version propre :

void main(String... args) {
    int a = 40;
    int b = 2;
    System.out.println(a + b);
}

Dans la liste manuelle de la leçon 1, c'est la commande black --check --diff. Le lint ne dit rien sur la justesse du calcul.

SAST

SAST = Static Application Security Testing : analyse statique du code pour trouver des failles de sécurité. Le cours cite l'outil Semgrep. « Statique » signifie qu'on lit le code sans l'exécuter.

Vérifie que tu as compris

Que veut dire SAST dans le cours ?