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.
- Notions
- Questions
- Ranger et relier
- 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>=.