Fiche de révision : Techniques de test logiciel

Plan du Cours

  1. Fondements du test dynamique
  2. Problématique et arrêt des tests
  3. Boîte noire et boîte blanche
  4. Génération des jeux de test
  5. Partitionnement en classes d’équivalence
  6. Tables de décision
  7. Tests aux limites
  8. Diagrammes états-transitions
  9. Bilan des tests boîte noire

1. Fondements du test dynamique

★ À maîtriser

📌 Les tests dynamiques exécutent le programme avec des valeurs d’entrée et observent son comportement, tandis que les tests statiques analysent le produit sans l’exécuter.

  • Un processus de test dynamique fournit des données de test au programme, exécute le programme, compare le résultat à la spécification par un oracle, puis produit un verdict.

Compléments

  • Les principales difficultés du test dynamique sont:
    • Générer les données de test
    • Construire l’oracle
    • Poser le diagnostic
    • Trouver le critère d’arrêt

Astuce mémo

Entrée → exécution → oracle → verdict

2. Problématique et arrêt des tests

Notions clés & Définitions

  • Ensemble de test : Sous-ensemble fini du domaine d’entrée D, beaucoup plus petit, choisi pour représenter les données à tester.

Points essentiels

📐 Formule — L’objectif idéal serait de garantir, pour toute donnée valide x∈Dx \in D, que P(x)=S(x)P(x)=S(x), où DD est le domaine d’entrée, PP le programme et SS sa spécification.

📌 Le test exhaustif est généralement impossible parce que le domaine d’entrée peut être trop grand ou infini, et que l’exécution de tous les cas serait trop longue et coûteuse.

  • Un critère d’arrêt des tests peut être l’exécution de tous les cas prévus, l’atteinte d’un critère de couverture, l’atteinte d’un seuil d’erreurs ou l’épuisement des ressources.

Astuce mémo

Domaine trop vaste → tests exhaustifs impossibles → échantillon fini

3. Boîte noire et boîte blanche

★ À maîtriser

📌 Le test fonctionnel ou boîte noire utilise la description des fonctionnalités et les spécifications du programme sans utiliser son code interne.

📌 Le test structurel ou boîte blanche utilise la structure interne du programme, notamment ses conditions, ses boucles et ses flux de données.

Compléments

  • Les tests boîte noire peuvent utiliser des spécifications formelles, des modèles UML ou une description en langage naturel.

  • Les modèles utiles aux tests boîte blanche sont:

    • Modèle de contrôle
    • Modèle de données
    • Modèle de flot de données
    • Modèle de dépendance entre modules

Astuce mémo

Boîte noire : spécification ; boîte blanche : structure interne

4. Génération des jeux de test

★ À maîtriser

  • La génération déterministe peut s’appuyer sur:

    • Classes d’équivalence
    • Tests aux limites
    • Tables de décision
    • Diagrammes d’états
    • Critères de couverture
  • Une génération semi-aléatoire guidée par l’expérience consiste à recenser les erreurs possibles, s’appuyer sur un modèle d’erreurs, développer des tests couvrant ce modèle, puis maintenir le modèle.

Compléments

  • Les jeux de test peuvent être générés automatiquement de manière aléatoire, aléatoire contrainte, par mutation ou par test statistique.

5. Partitionnement en classes d’équivalence

Notions clés & Définitions

  • Classe d’équivalence : Regroupe des données qui doivent avoir le même comportement vis-à-vis de la propriété testée et donc la même probabilité de générer une erreur.

★ À maîtriser

  • 🔄 Le partitionnement suit ces étapes:

    1. Identifier les entrées valides et invalides
    2. Construire les classes d’équivalence
    3. Choisir des tests couvrant les classes
    4. Répéter jusqu’à couvrir toutes les classes
  • Pour un numéro de département métropolitain compris entre 1 et 95, les classes sont [1–95] valide, [minInt–1[ invalide et ]95–MaxInt] invalide, avec comme tests 11, -30 et 100.

Compléments

📌 Pour une condition définissant un intervalle, on construit une classe valide dans l’intervalle et deux classes invalides, une à chaque extrémité de l’intervalle.

📌 Pour une condition définissant N valeurs, on construit une classe valide et deux classes invalides correspondant à une donnée vide et à une donnée dépassant N.

Astuce mémo

Classe valide ≠ classe invalide : comportement attendu différent

6. Tables de décision

Notions clés & Définitions

  • Table de décision : Représente de façon concise les actions effectuées selon les combinaisons de valeurs de conditions d’entrée.

★ À maîtriser

  • Pour tester une table de décision, on génère un cas de test par colonne, en choisissant des valeurs conformes aux conditions et valeurs du variant.

📐 Formule — Si les conditions C1, C2 et C3 ont respectivement 3, 2 et 4 valeurs, le nombre de combinaisons possibles est 3×2×4=243 \times 2 \times 4 = 24.

Compléments

📌 La méthode « don’t care » simplifie une table en regroupant des variants lorsque la valeur d’une condition n’influence pas l’action produite.

  • Pour construire une table de décision, on identifie les conditions, identifie les actions, énumère les combinaisons possibles, puis simplifie par « don’t care » si nécessaire et vérifie la consistance et la complétude.

Astuce mémo

Conditions → combinaisons → actions → variants de test

7. Tests aux limites

Notions clés & Définitions

  • Test aux limites : Sélectionne des valeurs situées sur les frontières des classes d’équivalence, car les erreurs apparaissent souvent aux frontières.

★ À maîtriser

  • Pour chaque classe d’équivalence, on génère une valeur médiane et une ou plusieurs valeurs aux bornes, en utilisant une mesure adaptée si la donnée n’est pas directement numérique.

  • Pour une entrée comprise entre 1 et 95, les représentants avec large couverture sont 1, 2, 48, 94 et 95 dans la classe valide, -3000, -1 et 0 dans la classe inférieure, puis 96, 97 et 1000 dans la classe supérieure.

📌 Pour une condition conjonctive de M prédicats, on choisit un cas où tous les prédicats sont juste vrais, puis M cas où un seul prédicat est juste faux à chaque fois.

Compléments

  • Le test aux limites détecte notamment:
    • Mauvais opérateurs relationnels
    • Erreurs de borne
    • Échanges de paramètres
    • Frontières manquantes
    • Boucles mal réglées
    • Mauvaise gestion des indices de tableau

Astuce mémo

Frontière mal traitée → erreurs de borne, d’indice ou d’opérateur

8. Diagrammes états-transitions

Notions clés & Définitions

  • Transition : Changement d’un état à un autre provoqué par des conditions programmées et des événements externes.
  • Diagramme états-transitions : Représente de manière synthétique les relations entre les états d’une application, les événements et les transitions.

★ À maîtriser

  • 🔄 La construction d’un diagramme états-transitions suit ces étapes:
    1. Définir un état initial
    2. Recenser les événements possibles
    3. Définir les transitions d’états
    4. Définir les états finaux

📌 Les cas de test issus d’un diagramme états-transitions peuvent couvrir tous les états, toutes les transitions ou des séquences particulières et invalides.

Compléments

  • Les diagrammes états-transitions sont utiles pour les applications sensibles ou fortement interactives, s’automatisent bien, mais peuvent subir une explosion combinatoire.

Astuce mémo

État initial → événements → transitions → états finaux

9. Bilan des tests boîte noire

★ À maîtriser

  • Les tests boîte noire se concentrent sur les fonctionnalités du logiciel et utilisent les spécifications pour définir les cas de test.

  • Les tests boîte noire peuvent révéler des oublis de réalisation et, lorsqu’ils sont mis en œuvre tôt, contribuer à préciser les spécifications et éviter des erreurs de réalisation.

📌 Les tests boîte noire ne détectent pas nécessairement les erreurs de réalisation portant sur des cas d’utilisation très particuliers qui ne sont ni nominaux ni situés aux limites.

Compléments

  • Les techniques de réduction de la combinatoire sont:
    • Partitionnement en classes d’équivalence
    • Tables de décision
    • Tests aux limites
    • Diagrammes états-transitions

Astuce mémo

Fonctionnalités bien couvertes, mais cas internes particuliers invisibles

Tableaux de synthèse

Comparaison boîte noire et boîte blanche

DimensionBoîte noireBoîte blanche
Base de générationFonctionnalités et spécificationsStructure interne du programme
Modèles utilisésSpécifications formelles, UML, langage naturelContrôle, données, flot de données, dépendances
Objectif fréquentCouvrir les comportements fonctionnelsCouvrir le code et ses structures
Limite principaleCas internes particuliers potentiellement invisiblesNécessite l’accès au code ou à son modèle

Teste tes connaissances

Teste tes connaissances sur Techniques de test logiciel avec 27 questions à choix multiples et corrections détaillées.

1. Quelle distinction caractérise le mieux les tests dynamiques et les tests statiques ?

2. Dans quel ordre général un processus de test dynamique se déroule-t-il ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Techniques de test logiciel avec 50 flashcards interactives.

Quelle différence principale existe entre tests dynamiques et tests statiques ?

Les tests dynamiques exécutent le programme, les tests statiques l'analysent sans exécution.

Quelles étapes comprend un processus de test dynamique ?

Fournir des données, exécuter, comparer au spécification, produire un verdict.

Quelle égalité idéale doit être garantie pour toute donnée valide x∈Dx \in D ?

P(x)=S(x)P(x)=S(x)

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches