D'accord .... Donc, cela me rend fou, car j'essaie d'encourager l'équipe à écrire plus de tests encore ici, je suis incapable de déterminer si l'exemple suivant est considéré comme une intégration ou un cas de test fonctionnel.
Considérer ce qui suit:
Nous avons une application Web simple qui traite/expose un certain nombre de flux JSON. Chaque demande de l'utilisateur exige que notre application interroge un service externe via http (sur le backend) avant d'effectuer des transformations de données, puis de renvoyer une réponse json sérialisée.
À l'aide d'une bibliothèque 3ème partie, nous sommes en mesure d'enregistrer toutes les interactions HTTP uniques qui se produisent sur le backend et l'écrivent au système de fichiers. Ces enregistrements sont ensuite "lus" permettant à ces résultats de la requête d'être traités comme déterministe lors des tests.
Mon cas de test contient une seule assertion. C'est juste une chaîne qui contient la réponse JSON attendue pour un seul aliment. Après avoir initialisé notre candidature - nous lui permettons d'acheminer une demande avant de capter la réponse et de la comparer au JSON attendu.
1) Est-ce un test fonctionnel ou un test d'intégration?
2) Si fonctionnel, alors quelle est exactement la différence entre "Test d'intégration Big Bang et tests fonctionnels"?
1) Est-ce un test fonctionnel ou un test d'intégration?
Les tests fonctionnels et les tests d'intégration sont des classifications des tests et ils ne sont pas mutuellement exclusifs.
Dans ce cas, il est tous les deux. Les tests d'intégration sont par définition tout test qui teste plus d'un composant. Il peut être à un niveau bas pour tester deux classes qui fonctionnent ensemble, ou peuvent être des tests qui testent l'ensemble du système dans son ensemble.
Les tests fonctionnels sont des tests confirmant une fonction système donnée. Donc, si j'ai une exigence ", le système doit persister les utilisateurs de l'objet dans la base de données", le test fonctionnel pourrait vérifier cette exigence en démarrant le système, enregistrant un utilisateur, arrêtant le système, le repartant et la vérification de l'utilisateur n'existe pas. modifié.
Si vous écrivez des cas de test à partir d'une spécification d'exigence ou des histoires d'utilisateurs, j'appellerais vos cas de test "Tests fonctionnels", mais ils sont également classés comme des tests d'intégration par nature.
2) Si fonctionnel, alors quelle est exactement la différence entre "Test d'intégration Big Bang et tests fonctionnels"?
De ma compréhension "Test d'intégration Big Bang", c'est des tests d'intégration où tous les composants du système sont intégrés puis testés. L'objectif de ce test est de vous assurer que tous les composants s'intègrent correctement et l'application peut commencer. L'inconvénient de ce type de test est qu'un échec d'un étui à essai donne très peu de direction sur l'endroit où le bogue est, il est donc important d'avoir des tests d'intégration de niveau inférieurs.
Vos tests fonctionnels intégreront probablement également tous les composants du système avant de tester. Mais si les tests d'intégration de Big Bang peuvent sembler similaires, car l'ensemble du système est en cours de démarrage, ils sont conceptuellement différents.