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
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
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