Glossaire · Fondamentaux du test
Smoke test (test de fumée)
En anglais : Smoke testing
Également appelé : smoke test, smoke tests, test de fumée, tests de fumée
Définition
Vérification rapide et superficielle des fonctions les plus critiques d'un nouveau build, pour décider s'il est assez stable pour mériter des tests plus poussés.
Le smoke test (test de fumée) est un petit ensemble de vérifications rapides exécuté sur un build tout frais pour répondre à une seule question : ce build vaut-il la peine d’être testé davantage ? Il couvre les parcours les plus importants de façon large mais superficielle. Si un smoke test échoue, le build est rejeté et personne ne perd de temps à tester en détail quelque chose de fondamentalement cassé.
Le nom vient du matériel électronique : on met l’appareil sous tension et on regarde s’il en sort de la fumée avant de vérifier quoi que ce soit d’autre.
Exemple
Pour une boutique en ligne, une suite smoke pourrait être :
- La page d’accueil se charge et renvoie HTTP 200.
- Un utilisateur peut se connecter.
- La recherche renvoie des résultats.
- Un produit peut être ajouté au panier.
- La page de paiement s’ouvre.
Elle ne vérifie ni les règles de remise, ni les messages de validation, ni les cas limites. Tout cela relève de la suite de régression.
Smoke test ou sanity test
Ce sont les deux termes les plus souvent confondus en entretien.
| Smoke test | Sanity test | |
|---|---|---|
| Portée | Large : toute l’application, superficiellement | Étroite : une zone, un peu plus en profondeur |
| Quand | À chaque nouveau build | Après un correctif précis ou une petite modification |
| Question | « Le build est-il assez stable pour être testé ? » | « Ce correctif fonctionne-t-il et le comportement est-il cohérent ? » |
| En général | Scripté et automatisé | Souvent non scripté, vérifications manuelles rapides |
Un moyen simple de s’en souvenir : le smoke est large et superficiel, le sanity est étroit et ciblé.
Dans un pipeline CI
Les smoke tests s’exécutent généralement juste après le déploiement sur un environnement de test ou de staging, puis à nouveau après une mise en production, en tant que vérification post-déploiement. Limitez-les à quelques minutes. S’ils échouent, le pipeline s’arrête avant les étapes plus lentes de régression et de tests end-to-end. Une suite smoke qui dure 40 minutes n’est plus une suite smoke.