Qu'est-ce que test Unitaire, Test d'Intégration, test de Fumée, le Test de Régression?
Ce qui est de 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 et NUnit pour les tests Unitaires et les Tests d'Intégration. Il n'existe aucun Test de détection de Fumée ou de Régression outils de Test?
- Connexes: stackoverflow.com/questions/437897/...
- D'autres ont déjà répondu, mais je tiens à ajouter que, personnellement, je pense que le Test de Fumée et des tests de Régression sont redondantes. Ils font la même chose: un test pour s'assurer que les modifications apportées au système de ne rien casser.
- Je pense qu'ils sont assez différents pour des tests de régression. Je pense qu'ils sont délibérément de lumière de poids rapides tests qui sont exécutés au démarrage pour gagner du temps, car si l'un de ces échouent, alors vous savez que c'est pas la peine de s'embêter avec les résultats de tests supplémentaires. par exemple, le client Peut-il se connecter à la base de données, est .installée nette, c'est la bonne version installée... Vous pourriez aussi avoir des pré-déploiement (nous sommes de la mise à niveau à partir de v1 et v1.1, afin de vérifier que v1 est installé) et de post-déploiement des tests de fumée.
- Des tests de fumée sont comme AndyM décrit. Mais ils sont aussi un type de test de régression.
- Connexes: stackoverflow.com/questions/4904096/...
- Connexes: softwareengineering.stackexchange.com/q/48237/83380
Vous devez vous connecter pour publier un commentaire.
De test de l'unité: 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 raillé.
Test d'intégration: 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.
Test de fumée (aka Sanity check): 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.
Test de régression: Un test qui a été écrit quand un bug a été corrigé. Il s'assure que ce bug ne se reproduise. Le nom complet est "non-régression test". Il peut aussi être un test avant de modifier une application pour vous assurer de l'application fournit le même résultat.
Pour cela, je vais ajouter:
Test d'acceptation: 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.
Système de test: Tests d'un système comme une boîte noire. Dépendances sur d'autres systèmes sont souvent moqué ou écrasé pendant le test (sinon il s'agirait plutôt d'un test d'intégration).
Visite pré-vol: les Tests sont répétés dans un environnement de type production, pour atténuer l' 's'appuie sur ma machine' syndrome. Souvent, ceci est réalisé en faisant une acceptation ou un test de fumée dans une production comme de l'environnement.
Tout le monde aura peu de définitions différentes, et il y a souvent des zones d'ombre. Cependant:
myprj
est le répertoire de projet principal, etmypkg
est situé sousmyprj
, j'ai les tests unitaires situé sousmyprj/tests/test_module1.py
, et mon colis situé sousmyprj/mypkg
. Cela fonctionne très bien pour les tests unitaires, mais je me demande si il y a une convention, je devrais suivre pour le cas où les tests d'intégration doit résider?Une nouvelle catégorie de test, je viens de prendre conscience, c'est l':
Canaries test
Un Canaries test est un système automatisé, test non-destructif qui est exécuter sur une base régulière dans un VIVRE de l'environnement, de telle sorte que si jamais il échoue, quelque chose de vraiment mauvais qui s'est passé.
Exemples pourraient être:
VIVRE.
apocryphe historique trivia: "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!
Réponse de l'un des meilleurs Sites de Tests de Logiciels Techniques:
Types de Tests Logiciels – de Compléter la Liste Cliquez Ici
Espère que ça vous sera utile 🙂
Unité de test: Vérifier que le composant particulier (c'est à dire,la classe) créé ou modifié fonctionne comme prévu. Ce test peut être manuel ou automatisé, mais ne pas aller au-delà de la limite de la composante.
Test d'intégration: Vérifier que l'interaction des composants fonctionner comme prévu. Les tests d'intégration peut être effectuée au niveau de l'unité ou le système de niveau. Ces tests peuvent être manuel ou automatisé.
Test de régression: Vérifier que les nouveaux défauts ne sont pas introduits dans le code existant. Ces tests peuvent être manuel ou automatisé.
En fonction de votre SDLC (chute d'eau, rup, agile, etc), et notamment les tests peuvent être effectués dans des "phases" ou peuvent tous être effectués, plus ou moins, dans le même temps. Par exemple, l'unité de contrôle peut être limitée à des développeurs qui puis tournez le code de testeurs pour l'intégration et les tests de régression. Cependant, une autre approche peut-être les développeurs de faire des tests unitaires et d'un certain niveau d'intégration et les tests de régression (à l'aide d'une approche TDD avec l'intégration continue et automatisée de l'unité et des tests de régression).
L'ensemble de l'outil dépendra en grande partie sur la base de code, mais il existe de nombreux outils open source pour les tests unitaires (JUnit). HP (mercure) QTP ou de Borland Silktest sont à la fois des outils pour automatiser l'intégration et les tests de régression.
de test de l'unité: le test de module individuel ou en composantes indépendantes dans une application est connu pour être de tests unitaires , les tests unitaires sera fait par le développeur.
test d'intégration: la combinaison de tous les modules et le test de l'application pour vérifier la communication et le flux de données entre les modules fonctionnent correctement ou pas , ce test a également effectué par les développeurs.
test de fumée DANS le test de fumée, ils vérifient l'application dans des eaux peu profondes et larges manière, Dans la fumée des tests de vérifier la fonctionnalité principale de l'application , si il n'y a aucun problème de blocage dans l'application qu'ils font des rapports à l'équipe de développeur , et de l'équipe de développement va le corriger et réparer le défaut, et de le redonner à l'équipe de test et maintenant, l'équipe de test permettra de vérifier que tous les modules de vérifier tat les modifications apportées dans un module à l'autre module ou pas. DANS le TEST de détection de FUMÉE les cas de test sont écrits
tests de régression l'exécution de la même des cas de test à plusieurs reprises pour s'assurer tat à l'identique module ne cause pas de défaut. Les TESTS de RÉGRESSION relève de tests fonctionnels
TESTS DE RÉGRESSION-
"Un test de régression ré-exécute les tests précédents contre le changement de logiciel pour vous assurer que les modifications introduites dans le logiciel actuel n'affectent pas la fonctionnalité du logiciel existant."
"regression test"
et"non-regression test"
. C'est la même chose.Tests unitaires est dirigé à la plus petite partie de la mise en œuvre possible. En java, cela signifie que vous êtes le test d'une seule classe. Si la classe dépend d'autres classes ce sont des faux.
Lors de vos appels de test plus d'une classe, c'est un test d'intégration.
Complète des suites de test peut prendre beaucoup de temps pour courir, ainsi, après un changement de nombreuses équipes exécuter certaines rapide pour compléter les tests permettant de détecter les ruptures. Par exemple, vous avez cassé l'Uri de ressources essentielles. Ce sont les des tests de fumée.
Tests de régression s'exécuter sur tous les de construire et de vous permettre de revoir efficacement par la capture de ce que vous briser. Tout type de test peut être des tests de régression, mais je trouve que les tests unitaires sont plus utile de trouver la source de l'anomalie.
Unité de test: Vérifier que le composant particulier (c'est à dire,la classe) créé ou modifié fonctionne comme prévu. Ce test peut être manuel ou automatisé, mais ne pas aller au-delà de la limite de la composante.
Test d'intégration: Vérifier que l'interaction des composants fonctionner comme prévu. Les tests d'intégration peut être effectuée au niveau de l'unité ou le système de niveau. Ces tests peuvent être manuel ou automatisé.
Test de régression: Vérifier que les nouveaux défauts ne sont pas introduits dans le code existant. Ces tests peuvent être manuel ou automatisé.
En fonction de votre SDLC (chute d'eau, rup, agile, etc), et notamment les tests peuvent être effectués dans des "phases" ou peuvent tous être effectués, plus ou moins, dans le même temps. Par exemple, l'unité de contrôle peut être limitée à des développeurs qui puis tournez le code de testeurs pour l'intégration et les tests de régression. Cependant, une autre approche peut-être les développeurs de faire des tests unitaires et d'un certain niveau d'intégration et les tests de régression (à l'aide d'une approche TDD avec l'intégration continue et automatisée de l'unité et des tests de régression).
Un type de test qui semble être à la peine de mentionner dans ce fil de discussion est le stress/performance/tests de charge qui pourrait être tout simplement mettre que de trouver les limites au-delà desquelles un certain morceau de logiciel pauses.
Notez qu'en termes d'outillage, il est essentiel de déterminer avec précision la portée de ce que l'on propose à des tests de stress à partir d'un point de vue du système.
Par exemple, dans le cas d'une "application web" stress tests peuvent inclure dans son champ d'application l'application de serveur web lui-même et donc l'outillage pourrait intervenir sur cette fin.
Voici un joli post sur http tests de charge
Tests Unitaires:-
unité de test est habituellement effectué par les développeurs de côté,où en tant que testeurs sont en partie évolué dans ce type de test où l'essai est effectué, unité par unité.
En java, Junit cas de test peut également être possible de tester si le code écrit est parfaitement conçu ou non.
Des Tests D'Intégration:-
Ce type de test n'est possible après l'unité de l'essai de tous les/certains composants sont intégrés.Ce type de test sera assurez-vous que lorsque les composants sont intégrés,ils affectent-ils les uns des autres capacités de travail ou de functionalists.
Test De Détection De Fumée:-
Ce type de test est fait à la dernière lorsque le système est intégré avec succès et prêt à aller sur le serveur de production.
Ce type de test fera en sorte que toutes les fonctionnalités importantes du début à la fin fonctionne bien et que le système est prêt à être déployé sur le serveur de production.
Tests De Régression:-
Ce type de test est important de tester que les indésirables défauts ne sont pas présents dans le système lors de développeur de correction de quelques problèmes.
Ce test assurez-vous également que tous les bugs sont résolus avec succès et de ce fait, pas d'autres problèmes sont survenus.
Tests unitaires: Il effectue toujours par le développeur après leur développement fait pour trouver de la question de leur mise à l'essai du côté avant de faire toute exigence prêt pour l'assurance qualité.
Des Tests d'intégration: Cela signifie testeur de vérifier module sous-module de vérification lorsque certaines données/sortie de fonction sont les disques d'un module à un autre module. Ou dans votre système si vous utilisez outil tiers qui, à l'aide de votre système de données pour les intégrer.
Test de détection de fumée: testeur réalisée afin de vérifier la configuration de haut niveau de tester et d'essayer de trouver de spectacle bouchon de bug avant de modifications ou de code va vivre.
Tests de régression: Testeur de régression effectuée à des fins de vérification de la fonctionnalité existante en raison des changements mis en œuvre dans le système pour les nouveaux d'amélioration ou de modifications dans le système.
De la fumée et de la santé mentale de test sont effectuées après un logiciel de construction afin d'identifier si pour démarrer le test. La santé mentale peut ou ne peut pas être exécuté après le test de détection de fumée. Ils peuvent être exécutées séparément ou en même temps - santé mentale étant immédiatement après la fumée.
Parce que la santé mentale test est plus en profondeur et prend plus de temps, dans la plupart des cas, il est bien worthed être automatisée.
Test de détection de fumée prend généralement pas plus de 5 à 30 minutes pour l'exécution. Il est plus général: il vérifie la présence d'un petit nombre de fonctionnalités de base de l'ensemble du système, afin de vérifier la stabilité du logiciel est assez bon pour des tests supplémentaires et qu'il n'y a pas de questions, le blocage de l'exécution de l'essai prévu des cas.
Santé mentale test est plus détaillée que la fumée et peut prendre de 15 minutes à une journée entière, selon l'échelle de la nouvelle construction. C'est un plus spécialisés type de test d'acceptation, effectuée après la progression ou la ré-analyse. Il vérifie les caractéristiques essentielles d'un certain nombre de nouvelles fonctionnalités et/ou de corrections de bugs avec certains proches fonctions, afin de vérifier qu'ils fonctionnent comme à l'exigence de la logique de fonctionnement, avant les tests de régression peut être exécuté à une échelle plus importante.
Quelques bonnes réponses déjà, mais je voudrais affiner:
Unité de test est la seule forme de tests en boîte blanche ici. Les autres sont en boîte noire. Tests en boîte blanche signifie que vous savez l'entrée, vous connaissez les rouages du mécanisme d'inspecter, et vous connaissez la sortie. Avec la boîte noire test, tu sais seulement ce que l'entrée et la sortie doit être.
Donc clairement le test unitaire est le seul tests en boîte blanche ici.
Test de régression - Est un type de SW test où nous essayons de couvrir ou de vérifier la Correction de bug. les fonctionnalités autour de la correction de bug ne devrait pas recevoir changé ou modifié en raison du Correctif fourni. Les problèmes trouvés dans de tels processus sont appelés les Problèmes de Régression.
Test de détection de fumée : Est un type de test effectué pour décider de l'accepter ou de la Construction/Logiciel à des fins de contrôles de qualité .
Test de fumée a été expliqué ici déjà et est simple. Le test de régression relève de test d'intégration.
Tests automatisés peuvent être divisés en 2.
Test unitaire et Test d'Intégration. (c'est tout ce qui compte)
Je qualifierais d'utiliser l'expression "test long"(LT) pour tous les tests comme le test d'intégration, test fonctionnel, tests de régression, test de l'INTERFACE utilisateur , etc. Et de l'unité de test "test".
Un LT exemple pourrait être, automatiquement le chargement d'une page web, en vous connectant sur le compte et l'achat d'un livre. Si le test réussit, il est plus susceptible de s'exécuter sur le site en ligne de la même façon(d'où le "mieux dormir" de référence). Long = distance entre la page web(start) et de la base de données(à la fin).
Et c'est un grand article à discuter des avantages de des tests d'intégration(test long) sur les tests unitaires
source: https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-testing
De manière simplifiée.
De test de l'unité: d'Essai d'un seul morceau de code, l'algorithme, de classe ou d'un système. Ce test doit être indépendant et les dépendances devraient être moqué ou écrasé.
Test d'intégration: doit tester si le composant, d'un algorithme, la classe ou le système fonctionne bien lorsqu'il est utilisé par d'autres composants, les tests d'Intégration n'est pas pour tester la façon dont le système de travail (comportement), il convient de tester si le système fonctionne bien.
Test de fumée: Est une très petite série de test qui doivent être exécutés d'abord une série de tests, il suffit de s'assurer que la plupart des caractéristiques essentielles du système fonctionne même après une mise à niveau.
Test de régression: Est la procédure de contrôle des modifications aux programmes d'ordinateur pour vous assurer que les plus âgés de la programmation fonctionne encore avec les nouvelles modifications. Est un plus grand ensemble de tests de tests de fumée.
Si vous voulez en savoir plus à propos de test d'intégration, vous pouvez aller à ce cours dans Udemy, il a un bon de réduction.
https://www.udemy.com/testes-de-integracao-com-spring-boot/?couponCode=TISB_ODESC2019