Tests unitaires, intégration et validation
Les tests logiciels servent à vérifier, sécuriser et faire évoluer un programme avec confiance.
Objectifs et rôle
Pourquoi tester ?
- Détecter les erreurs le plus tôt possible.
- Vérifier la conformité aux spécifications.
- Réduire les risques avant livraison.
Repères essentiels
- test logiciel
- Exécution contrôlée pour vérifier un comportement attendu.
- non-régression
- Contrôle que les fonctions existantes restent correctes après changement.
- validation
- Vérification de l’adéquation au besoin utilisateur.
Unitaire et cas de test
Définition pratique
Un test unitaire vérifie une unité de code isolée, comme une fonction, une méthode ou une classe.
- Le test cible un comportement précis.
- Le test s’exécute avec des dépendances minimales.
Cas de test et jeu d’essai
Cas de test
- Entrée choisie.
- Action exécutée.
- Résultat attendu.
Jeu d’essai
- Ensemble de données représentatives.
- Plusieurs cas possibles.
- Aide à couvrir des situations variées.
Mémo
Retenir AAA : Arrange, Act, Assert. On prépare, on agit, on vérifie.
Assertions et couverture
Assertions
- Confirmer le comportement observé.
- Faire échouer le test en cas d’écart.
Couverture de code
| Aspect | Ce que cela mesure | Limite |
|---|---|---|
| Lignes | Partie du code exécutée. | Ne dit rien sur la qualité des assertions. |
| Branches | Chemins pris dans les conditions. | Ne garantit pas des cas bien choisis. |
| Zones non testées | Parties jamais exercées. | Signale un manque, pas un défaut certain. |
Intégration, système, validation
Comparer les niveaux
Tests d’intégration
- Interactions entre composants.
- Interfaces et échanges.
- Dépendances compatibles.
Tests système et validation
- Logiciel complet.
- Environnement prévu.
- Adéquation au besoin utilisateur.
Lien entre niveaux
Non-régression et stratégie
Organiser les tests
- 1
Tester tôt pendant le développement.
- 2
Combiner plusieurs niveaux de test.
Non-régression
- Vérifier l’existant après une modification.
- Détecter les effets de bord.
Mini-défi
- Pourquoi une forte couverture ne suffit-elle pas ?
- Donne un exemple de test d’intégration.
En une phrase
- Les tests unitaires vérifient une brique isolée.
- Les tests d’intégration contrôlent les échanges.
- Les tests système et la validation jugent le produit global.
- La non-régression protège les fonctionnalités déjà correctes.
