Test logiciel J.M. Vanel 2006
Sommaire Pourquoi tester? Catégories de tests Stratégies de test Pratique des test Caractéristiques des bons tests Gestions des tests Problèmes gênants
Pourquoi tester? ● Sérénité, qualité, fiabilité, robustesse, réutilisabilité et maintenabilité ● Non-régression ● Stratégie de développement pilotée par les tests
Test et Conception OO ● Objets réutilisables, fiables tests unitaires – Peu de dépendances – Sémantique claire – Pas trop gros ● Les classes du JDK sont des modèles
Catégories de tests ● Unitaires ● Intégration ● Applicatifs ● Performance – Rapidité, charge (stress), fuite de mémoire
Stratégies de test ● A posteriori: – examen méthodique de l'API – À partir du cahier des charges ou du manuel utilisateur ● A priori – Développement piloté par les tests (TDD) – Tester un peu, coder un peu ● Opportuniste: à l'occasion d'un bug
Pratique des tests unitaires ● Test sans tenir compte de l'application ● Déroulement du test – Création des données de test – Appel méthodes à tester – Vérifier résultats ● Utilisation de JUnit
Caractéristiques des bons tests ● Reproductible, fiable ● Convainquant ● Automatique ● Stable, tolère les changements de specs ● Résultat booléen ● Bonne couverture – Fonctionnelle (cas d'utilisation) – code
Gestions des tests ● Suite(s) de test ● Tests de non-régression – Typiquement une seule grande suite qui passe en quelques minutes au max. – Résultat booléen ● Quand passer les tests? ● cycle de vie d'un test (bug ou non implémenté, passe, régression, mise à jour) ● Rapport synthétique
Problèmes gênants ● Tester les IHM: solution Abbot JavaGUI Test FrameworkAbbot JavaGUI Test Framework ● Tester les périphériques ● Logique métier enfouie dans le code de présentation
Outils de tests ● JUnit ● Profiling – Eclipse TPTP – Netbeans ● Surveillance mémoire ● Ant ● Vérificateurs de qualité du code – PMD, Checkstyle, JDepend, etc
Merci de votre attention