Les Tests en Génie Logiciel
Transcription
Les Tests en Génie Logiciel
Les Tests en Génie Logiciel Les Tests en Génie Logiciel Jean-Michel Richer [email protected] http://www.info.univ-angers.fr/pub/richer Université d’Angers LERIA - Laboratoire d’Etudes et de Recherche en Informatique d’Angers 2008 1 / 23 Les Tests en Génie Logiciel Plan Plan 1 Cours 2 Mise en application 2 / 23 Les Tests en Génie Logiciel Cours Pourquoi tester le logiciel • la réalisation d’un logiciel demande beaucoup d’efforts et d’attention. 3 / 23 Les Tests en Génie Logiciel Cours Pourquoi tester le logiciel • la réalisation d’un logiciel demande beaucoup d’efforts et d’attention. • le nombre de concepts / d’objets à manipuler peut vite devenir problématique 4 / 23 Les Tests en Génie Logiciel Cours Pourquoi tester le logiciel • la réalisation d’un logiciel demande beaucoup d’efforts et d’attention. • le nombre de concepts / d’objets à manipuler peut vite devenir problématique • les tests assurent la cohérence et la fiabilité du logiciel 5 / 23 Les Tests en Génie Logiciel Cours Les différents types de tests On peut distinguer au moins 3 types de tests : • tests de validation, cohérence des algorithmes 6 / 23 Les Tests en Génie Logiciel Cours Les différents types de tests On peut distinguer au moins 3 types de tests : • tests de validation, cohérence des algorithmes • tests de (non) régression 7 / 23 Les Tests en Génie Logiciel Cours Les différents types de tests On peut distinguer au moins 3 types de tests : • tests de validation, cohérence des algorithmes • tests de (non) régression • tests de performance 8 / 23 Les Tests en Génie Logiciel Cours Les tests de validation • assurent que l’implantation des algorithmes est fiable et correspond àce qui était demandé 9 / 23 Les Tests en Génie Logiciel Cours Les tests de validation • assurent que l’implantation des algorithmes est fiable et correspond àce qui était demandé • difficile à mettre en oeuvre 10 / 23 Les Tests en Génie Logiciel Cours Les tests de validation • assurent que l’implantation des algorithmes est fiable et correspond àce qui était demandé • difficile à mettre en oeuvre • pas toujours nécessaires voire inutile 11 / 23 Les Tests en Génie Logiciel Cours Les tests de (non) régression • assurent que le logiciel fonctionne correctement 12 / 23 Les Tests en Génie Logiciel Cours Les tests de (non) régression • assurent que le logiciel fonctionne correctement • assurent que toute modification d’un code correct n’introduit pas d’erreur 13 / 23 Les Tests en Génie Logiciel Cours Les tests de (non) régression • assurent que le logiciel fonctionne correctement • assurent que toute modification d’un code correct n’introduit pas d’erreur • peuvent être écrits avant le code (cas des méthodes agiles) 14 / 23 Les Tests en Génie Logiciel Cours Les tests de (non) régression • assurent que le logiciel fonctionne correctement • assurent que toute modification d’un code correct n’introduit pas d’erreur • peuvent être écrits avant le code (cas des méthodes agiles) • peuvent être mis en oeuvre de manière automatique (framework xUnit) ou à la main (design for testability) 15 / 23 Les Tests en Génie Logiciel Cours Les tests de (non) régression en pratique • pour chaque module, pour chaque classe et pour chaque méthode il faut créer un test 16 / 23 Les Tests en Génie Logiciel Cours Les tests de (non) régression en pratique • pour chaque module, pour chaque classe et pour chaque méthode il faut créer un test • le test a pour but de vérifier le comportement de la méthode 17 / 23 Les Tests en Génie Logiciel Cours Les tests de (non) régression en pratique • pour chaque module, pour chaque classe et pour chaque méthode il faut créer un test • le test a pour but de vérifier le comportement de la méthode • régulièrement on lance les tests, en cas d’erreur on envoie un message aux programmeurs 18 / 23 Les Tests en Génie Logiciel Cours Les tests de performance • assurent que l’implantation est efficace 19 / 23 Les Tests en Génie Logiciel Cours Les tests de performance • assurent que l’implantation est efficace • recherchent les paramètres qui rendent les algorithmes les plus performants possibles 20 / 23 Les Tests en Génie Logiciel Cours Les tests de performance • assurent que l’implantation est efficace • recherchent les paramètres qui rendent les algorithmes les plus performants possibles • demandent généralement beaucoup de temps de calcul (cluster) 21 / 23 Les Tests en Génie Logiciel Mise en application Mise en application 22 / 23 Les Tests en Génie Logiciel Mise en application • tests de non régression (make) • tests de performance (utilisation make, shell, awk, gnuplot) 23 / 23