★ À maîtriser
📌 La validation vérifie que le logiciel est conforme à l'attendu, tandis que la vérification cherche à établir que le programme est correct.
📌 Les tests statiques examinent le code ou les spécifications pour trouver des défauts de conception sans exécuter le programme, tandis que les tests dynamiques exécutent le code sur des scénarios pour détecter des défaillances.
Compléments
Les trois objectifs du test logiciel sont :
Aux États-Unis, les bugs coûtent 64 milliards de dollars par an ; le test logiciel coûte 10 milliards de dollars par an, représente plus de 50 % du développement d'un logiciel critique et environ 30 % du développement d'un logiciel standard.
E.W. Dijkstra affirme dans Notes on Structured Programming (1972) que les tests peuvent révéler la présence d'erreurs, mais jamais leur absence.
Le test révèle des erreurs présentes, mais ne prouve pas leur absence.
★ À maîtriser
📌 Un test unitaire teste un module indépendamment des autres, un test d'intégration teste plusieurs modules ensemble, un test système ou de validation confronte le logiciel aux spécifications du client, et un test de régression vérifie qu'une mise à jour n'a pas introduit de bugs.
📌 Un test en boîte blanche est conçu avec accès au code, tandis qu'un test en boîte noire est conçu sans accès au code et s'appuie sur la documentation, les spécifications fonctionnelles, les cas d'utilisation et les valeurs limites.
Compléments
Cas → donnée → oracle → exécution → comparaison.
★ À maîtriser
📐 Formule - Le nombre cyclomatique se calcule par , où est le nombre d'arcs et le nombre de nœuds du graphe de flot.
Compléments
Dans un graphe de flot de contrôle, toutes les conditions doivent être décomposées, toutes les branches parcourues et les saisies doivent inclure des valeurs problématiques.
Le nombre cyclomatique indique le nombre minimal de chemins à tester et correspond au nombre de régions du graphe de flot.
★ À maîtriser
JUnit est un framework d'automatisation des tests unitaires pour Java, inventé par Kent Beck et Erich Gamma ; JUnit 5 s'utilise avec Java 8 et les versions ultérieures.
La méthodologie d'un test unitaire prépare l'environnement (SetUp), exécute les cas prévus, évalue les résultats ou effets de bord, puis nettoie l'environnement si nécessaire (TearDown).
Les tests JUnit 5 sont implémentés dans une classe de test séparée du programme testé, et les méthodes utilisent notamment @BeforeAll ou @BeforeEach pour le SetUp, @Test pour les tests, et @AfterAll ou @AfterEach pour le TearDown.
Compléments
SetUp → test → évaluation → TearDown.
JUnit 5 permet de vérifier qu'une exécution déclenche une exception attendue avec une assertion telle que assertThrows(Exception.class, fonctionTest).
La compilation et l'exécution en ligne de commande peuvent utiliser junit-platform-console-standalone, qui nécessite d'ajouter le fichier JAR au classpath ; --scan-classpath recherche les classes de test et -c permet d'en spécifier une.
JUnit 5 propose notamment @Disabled pour désactiver un test, @Order avec @TestMethodOrder pour ordonner les tests, @DisplayName pour les nommer et assertAll pour regrouper plusieurs assertions.
Assertion : validité du résultat ; assumption : validité du contexte.
Teste tes connaissances sur Tests logiciels et JUnit 5 avec 16 questions à choix multiples et corrections détaillées.
1. Quelle distinction sépare la validation de la vérification d’un logiciel ?
2. Une équipe examine des spécifications sans exécuter le programme, puis lance le logiciel sur des scénarios. Comment caractériser ces deux activités ?
Mémorisez les concepts clés de Tests logiciels et JUnit 5 avec 48 flashcards interactives.
Que distingue la validation de la vérification logicielle ?
La validation vérifie la conformité du logiciel à l’attendu, tandis que la vérification établit la correction du programme.
Que recherchent les tests statiques sans exécuter le programme ?
Ils recherchent des défauts de conception dans le code ou les spécifications.
Que font les tests dynamiques pour détecter des défaillances ?
Ils exécutent le code sur des scénarios.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches