Analyse de la valeur limite – Une technique de test boîte noire
Nous savons déjà que le test boîte noire consiste à valider le système sans connaître sa conception interne. Nous avons également discuté des pièges du partitionnement par équivalence et de la façon dont ils peuvent échouer aux frontières des partitions. Si vous n’avez pas lu notre article sur le partitionnement par équivalence, je vous recommande vivement de le lire avant de lire celui-ci. Dans cet article, nous aborderons une autre technique de test de la boîte noire connue sous le nom de Boundary Value Analysis. Nous verrons également comment cette technique complète le partitionnement par équivalence.
- Qu’est-ce que l’analyse de la valeur limite ?
- Comment faire l’analyse de la valeur limite ?
- Analyse de la valeur limite avec le partitionnement par équivalence
- Embûches de l’analyse de la valeur limite
Qu’est-ce que l’analyse de la valeur limite ?
La base de l’analyse de la valeur limite (BVA) est de tester les limites aux partitions (Rappelez-vous le partitionnement par équivalence !). La BVA est une extension du partitionnement d’équivalence. Cependant, elle n’est utilisable que lorsque la partition est ordonnée, constituée de données numériques ou séquentielles. Les valeurs minimales et maximales d’une partition sont ses valeurs limites.
Nous avons vu qu’il y a de fortes chances de trouver les défauts aux limites d’une partition (E.g., un développeur utilisant >10 au lieu de >= 10 pour une condition). Le partitionnement par équivalence seul n’était pas suffisant pour attraper de tels défauts. Il est donc apparu nécessaire de définir une nouvelle technique capable de détecter les anomalies aux frontières de la partition. C’est ainsi que l’analyse de la valeur limite est entrée en scène.
L’analyse de la valeur limite peut s’effectuer à tous les niveaux de test, et son principalement utilisée pour une plage de nombres, de dates et de temps.
Comment faire l’analyse de la valeur limite?
Maintenant que nous avons une idée sur l’analyse de la valeur limite, comprenons comment dériver les conditions de test en utilisant cette technique. Nous allons nous référer au même exemple de formulaire de gymnastique (Référez-vous à notre article sur le partitionnement d’équivalence) où nous devons entrer Age.
La première étape de l’analyse de la valeur limite est de créer le partitionnement d’équivalence, qui ressemblerait à ce qui suit.
Maintenant, concentrez-vous sur la partition valide, qui va de 16 à 60. Nous avons une approche en 3 étapes pour identifier les limites:
- Identifier la valeur limite exacte de cette classe de partition – qui est 16 et 60.
- Découvrir la valeur limite qui est une de moins que la limite exacte – qui est 15 et 59.
- Obtenir la valeur limite qui est une de plus que la limite précise – qui est 17 et 61.
Si nous les combinons toutes, nous obtiendrons les combinaisons ci-dessous pour la valeur limite du critère d’âge.
Conditions limites valides : Age = 16, 17, 59, 60
Conditions limites invalides : Age = 15, 61
Il est simple de voir que les conditions limites valides relèvent de la classe de partition valide, et que les conditions limites invalides relèvent de la classe de partition invalide.
Pouvez-vous comprendre pourquoi nous n’avons pas utilisé 16,1, 15,9, 59,9 et 60,1 comme valeurs d’incrémentation et de décrémentation des limites ? C’est un concept dont l’explication est insuffisante dans la plupart des articles. Prenons donc un autre exemple pour l’expliquer. Supposons que vous saisissiez votre poids sur un site Web. En fonction de votre poids et de votre taille, le site vous indiquera l’indice de masse corporelle (IMC). Vous pouvez saisir des valeurs comprises entre 30 et 150 kg dans le champ de saisie du poids. Le champ de saisie du poids n’autorise que les nombres naturels, c’est-à-dire les nombres entiers positifs !
Dans ce cas, si vous créerez les limites en utilisant la même méthode – vous obtiendrez
Conditions limites valides : Age = 30, 31, 149, 150
Conditions limites invalides : Age = 29, 151
Envisageons maintenant le même scénario, mais le champ de saisie du poids autorise les nombres décimaux jusqu’à 1 décimale. Dans ce cas, les conditions limites seront les suivantes :
Conditions limites valides : Age = 30, 30.1, 149.9, 150
Conditions limites invalides : Age = 29.9, 150.1
Vous avez vu la différence ? Nous prenons la valeur minimale acceptable de chaque côté de la limite. Si nous prenons la valeur de 30,01, nous finissons par tester le logiciel pour deux décimales alors que l’exigence est d’une décimale. C’est une condition de test séparée et ne doit pas être mélangée avec la valeur limite.
La mesure de la couverture limite pour une partition peut se produire comme le nombre de valeurs limites testées divisé par le nombre total de valeurs limites de test identifiées.
Analyse de la valeur limite avec le partitionnement d’équivalence
Nous avons obtenu une compréhension juste de l’analyse de la valeur limite maintenant. Alors, voyons comment nous pouvons la combiner avec le partitionnement d’équivalence pour obtenir un ensemble complet de conditions de test.
Retournons à notre exemple précédent, examinons à nouveau le diagramme.
L’intervalle est de 16 – 60, et l’analyse de la valeur limite nous donne des conditions de test comme 15, 16, 17, 59, 60, 61. Si vous regardez de près, ne pensez-vous pas que nous avons déjà couvert le partitionnement par équivalence valide en couvrant 17, 59, et le partitionnement par équivalence invalide en couvrant 15 et 61 ? Après tout, le partitionnement d’équivalence dit que nous devons choisir un nombre entre 16 et 60 pour une partition valide et moins de 16 ou plus de 60 pour une partition invalide. Donc, si la valeur limite couvre déjà le partitionnement d’équivalence, pourquoi avons-nous besoin du partitionnement comme technique distincte ? C’est un concept qui n’est pas clair pour la plupart des gens, et peu d’articles l’ont expliqué clairement.
Théoriquement, la valeur limite a effectivement couvert le partitionnement d’équivalence, mais nous avons toujours besoin d’un partitionnement. Si nous appliquons seulement la valeur limite, et qu’elle échoue, nous ne saurons jamais si la condition de bord a échoué, ou si la partition entière a échoué. Comprenons cela à l’aide d’un exemple. En continuant avec notre formulaire de gymnastique, supposons que le développeur a écrit la logique ci-dessous :
If (age < = 17 ) Then Don’t allow Gym Membership
If (age > 60) Then Don’t allow Gym Membership
Si vous regardez la logique, vous vous rendrez compte que la logique aurait dû être If (age <17), mais le développeur a ajouté = mauvais signe. Avez-vous également réalisé que la logique pour toute la partition valide est manquante ? Si (age>=16 et age <= 60 ) Then allow Gym membership !
Si nous n’utilisons que la valeur de condition limite 17, cela échouera l’exécution du test. Cependant, cela ne vous dira pas si la condition limite a échoué ou si la partition entière a échoué. En tant que tel, il est essentiel d’utiliser une valeur de partition d’équivalence, qui n’est pas une valeur limite. Dans ce cas, si nous utilisons la valeur 20, l’exécution échouera. Cela donnera une indication claire que le développeur a manqué l’implémentation de la partition entière.
Donc, si nous combinons à la fois la valeur limite et le partitionnement d’équivalence, nos conditions de test seront :
Conditions limites valides : Age = 16, 17, 59, 60
Conditions limites invalides : Age = 15, 61
Partition d’équivalence valide : Age = 25
Partition d’équivalence invalide : Age = 5 , 65
Pitfalls of BVA
Après avoir appliqué à la fois la valeur limite et la partition d’équivalence, pouvons-nous dire avec confiance que nous avons obtenu toute la couverture requise ? Malheureusement, ce n’est pas si simple ! La valeur limite et le partitionnement par équivalence supposent que l’application ne vous permettra pas de saisir d’autres caractères ou valeurs. De tels caractères, comme @ ou des valeurs négatives ou même des alphabets, ne seront pas autorisés à être saisis. Cette hypothèse n’est cependant pas valable pour toutes les applications, et il est essentiel de les tester avant de pouvoir dire que la valeur du champ fonctionne complètement.
À part cela, nous pouvons avoir des situations où la valeur d’entrée dépend de la décision d’une autre valeur. Par exemple, si le formulaire Gym a un autre champ Homme et Femme, et la limite d’âge variera en fonction de cette sélection. La valeur limite seule ne peut pas gérer de telles variations, et cela nous conduit à une autre technique de boîte noire appelée test de table de décision. Nous en parlerons en détail dans notre prochain article. Restez à l’écoute !