0

Pour un bref résumé:Les tests unitaires sont-ils toujours importants si les tests fonctionnels sont satisfaits?

  • Les tests unitaires sont les plus petits qui attend quelque chose à faire droit à la vue de dev.
  • Les tests fonctionnels sont ceux qui sont juste des choses attend l'avis de l'utilisateur

Si les tests fonctionnels sont déjà satisfaits, avons-nous encore besoin de faire des tests unitaires? Très probablement (utilisons le développement web comme contexte), ceci est commun en utilisant le navigateur pour voir si les choses sont bonnes en laissant d'autres utilisateurs/personnes essayer le système/l'application. Laissez-nous mettre d'autres tests comme pour les cas de bord.

+0

http://stackoverflow.com/a/2741845/5058677 – Rumid

+0

Copie possible de [Tests unitaires vs tests fonctionnels] (http://stackoverflow.com/questions/2741832/unit-tests-vs-functional-tests) – jonrsharpe

+0

This Ce n'est pas une question VS. – jen

Répondre

1

Y a-t-il des métriques que vous utilisez pour déterminer si un test fonctionnel est "satisfait"? J'ai l'impression qu'il est utile d'avoir une mesure objective pour créer une base de comparaison de types de tests, la plus commune étant la couverture de code.

En identifiant la couverture de code, il est facile de comparer les tests fonctionnels et les tests unitaires, le test fonctionnel couvre-t-il les mêmes lignes de code que le test unitaire? Si c'est le cas, c'est redondant.

Le problème est ne tient pas compte d'une tonne d'autres questions:

  • Les tests sont fonctionnels excessivement long pour courir? Sont-ils difficiles à configurer, ou sont-ils seulement exécutés dans CI? Il peut alors être judicieux de dupliquer des lignes de code dans les tests unitaires, ce qui donnera aux développeurs une rétroaction rapide.
  • S'agit-il d'un COP ou d'un projet immature? Les tests fonctionnels peuvent fournir les meilleurs résultats, car ils devraient être en mesure d'affirmer des cas d'utilisation de plus haut niveau et d'être extraits des détails de mise en œuvre. Ceci est extrêmement utile lorsque les détails de mise en œuvre sont incertains
  • La couverture de code est trompeuse, une bibliothèque centrée IO (pilote DB) pourrait facilement avoir 100% de couverture de code, en se moquant de ses dépendances. Si nous utilisons la couverture de code pour comparer les tests fonctionnels et les tests unitaires dans ce cas, il nous manquerait plusieurs dimensions de test, car les tests fonctionnels exerceront les dépendances IO. (Un test d'unité IMO dans ce cas est en fait une très petite valeur, et donne une fausse confiance dans le code lourd IO, entraînant des bogues d'intégration qui sont généralement découverts lors de cycles ultérieurs en dev, où il est plus cher de résoudre les problèmes. Dans tous les cas, les tests fonctionnels illustrent généralement quelques flux de clients.L'exercice de tous les cas de bord et la gestion des erreurs à l'aide de tests fonctionnels ont tendance à être un gaspillage de ressources et à créer d'énormes séries de tests difficiles à maintenir et à ralentir