chapitre 14 : Tests Unitaires Flashcards
Définit ce qu’est un test unitaire
Vérifier si une unité individuelle (fonction, classe, module) d’un programme est « apte à l’emploi »
Quel est le but d’un test unitaire ?
But : Tenter de démontrer que l’unité contredit sa spécification (résultat vs spécification)
* Les tests unitaires sont structurels.
* Il faut connaitre la structure interne du programme
Quelles sont les avantages d’un test unitaire ?
Permet de tester plusieurs unités en parallèle
Permet de tester une unité lorsque le système est encore incomplet : les tests unitaires sont incrémentaux
Explique le processus des tests unitaires
- Développement dirigé par les tests
- Tests fonctionnels initialement générés avant de commencer l’implémentation
Quand effectuer les tests unitaires ?
- Avant l’implémentation
- Force de détailler les exigences de manière implémentable
- Pendant l’implémentation
- Prévient de coder en trop: quand les tests passent, la fonctionnalité est complétée
- Pendant la réingénierie (refactoring) du code
- Assure que la nouvelle version se comporte comme l’ancienne
- Quand on programme en équipe
Quelles sont les types de tests unitaires ?
Tester pour un succès : La sortie est correcte pour une entrée correcte
Tester pour un échec : Échouer, tel qu’attendu, pour une mauvaise entrée
Test sanitaire : Certaines propriétés ou conditions restent constantes avant et après l’exécution de la méthode
Question : Un test est comme un contrat que l’unité de code doit satisfaire. Est-ce qu’un test unitaire est une exigence ?
Réponse : Non, Le test est une technique de vérification du code, faite à posteriori, contrairement aux exigences
Qu’est-ce qu’une suite de test ?
Collection de cas de test
Explique la ligne de code suivante : pop(int key, Map<int,Object> dict) : Object
Object est la signature d’une fonction qui enlève l’élément de dict indexé par key et le retourne.
Parle un peu de l’organisation du code
- Garder les classes de tests dans le même projet que le code
- Les tests sont compilés avec le reste du code
- Aide à actualiser les tests
- Grouper les tests dans le même paquet, mais un dossier différent des fichiers source
- Ex:src/ tests/ docs/ readme
- Permet aux tests d’accéder aux entités visibles seulement dans leur paquetage
Tout cas de test doit…
S’exécuter sans intervention humaine : doit être automatisée
Déterminer tout seul si l’unité qu’il test est un succès ou un échec, sans qu’un humain n’ait à interpréter les résultats
Tester exactement une seule fonctionnalité pertinente
But : Déterminer la cause de l,erreur de façon unique