CONTINUOUS TESTING Hakima Zidouri Informatique Réseau 3 Exposé de système - 2004
Sommaire L’intérêt des tests unitaires Outils : JUnit Écrire ses tests Plug-in : Continuous Testing Les plus de Continuous Testing Démonstration Différents outils de tests unitaires Conclusion : ce qu’il faut retenir 2
L’intérêt des tests unitaires Le test unitaire : bout de code qui provoque l’exécution d’un autre bout de code et qui en analyse le résultat. L’intérêt des tests unitaires : Programmer efficacement Programmer rapidement Programmer sans régresser Programmer en équipe 3
Outils : JUnit JUnit permet de … vérifier corriger documenter Framework de test : JAVA JUnit permet de … vérifier corriger documenter … ses classes JAVA. 4
Écrire ses tests Classe à tester Classe de Test public class Utils { public int add (int a, int b) return a + b; } Classe de Test public class UtilsTest extends TestCase { public void testAdd() . . . } 5
Écrire ses tests : TestCase et Assert JUnit.framework.TestCase : définir les tests JUnit.framework.Assert : identifier les erreurs assertEquals(..) : tester l’égalité de deux types primitifs assertFalse(…) et assertTrue(…) : tester une condition booléenne assertNull(…) et assertNotNull(…) : tester si une référence est nulle assertSame(…) assertNotSame(…) : tester si deux objets se réfèrent au même nom d’objet 6
Écrire ses tests : TestSuite JUnit.framework.TestSuite : permet de réunir un ensemble de tests dans une même classe Intérêt : obtenir un test de l'application complète Méthode : Créer un objet TestSuite Appeler la méthode addTest( instance de la classe de tests ) pour chaque classe de test à ajouter Définir le main et appeler la méthode run() import junit.framework.*; public class ExecuterLesTests { public static Test suite() TestSuite suite = new TestSuite("Tous les tests"); suite.addTestSuite(MaClasseTest.class); suite.addTestSuite(MaClasse2Test.class); return suite; } public static void main(String args[]) junit.textui.TestRunner.run(suite()); 7
Plug-in : Continuous Testing (1) Continuous testing permet … d’automatiser de prioriser de filtrer … ses tests unitaires. Basé sur JUnit : mêmes informations même format 8
Plug-in : Continuous Testing (2) Help > Software Updates > Find and Install Search for new features to install Add Update Site.. Activer Continuous : Properties ( du projet ) / Continuous Testing Properties « Enable Informed Testing » et « Enable Continuous Informed Testing » 9
Les plus de Continuous testing (1) PRIORISER et FILTRER les tests : Test Filtering and Prioritization -> possibilité de spécifier un ordre d’exécution Priorités Most Recent Failures First Most Frequent Failures First Quickest Test First Round Robin Random No reordering Filtres Omit Previous Successes Most Recent Failures Deleted Informed Filter(Ct Only) Default No Filter 10
Les plus de Continuous testing (2) Notification d’erreurs et liste d’erreurs Error notification and Problems View -> mise en évidence les méthodes qui échouent lors des tests 11
Démonstration Un exemple simple : Exemple en IG : Classe à tester : TopTen.java Classe de test : TopTenTest.java Exemple en IG : Classe à tester : MaFenetre.java Classe test : MaFenetreTest.java 12
.NET NUnit C++ CppUnit / CUnit Delphi DUnit Différents outils de tests unitaires Pour les langages : .NET NUnit C++ CppUnit / CUnit Delphi DUnit 13
Conclusion : ce qu’il faut retenir L’intérêt d’utiliser des cas de tests : non régression du code rapidité clarté documentation efficace Options de Continuous testing : automatiser prioriser filtrer spécifier les erreurs 14