GLO-4002 - Site du cours 2023

Temps estimé: 20 minutes

Questions sur les types et portées des tests

Question 1

Est-il important d'avoir des tests non-unitaires? Pourquoi?

Une bonne couverture de tests unitaires s'assure que chaque classe individuellement fait ce qu'elle doit faire. Cependant, les tests unitaires ne peuvent pas garantir le bon fonctionnement de l'application dans son ensemble.

Par exemple, ça ne peut pas garantir la performance, la sécurité, le UX, etc.

Question 2

Doit-on utiliser des mocks dans les tests de haut niveau?

Les tests unitaires de classe doivent mocker les classes externes à celle testée. C'est un peu le même principe pour les tests de plus haut niveau.

Cependant, vu que le comportement testé a une plus grosse porté, il est important de ne pas doubler l'ensemble des classes testées.

L'utilisation de doublures va donc dependre de la portée du test.

Un test medium va doubler ce qui n'est pas important pour le test. Tandis qu'un test large n'aura généralement aucune doublure.

Question 3

Quels sont les différences entre la portée d'un test et le type de test?

La portée détermine le "comment", c'est-à-dire la taille du test (small/unitaire, medium, large/end-to-end).

Tandis que le type va préciser le "pourquoi", c'est-à-dire ce qu'on désire tester (bordure, performance, acceptation).

Question 4

Comment testeriez-vous le bon fonctionnement de plusieurs services qui communiquent ensemble via un protocole REST?

Les tests end-to-end servent à tester le flow complet d'une application.

Dans le cas où nous avons qu'une seule application, c'est relativement simple: il faut tester de l'entrée jusqu'à la sortie.

Mais lorsqu'il y a plusieurs services qui communiquent ensemble, il est recommandé de tester à plusieurs niveaux.

On commence par tester du début jusqu'à la fin chaque service individuellement.

Ensuite, on ajoute une couche de tests qui parcours multiples services, pour assurer la bonne intégration entre les services.

Question 5

Nommez autant de types de test que vous pouvez.

Voici quelques exemples:

  • Performance/Stress/Load: Assure le respect d'un niveau raisonable de performance. Détecte les problèmes de configuration de servers ou de régression.
  • Securité: Utilisé pour identifier les failles de sécurité dans un système (ex. blue team/red team, penetration testing).

Visitez le lien suivant pour plus d'exemple de types de test: https://www.tutorialspoint.com/agile_testing/agile_testing_quadrants.htm