web-dev-qa-db-fra.com

Quels sont les tests d'unité et les tests d'intégration, et quels autres types de tests devrions-je savoir?

J'ai vu d'autres personnes mentionnent plusieurs types de tests sur le débordement de la pile.

Ceux que je puisse rappeler sont des tests d'unité et des tests d'intégration. Surtout les tests unitaires sont beaucoup mentionnés. Quel est exactement le test unitaire? Qu'est-ce que les tests d'intégration? Quelles autres techniques d'essais importantes devrais-je être au courant?

La programmation n'est pas mon métier, mais j'aimerais que cela soit un jour; des trucs sur la production, etc. sont également accueillis.

42
Daniel Sloof

devrais-je être au courant de tout autre test important de mon code?

Ce sont quelques-unes des différents types de test, selon différentes phases du cycle de vie du logiciel:

  • Test de l'unité: Est-ce que ce peu de code fonctionne?
  • Suite Test Unitaire: une séquence de nombreux tests d'unités (pour de nombreux petits bits de code)
  • Test d'intégration: Testez si deux composants fonctionnent ensemble lorsqu'ils sont combinés (ou "intégrés")
  • test système: Testez si tous Les composants fonctionnent ensemble quand ils sont combinés (ou "intégrés")
  • test d'acceptation: Ce que le client doit décider de Where, il souhaite vous payer (le test système découvre si le logiciel fonctionne comme conçu ... Le test d'acceptation découvre si "comme conçu" est ce que le client souhaitait)

Il y a plus:

  • Test de convivialité
  • Test de performance
  • Test de chargement
  • Test de stress

Et, beaucoup plus ... Le logiciel de test est presque aussi large qu'un logiciel d'écriture.

25
ChrisW

Il existe différents niveaux de test correspondant à la stade où vous vous trouvez dans le cycle de vie du développement du logiciel. Le niveau le plus élevé est l'analyse des exigences et le niveau le plus bas est la mise en œuvre de la solution.

Qu'est-ce que le test unitaire?

  • Le test unitaire évalue le logiciel en ce qui concerne sa mise en œuvre.
  • Nous nous concentrons sur les unités de test d'un programme (c'est-à-dire des méthodes individuelles) et de ne pas tenir compte de l'OMS qui appelle/utilise ces unités. Par conséquent, nous traitons essentiellement chaque unité comme unité autonome.
  • Il existe de nombreux outils de test unitaires, l'un des plus populaires est Junit.

  • Lorsque vous effectuez des tests unitaires, nous voulons construire un ensemble de tests (ensemble de cas de test) qui répondent à un certain critère de couverture. Cela pourrait être des critères de couverture structurelle (NC, CE, PPC==) ou critères de débit de données (ADC, AUC, ADPCC, etc.)

  • Notez que le test de l'unité est le niveau de test le plus bas, car il évalue les unités de code réelles produites après la mise en œuvre. Ce type de test effectué avant le test d'intégration.
  • Des tests d'unités efficaces contribuent à garantir que les tests d'intégration ne seront pas douloureux, car il est moins cher et plus facile à repérer et à réparer des bugs lors du test de l'unité

Quel est le test d'intégration?

  • Des tests d'intégration sont nécessaires pour garantir que notre logiciel fonctionne toujours lorsque deux composants ou plus sont combinés.
  • Vous pouvez effectuer des tests d'intégration avant la fin du système.
  • Le problème de la commande d'intégration de classe (CITO) est associé à des tests d'intégration. CITO a à voir avec la stratégie d'intégration des composants. Il existe de nombreuses solutions proposées à CITO telles que l'intégration de haut down, l'intégration ascendante, etc. L'objectif principal est d'intégrer les composants d'une manière qui permet des tests efficaces et la moindre quantité d'encombrement, car l'écriture n'est pas toujours facile et prend du temps . Notez qu'il s'agit toujours d'une zone de recherche active!
  • Les tests d'intégration sont effectués après des tests unitaires.
  • Il est souvent le cas que les composants individuels fonctionnent bien, mais lorsque tout est mis ensemble, nous voyons soudainement des bugs apparaissant en raison d'incompatibilités/problèmes avec des interfaces.

D'autres niveaux d'essais comprennent :

  1. Les tests de régression

    • Ce type de test est donné beaucoup d'importance, car les développeurs commettent des modifications du logiciel assez souvent généralement, nous souhaitons donc nous assurer que ces changements n'introduisent pas de bugs.
    • La clé du test de régression efficace consiste à limiter la taille des tests de régression afin qu'il ne prenne pas trop de temps pour terminer les tests, sinon l'ensemble de test ne finira pas de fonctionner avant le prochain commit. Nous devons également choisir des cas de test efficaces qui ne manqueront pas de bugs.
    • Ce type de test doit être automatisé.
    • Il est important de noter que nous pouvons toujours continuer à ajouter plus de machines afin de contrer la quantité croissante de tests de régression, mais à un moment donné, le compromis n'en vaut pas la peine.
  2. Test d'acceptation

    • Avec ce test, nous évaluons des logiciels par rapport aux exigences fournies, nous voyons essentiellement si le logiciel que nous avons produit répond aux exigences que nous avons données.
    • C'est généralement le dernier type de test effectué dans la séquence d'activités de développement de logiciels. En conséquence, ce type de test est effectué après des essais d'unité et des tests d'intégration.
6
rrazd

Le test unitaire est simplement l'idée d'écrire (espérons-le) de petits blocs de code pour tester des parties indépendantes de votre application.

Par exemple, vous pourriez avoir une application de calculatrice et vous devez vous assurer que la fonction d'addition fonctionne. Pour ce faire, vous écrivez une application distincte qui appelle directement la fonction d'addition. Ensuite, votre fonction de test évaluera le résultat pour voir s'il y a des Jives avec ce que vous attendiez.

Cela appelle essentiellement vos fonctions avec des entrées connues et la vérification de la sortie est exactement ce que vous attendiez.

3
NotMe

Les deux premiers résultats de la recherche sur Google pour "Types de tests" LOOKE

Ceux que je pense sont les plus pertinents. voir ici .

2
Gishu

Ce fut une entrée je l'ai écrit: différents types de tests automatisés .

2
Graviton

Test de l'unité: Les tests effectués à une unité ou à un plus petit logiciel. Fait pour vérifier s'il satisfait à sa spécification fonctionnelle ou à sa structure de conception prévue.

Test d'intégration : Tester les modules associés ensemble pour sa fonctionnalité combinée.

Test de régression : Test de l'application pour vérifier que les modifications n'ont pas provoqué d'effets inattendus.

Test de fumée: Le test de fumée est vérifié si la construction est testable ou non.

1
krishna