Indications pour le test de détection de fumée

Mise à jour : novembre 2007

Dans le domaine des logiciels, le terme test de détection de fumée (smoke test en anglais) décrit le processus de validation des modifications du code avant que les modifications soient archivées dans l'arborescence source du produit. Une fois le code révisé, le test de détection de fumée constitue la méthode la plus rentable pour identifier et résoudre les erreurs dans les logiciels. Les tests de détection de fumée sont conçus pour confirmer que les modifications dans le code fonctionnent comme prévu et ne déstabilisent pas une génération tout entière.

Remarque :

Le terme « test de détection de fumée » provient du domaine des matériels. Il dérive de cette pratique ancienne, qui consistait simplement à mettre sous tension un équipement lorsque l'un de ses composants avait été modifié ou réparé. S'il n'y avait pas de fumée, le test du composant était réussi.

Les indications suivantes décrivent les meilleures pratiques pour exécuter des tests de détection de fumée. Les effets liés à l'application de ces indications varient considérablement, de l'amélioration de la communication entre les membres de l'équipe au développement de méthodes spécifiques d'utilisation des outils de test et de débogage.

Travailler avec le développeur

Les tests de détection de fumée portant sur le code modifié, vous devez travailler avec le développeur qui a écrit le code. Vous devez comprendre les éléments suivants :

  • Ce qui a été modifié dans le code. Pour comprendre la modification, vous devez également comprendre la technologie utilisée ; le développeur peut vous l'expliquer.

  • La façon dont la modification affecte les fonctionnalités.

  • La façon dont la modification affecte les interdépendances de différents composants.

Effectuer une révision de code avant d'effectuer un test de détection de fumée

Avant d'effectuer un test de détection de fumée, effectuez une révision de code portant sur toutes les modifications ayant été apportées au code. Les révisions de code constituent la méthode plus efficace pour valider la qualité du code et s'assurer qu'il ne contient pas d'erreurs ni de fautes de commande. Les tests de détection de fumée permettent de garantir que la principale zone critique ou faible identifiée par la révision de code ou l'évaluation des risques est essentiellement validée, car si elle échoue, le test ne peut pas continuer.

Installer des binaires privés sur une version debug propre

Un test de détection de fumée devant uniquement porter sur la validation des modifications fonctionnelles dans les binaires mis à jour, le test doit s'exécuter sur un environnement de test propre à l'aide des binaires de débogage pour les fichiers qui sont testés.

Remarque :

L'utilisation de binaires incompatibles est une erreur fréquente lors de la réalisation de tests de détection de fumée. Pour éviter cette erreur, lorsqu'une dépendance existe entre deux binaires mis à jour ou plus, incluez tous les binaires mis à jour dans la génération de test. Sinon, les résultats du test peuvent ne pas être valides.

Créer des générations quotidiennes

Les générations quotidiennes nécessitent que les membres de l'équipe travaillent ensemble et incitent les développeurs à rester synchronisés. Si les itérations de nouvelles générations sont différées, le délai peut provoquer facilement la désynchronisation de produits avec plusieurs dépendances. Le suivi d'un processus de création de générations quotidiennes et de réalisation de tests de détection de fumée sur les binaires modifiés ou nouveaux garantit une qualité optimale.

Pour plus d'informations sur la configuration de générations récurrentes, consultez Exécution de builds dans Team Foundation Build. Pour plus d'informations sur la vérification des générations de votre produit, consultez Comment : configurer et exécuter des tests de vérification de la génération.

Remarque :

Faites en sorte que la priorité numéro un de votre équipe soit la création d'une génération quotidienne de qualité. Si la génération est arrêtée parce qu'un archivage de code n'a pas été soumis à un test de détection de fumée (smoke test en anglais), demandez au développeur et au testeur d'arrêter leurs autres tâches jusqu'à ce que le problème soit résolu. La sanction liée à l'arrêt de la génération ne doit pas être sévère, mais elle doit accentuer le fait que la priorité numéro un de votre équipe est la création d'une génération quotidienne de qualité.

Il est inutile d'exécuter des tests exhaustifs. L'objectif des tests de détection de fumée n'est pas de garantir que le binaire est entièrement exempt d'erreur. Cela prendrait trop de temps. Les tests de détection de fumée servent à valider la génération à un haut niveau. Vous souhaitez vous assurer que les modifications apportées à un binaire ne provoquent ni une déstabilisation de la génération générale, ni des erreurs catastrophiques au niveau des fonctionnalités.

Tests Web et tests de charge

Lorsque vous générez vos tests Web et vos tests de charge, il est recommandé d'effectuer un test de détection de fumée avant d'effectuer un test long et lourd. Dans les tests Web et les tests de charge, les tests de détection de fumée sont courts et légers. Un test de détection de fumée vous permet de valider que tout est configuré correctement et que tout s'exécute comme prévu avant d'exécuter vos tests de performance ou de contrainte.

Voir aussi

Tâches

Comment : configurer et exécuter des tests de vérification de la génération

Autres ressources

Utilisation des tests Web

Utilisation des tests de charge

Exécution de builds dans Team Foundation Build

Utilisation des tests unitaires

Tâches des outils de test