769 votes

Qu'est-ce que test Unitaire, Test d'Intégration, test de Fumée, le Test de Régression?

Qu'est-ce que test Unitaire, Test d'Intégration, test de Fumée, des tests de Régression et quelles sont les différences entre eux? Et quels outils puis-je utiliser pour chacun d'eux?

Par exemple, j'ai utiliser JUnit,NUnit pour les tests Unitaires et les Tests d'Intégration. Il n'existe aucun Test de Fumée,la Régression, outils de Test?

1106voto

ddaa Points 19102
  • Unité de test: Spécifier et test d'un contrat de méthode unique d'une classe. Ce qui devrait avoir un très étroits et bien définis dans la portée. Dépendances complexes et les interactions avec le monde extérieur sont écrasé ou moqué.

  • L'intégration de test: Test de la bonne inter-fonctionnement de plusieurs sous-systèmes. Il est tout le spectre de là, de tests d'intégration entre les deux classes, de tests d'intégration avec l'environnement de production.

  • Le test de fumée: Un simple test d'intégration où nous venons de vérifier que, lorsque le système sous test est invoqué, il revient normalement et ne pas exploser. C'est une analogie avec l'électronique, où le premier test se produit lors de la mise sous tension d'un circuit: si elle fume, c'est mauvais.

  • Le test de régression: Un test qui a été écrit quand un bug a été corrigé. - Il s'assurer que ce bug ne se reproduise. Le nom complet est "non-régression".

Pour cela, j'ajouterai:

  • L'acceptation de test: Test d'une fonctionnalité ou d'un cas d'utilisation est correctement mis en œuvre. Il est similaire à un test d'intégration, mais avec un accent particulier sur le cas d'utilisation à fournir plutôt que sur les composants impliqués.

109voto

Gerrie Schenck Points 13421
  • Unité de test: un système automatique de test pour tester le fonctionnement interne d'une classe. Il devrait être un stand-alone de test qui n'est pas liée à d'autres ressources.
  • Test d'intégration: un test automatique est effectué sur un environnement, de manière similaire à des tests unitaires, mais avec des ressources externes (db, l'accès au disque)
  • Le test de régression: après la mise en œuvre de nouvelles fonctionnalités ou des corrections de bogue, vous re-tester des scénarios qui ont travaillé dans le passé. Ici vous couvrir la possibilité dans lequel vos nouvelles fonctions briser les fonctionnalités existantes.
  • Test de détection de fumée: premiers tests sur lequel les testeurs peuvent conclure si ils vont continuer les tests.

92voto

Jon Skeet Points 692016

Tout le monde aura peu de définitions différentes, et il y a souvent des zones d'ombre. Cependant:

  • Unité de test: est-ce un peu (aussi isolé que possible)?
  • Test d'intégration: ces deux (ou plus) les composants fonctionnent ensemble?
  • Le test de fumée: tout le système (comme près d'être un système de production possible) se complètent assez bien? (c'est à dire nous sommes raisonnablement confiants de ne pas créer un trou noir?)
  • Le test de régression: avons-nous, par inadvertance, ré-introduit des bugs nous avions déjà fixé?

52voto

AndyM Points 1339

Une nouvelle catégorie de test, je viens de prendre conscience, c'est l':

Canaries test

Un Canari de test est un système automatisé, test non-destructif qui est exécuté sur une base régulière dans un LIVE de l'environnement, de telle sorte que si jamais il échoue, quelque chose de vraiment mauvais qui s'est passé.

Les exemples pourraient être:

  • A des données qui ne devraient jamais être disponibles dans DEV/TEST paru dans VIVRE.
  • A un processus d'arrière-plan n'a pas pu exécuter
  • Un utilisateur d'ouverture de session

19voto

annakata Points 42676

apocryphes de l'historique de la trivialité: "test de détection de fumée" vient du sous-marin de l'ingénierie (héritée de la plomberie) où littérale de la fumée serait pompée dans la coque pour voir si tout cela est sorti de nouveau, ce qui serait plutôt un dramatique échec pour un sous-marin!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X