web-dev-qa-db-fra.com

Qu'est-ce qu'un test de fumée et que fera-t-il pour moi?

Je pensais avoir compris qu'un serveur de fumée était utilisé pour une intégration continue afin de mesurer les performances et de tester la couverture d'un projet. Est-ce fondamentalement correct? Qu'est-ce que cela signifie de tester un programme sur la fumée? Cela signifie-t-il simplement d'appliquer continuellement les tests définis sur le serveur de fumée pour pouvoir identifier la dégradation des performances sur une période donnée?

41
ojblass

Le test de fumée est un ensemble de tests de base peu coûteux à exécuter qui précèdent les tests réels. Il vise à vérifier que la construction est déployée avec succès et que tous les env. aspects sont en cours d'exécution et prêts pour le processus de test réel. Vous éviterez ainsi de maîtriser toute votre colère de test et de vous rendre compte que vous aviez déjà effectué des tests sur un mauvais env. ou construit à tort peut-être trop tard.

58
MahdeTo

Allumez-le, voyez si de la fumée sort.

26
andreadi

Le terme provient de réparation du matériel et a été appliqué aux logiciels. Il est destiné à être un test rapide pour voir si l'application "prend feu" lors de la première utilisation. Comme indiqué ci-dessus, vous devez vous assurer que vous ne perdez pas beaucoup de temps en les exposant à quelque chose de manifestement cassé.

21
Chris Nava

Le test de fumée n'est pas un test de performance ou de prévention de la régression.

Le test de fumée est un ensemble de tests entièrement automatisés de votre plus haute priorité. Même si votre construction régulière réussit, il est possible que votre produit soit cassé de manière très fondamentale, ce qui le rend inutilisable à 100%. Les tests de fumée sont conçus pour tester ce niveau de fonctionnalité de base. Une version qui ne passe pas les tests de fumée risque fort d'échouer la plupart de vos tests automatisés.

Si un test de fumée échoue, cela signifie généralement que vous perdez votre productivité car la version n'est pas utilisable, ne peut pas être testée, etc.

L'aspect important des tests de fumée est qu'ils peuvent être exécutés rapidement. Vous devriez TOUJOURS faire des tests de fumée. De nombreux groupes disposent de ressources suffisantes pour exécuter une suite de tests plus étendue sur leurs versions d’intégration quotidienne ou continue (ce qui est une qualité), mais les tests de détection de la fumée doivent être considérés comme le strict minimum.

4
Wedge

La page wikipedia sur les tests de fumée est en fait assez bonne . Elle inclut un pointeur sur le papier de Steve McConnel ("Code Complete") dans la section des meilleures pratiques de IEEE Software 13 (4), 1996 intitulée " Construction quotidienne et test de fumée " .

Je dirais que le test de fumée est une condition préalable au test à l'unité et à d'autres formes de test: si le test de fumée échoue, il est inutile de démarrer un test unitaire.

4
avandeursen

Nous utilisons le terme test de fumée pour désigner un test qui effectue des tests de base rapides sur une application ou un produit pour le rendre admissible à des tests ultérieurs, tels que des tests d'intégration ou des fonctionnalités. Il est inutile d’effectuer des tests d’intégration ou d’autres tests avancés si l’application ne parvient pas à effectuer certaines tâches élémentaires requises pour ces tests avancés. Par exemple, nous avons une application Web et nous testons la fumée pour nous assurer que nous pouvons charger toutes les pages Web, permettre aux utilisateurs de se connecter/déconnecter, etc. Ce sont les éléments de base qui devraient fonctionner avec l'application pour la rendre testable. Si les pages ne se chargent même pas ou si les utilisateurs ne peuvent même pas se connecter, nous ne pouvons pas faire grand chose avec les tests de fonctionnalité ou d'intégration. Nous testons la fumée avec chaque construction, suivie de tests de fonctionnalité et d'intégration.

2
msvcyc

Le test de fumée est la première étape du test d'intégration. En tant que développeur, vous avez assemblé toutes les pièces et vous vous assurez que votre application sera exécutée avant de la transmettre à votre équipe d'assurance qualité pour de "vrais" tests.

Je voulais écrire plus, mais MahdeTo m'a battu pour une réponse correcte ... :)

1
Benoit Miller

* La vérification de la fonctionnalité de base et critique d'une application avant de procéder au test est connue sous le nom de test de fumée . * Lors du test de fumée, nous vérifions le flux positif des fonctionnalités de base et critiques pour vérifier si la construction est testable ou non.

0
vimal tyagi

Je suis d'accord avec certaines des réponses précédentes. Pour moi, Smoke Testing consiste simplement à vérifier si tous mes X milliers de sous-pages et de redirections fonctionnent toujours. 

Travailler signifie que le code d'état de chaque sous-page est "200 OK".

Je lance des tests de fumée le plus tard possible. Après avoir déployé mon code sur le serveur et avant de prendre ce serveur actif.

Aujourd'hui, il existe même un service en ligne (SaaS) qui fait le travail pour moi. https://www.smest.it m'aide à tester la fumée. Je viens d'entrer une fois mon domaine privé sur leur page d'accueil et depuis que mon site Web est vérifié quotidiennement. Pas de stress du tout.

0
dj_thossi