Classes d'équivalence et valeurs limites

Choisir ses données de test sans tout tester : découper les entrées en classes d'équivalence valides et invalides, puis viser les valeurs aux limites de chaque classe, juste avant, dessus et juste après.

  • 23 cartes
  • 4 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Sur la frise

Quelques cartes du deck

  • Classe d'équivalence : de quoi s'agit-il ?

    Voir la réponse

    Ensemble d'entrées que le programme doit traiter de la même façon, si bien qu'une seule d'entre elles suffit à le représenter dans les tests.

    Tester 40 et 41 quand la classe est « entre 26 et 60 » n'apprend rien de plus : si l'un passe, l'autre aussi, sauf si le code a un défaut de découpage.

  • La livraison est offerte pour un panier strictement supérieur à 50 €, en euros entiers. Quelle paire de valeurs encadre la frontière ?

    • 50 € (payante) et 51 € (offerte)
    • 49 € (payante) et 50 € (offerte)
    • 50 € (offerte) et 51 € (offerte)
    • 0 € (payante) et 100 € (offerte)
    Voir la réponse

    50 € (payante) et 51 € (offerte)

    « Strictement supérieur » exclut 50 : la dernière valeur payante est 50 et la première offerte 51. Croire 50 offert, c'est lire >= à la place de > ; 0 et 100 sont loin de la frontière et laissent passer cette erreur.

  • Pour chaque limite, on teste en général la valeur …, la limite elle-même et la valeur ….

    Voir la réponse

    Pour chaque limite, on teste en général la valeur juste avant, la limite elle-même et la valeur juste après.

    Ces trois points couvrent les erreurs < pour <=, > pour >= et les décalages d'une unité.

  • Classe invalide : de quoi s'agit-il ?

    Voir la réponse

    Ensemble d'entrées que le programme doit refuser ou signaler, parce qu'elles sortent de ce qu'il accepte.

    Pour un mois de 1 à 12, « trop petit » (0 et moins), « trop grand » (13 et plus) et « pas un nombre » sont trois classes invalides distinctes, chacune à tester.

  • Cette fonction doit renvoyer vrai dès 18 ans. Quel cas de test échoue avec ce code ?

    ```java
    static boolean estMajeur(int age) {
    return age > 18;
    }
    `

    • age = 17, résultat attendu : faux
    • age = 18, résultat attendu : vrai
    • age = 30, résultat attendu : vrai
    • age = 19, résultat attendu : vrai
    Voir la réponse

    age = 18, résultat attendu : vrai

    Avec > 18, 18 est refusé : seul le test sur la limite exacte le voit. 17, 19 et 30 donnent le bon résultat avec > comme avec >=.