Qu'est-ce que Analyse des valeurs limites (boundary value analysis) ?

Technique de test boîte noire qui, parce que les défauts ont tendance à se concentrer aux frontières entre classes d'équivalence, teste les valeurs situées immédiatement de part et d'autre de chaque frontière (par exemple 0, 1, 100 et 101 quand les valeurs de 1 à 100 sont acceptées). Elle est efficace pour trouver des erreurs comme la confusion d'opérateurs de comparaison.

Nom japonais: 境界値分析

« Analyse des valeurs limites (boundary value analysis) » apparaît dans 3 questions d'entraînement réparties sur 1 thèmes, dont Développement logiciel et gestion de projet.

Domaine: Développement logiciel et gestion de projet

Pourquoi tester les frontières

Les branchements conditionnels des programmes sont sujets à des erreurs comme confondre « < » avec « <= » ou « > » avec « >= », ou se tromper d'une unité dans un indice de tableau, et l'effet n'apparaît qu'aux valeurs limites. Par exemple, si la spécification dit « avertir à 85 °C ou plus » mais que le code contient if (t > 85), il se comporte comme spécifié à 84 °C et à 86 °C et n'omet l'avertissement qu'à 85 °C. Tester seulement la valeur centrale de chaque classe par partitionnement en classes d'équivalence ne trouve pas de telles erreurs.

Comment choisir les valeurs

Quand les entrées entières de 1 à 100 sont acceptées, on choisit 0 et 1 à la frontière inférieure, et 100 et 101 à la frontière supérieure. Une variante plus fine teste chaque valeur limite et ses deux voisines (0, 1, 2 et 99, 100, 101). Quand il y a plusieurs catégories, comme des catégories de tarif, on choisit des valeurs de part et d'autre de chaque frontière où la catégorie change. Pour les entrées décimales, la valeur voisine est déterminée par la résolution fixée dans la spécification (comme des pas de 0,1).

Les frontières dans les logiciels proches du matériel

Les logiciels embarqués ont de nombreuses frontières numériques dans leur spécification : seuils sur les lectures d'un ADC, moment où un compteur de temporisateur repasse de son maximum à 0, moment où un tampon devient exactement plein, longueur maximale des paquets d'un protocole de communication, etc. Les erreurs de calcul sont fréquentes autour du dépassement de 255 à 0 d'un compteur 8 bits, ou de la frontière entre 32 767 et −32 768 pour un entier signé de 16 bits. On identifie ces frontières à la fois à partir des chiffres de la spécification et des plages des types de données.

S'entraîner : questions sur Analyse des valeurs limites (boundary value analysis)

Un programme fixe le prix d'entrée selon l'âge (un entier supérieur ou égal à 0) : de 0 à 17 ans, tarif enfant ; de 18 à 64 ans, tarif adulte ; à partir de 65 ans, tarif senior. Quel jeu de valeurs de test est le plus approprié pour que l'analyse des valeurs limites vérifie les frontières où la catégorie de tarif change ?

  1. A10, 40, 90
  2. B17, 18, 64, 65
  3. C18, 65
Afficher la réponse et l'explication

Réponse : B. 17, 18, 64, 65

Comme les défauts ont tendance à se concentrer aux frontières entre classes d'équivalence, l'analyse des valeurs limites teste les valeurs situées immédiatement de part et d'autre de chaque frontière. À la frontière enfant/adulte, on choisit 17 et 18, et à la frontière adulte/senior, 64 et 65, soit les quatre valeurs 17, 18, 64 et 65. Des erreurs comme écrire « < » au lieu de « <= » dans une condition peuvent passer inaperçues si l'on ne teste qu'un côté d'une frontière. 10, 40 et 90 sont des valeurs de partitionnement en classes d'équivalence choisies comme représentants de chaque catégorie, et elles ne permettent pas de vérifier les erreurs aux frontières.

Questions fréquentes

Comment combiner partitionnement en classes d'équivalence et analyse des valeurs limites ?

On les combine généralement. Le partitionnement en classes d'équivalence répartit les entrées en classes et teste un représentant de chacune, et l'analyse des valeurs limites ajoute des tests de part et d'autre des frontières entre classes. Le partitionnement seul réduit le nombre de tests, mais tend à manquer les erreurs aux frontières.

L'analyse des valeurs limites est-elle une technique de test boîte blanche ?

Elle choisit des valeurs aux frontières des plages écrites dans la spécification : c'est donc une technique de test boîte noire. Toutefois, certaines frontières, comme les tailles de tableaux et les plages des types de données internes à l'implémentation, ne figurent pas dans la spécification, si bien qu'on ajoute parfois des valeurs après avoir examiné le code source.

« Analyse des valeurs limites (boundary value analysis) » dans les explications

Questions mentionnant « Analyse des valeurs limites (boundary value analysis) » (3)

  1. Un programme fixe le prix d'entrée selon l'âge (un entier supérieur ou égal à 0) : de 0 à 17 ans, tarif enfant ; de 18 à 64 ans, tarif adulte ; à partir de 65 ans, tarif senior. Quel jeu de valeurs de test est le plus approprié pour que l'analyse des valeurs limites vérifie les frontières où la catégorie de tarif change ?
  2. Quelle description du test boîte noire est correcte ?
  3. La spécification dit « émettre un avertissement si la température est de 85 °C ou plus », mais le micrologiciel contient par erreur « if (t > 85) ». La température t est un entier. Laquelle des valeurs de test suivantes permet de détecter cette erreur ?

Termes associés

Partitionnement en classes d'équivalence (equivalence partitioning) Test boîte noire (black-box testing) Test boîte blanche (white-box testing) CI/CD (intégration continue et livraison continue) Couverture des branches (couverture des décisions) Cycle en V (modèle en V) Développement agile Développement piloté par les tests (TDD) Gestion de la valeur acquise (EVM) Méthode du chemin critique (CPM)

Retour au glossaire