SMOKE TEST
Chez Younited Credit, nous pratiquons l’intégration continue et le déploiement continu. De ce fait, nous déployons très souvent nos applications. Nous n’aborderons pas dans ce billet les bénéfices de ces pratiques, en revanche, nous abordons un type de test qui supporte ces pratiques.
Pourquoi faire des smoke tests ?
La question que nous devons nous poser quand une application est déployée dans un environnement, qu’il soit d’intégration continue, de production ou autre est :
Roulements de tambour ….
Peut-on l’utiliser ou encore est-elle testable ?
Ainsi on pourra éviter de commencer un run de test inutile ayant pour conséquences :
- L’effet « mauvaise surprise »
- auprès des testeurs ?
- D’exécuter des tests automatiques sur une application qui n’est pas prête à être testée, donc d’économiser du cpu et des analyses inutiles
Origines de la pratique
Nous nous sommes inspirés de nos prédécesseurs qui œuvraient dans l’industrie électronique.
Une image valant mieux qu’un beau discours, voici un exemple de résultat de smoke test KO :
Dans ce cas, le testeur ne démarre pas la séance de test car le circuit est inutilisable une fois sous tension. L’idée d’un smoke test est donc d’attraper des gros poissons avec des gros filets.
Donc, notre smoke test doit être robuste et ainsi ne pas vérifier un comportement précis au sens d’une règle de gestion, mais plutôt un comportement général.
Mise en application de la pratique dans le contexte Younited Credit
Voyons comment appliquer cette pratique à un site web purement éditorial.
titre du test : websiteHomePageShouldHaveATitle
Il conviendrait de faire un test pour vérifier que la home page comporte un Titlepour confirmer que l’environnement est prêt.
Voyons comment appliquer cette pratique à l’API d’un CRM.
titre du test : customerShouldHaveAName
Il conviendrait de faire un test pour vérifier qu’un objet customer comporte un attribut Name .
Mise en oeuvre des Smoke Tests de notre site edito
Chez Younited Credit, nous utilisons Azure pour construire, déployer, héberger nos produits / softs.
Voici deux rapports de déploiement effectués à l’aide de Azure Release Management.
Smoke test OK
Voici un exemple de déploiement de notre site edito avec son étape de smoke test en succès donc un run de test fonctionnel exécuté. On trouve d’ailleurs une anomalie.
Smoke test KO
Cette fois l’application déployée n’est pas testable : les étapes suivantes ne seront pas exécutées. On est informé du problème.
Configuration des étapes suivant le smoke test avec Release Management
Après la tache de smoke test, nous laissons celle de publication de résultat du smoke test s’exécuter, même si le test est en erreur. En revanche, l’étape de test fonctionnel ne s’exécute que quand les précédentes tâches sont en succès.
Bon test !