Les tests unitaires avec Python
En programmation, il existe différents types de test.

Il existe aussi différentes techniques:
- Le test de la boîte blanche: le testeur connaît la fonctionnalité interne. Le processus de travail comprend l’entrée, le traitement, la planification adéquate des tests et la sortie ou le rapport final.
- Test de la boîte noire: Ce type de test consiste à tester l’interface utilisateur de votre solution logicielle ainsi que les données d’entrée et de sortie. Il vérifie le scénario du système.
- Tests en boîte grise: Il s’agit d’une combinaison des tests boîte blanche et boîte noire.
Dans cet article, nous allons voir 2 types de test:
- Tests unitaires: Ce sont les tests les plus simples. Ils se concentrent sur une petite unité de code. Ces tests ce concentrent sur une fonction ou une méthode.
- Tests fonctionnels: Ces tests évaluent une fonctionnalité de votre programme. Ils simulent l’utilisation de votre programme par un utilisateur.
Tests fonctionnels
Les tests fonctionnels sont destinés à valider que le comportement fonctionnel de l’application est conforme à la spécification. Ils simulent les actions de l’utilisateur de manière manuel.
Exemple: On peut vérifier qu’un utilisateur puisse s’inscrire, se connecter, changer son mot de passe, etc.
Ces tests se font sans connaître la programmation, simplement s’assurer que tout fonctionne selon les spécifications.
Les étapes des tests fonctionnels sont assez simples.
- Déterminer la fonctionnalité à tester.
- Prévoir des données pour tester la fonctionnalité.
- Connaitre les paramètres attendus en sortie (selon les spécifications).
- Exécution du test.
Tests unitaires
Les tests unitaires est sensiblement la même chose que d’écrire votre programme. Vous faite un programme pour résoudre le problème de votre client. Les tests unitaires sont un programme pour résoudre votre problème. Ils sont souvent automatisés.
Les tests unitaires, en tant que principe de tester séparément des parties plus élémentaires d’un logiciel complexe, remonte aux débuts de l’ingénierie logicielle (voir wiki)
L’objectif principal des tests unitaires est d’isoler chaque partie du programme afin de pouvoir tester si chaque partie du logiciel fonctionne correctement sans aucune erreur. Ils permettent de vérifier le bon fonctionnement d’une partie précise d’un logiciel (appelée « unité » ou « module »).
Quelques étapes pour faire des tests unitaires:
- Utiliser une nomenclature claire et cohérente pour tous les tests
- Faire des tests déterministes (donne toujours le même résultat)
- Réduire les dépendances de tests
- Tester un seul cas d’utilisation par test unitaire
- Automatiser des tests
- Documenter les tests, résultats et problèmes
Les tests sont rédigés selon les 3 A:
- Acteur: Instancier les objets et définir les variables qui sont nécessaires au scénario de test
- Action: Appeler la méthode à tester et stocker le résultat
- Assertion: Comparer le résultat obtenu au résultat attendu
En anglais, cela donne: Arrange, Act, Assert.
Ce pattern des 3 A va nous permettre de bien nommer nos tests.
La partie Acteur est la phase d’initialisation de notre cas de test. On peut nommer notre test en commençant par « DeuxOperandes« .
La partie Action est la phase du milieu de notre cas de test. On peut continuer à nommer notre cas de test avec « QuandMultiplier« .
La partie Assertion est la dernière phase de notre cas de test. On peut terminer le nom de notre cas de test par « AlorsResultatMultiplication« .
Ce qui donne le nom de notre cas de test « DeuxOperandes_QuandMultiplier_AlorsResultatMultiplication« .
Voici quelques exemples d’utilisation
Martin
