fbpx

Le partitionnement par équivalence dans les tests de logiciels est une technique de test en boîte noire qui vous aide à construire des cas de test efficaces sans compromettre la couverture des tests.

Dans cet article, nous verrons ce qu’est le partitionnement par classes d’équivalence, pourquoi il est utile, et nous explorerons certains des processus et approches que vous pouvez utiliser pour exploiter les avantages de cette technique.

 

Qu’est-ce que le partitionnement en classes d’équivalence ?

dans les tests de logiciels ?

Tests d'assurance qualité - Qu'est-ce que c'est, types, processus, approches, outils, etc.

Tous les logiciels ont des conditions d’entrée particulières. Dans le contexte des tests de logiciels, ces conditions d’entrée décrivent les valeurs ou les données qu’un testeur doit utiliser pour vérifier la qualité et la fonctionnalité de son logiciel. Ces entrées peuvent être aussi simples qu’un clic de souris, jusqu’à du texte et des chiffres.

Une partition équivalente dans les tests de logiciels explore les différentes entrées nécessaires à l’utilisation du logiciel et les regroupe en classes d’équivalence, c’est-à-dire en ensembles d’entrées qui auront un effet équivalent sur le comportement du logiciel.

Si vous savez comment chaque groupe d’entrées se comportera, il n’est pas nécessaire de tester chaque représentant du groupe. À ce titre, le partitionnement des classes d’équivalence est un excellent moyen d’aider les testeurs à réduire la fréquence des tests redondants. Dans un monde hyperconcurrentiel où les délais de développement de logiciels sont de plus en plus serrés, il est crucial de gagner du temps et de l’énergie dans le cycle de vie des tests de logiciels (STLC).

Enfin, il convient de noter que le test d’équivalence est une technique de test à boîte noire. En bref, cela signifie que les testeurs n’ont pas besoin de connaître le code interne ou les rouages du programme. Les tests sont basés sur les entrées, les sorties et les comportements externes. En tant que tels, ces tests sont fortement axés sur le comportement de l’utilisateur lors de l’utilisation du programme.

 

1. Le partitionnement de l’équivalence des tests de logiciels en quelques mots

Le partitionnement par équivalence divise les données d’entrée des tests de logiciels en deux camps : les entrées valides et les entrées non valides. Les valeurs de chaque partition doivent amener le logiciel à avoir le même comportement. Par exemple :

  • Si la condition d’une valeur de la partition A est vraie, les autres valeurs de la partition A doivent l’être aussi.
  • De même, si les conditions d’une valeur de la partition A sont fausses, les autres valeurs de la partition A doivent également être fausses.

Dans un contexte de test, chaque partition doit être couverte au moins une fois. Logiquement, cela signifie que si une entrée de la partition A échoue, toutes les autres entrées échoueront également. Ce processus devrait permettre de gagner du temps, car au lieu de tester chaque entrée de la partition A, les testeurs peuvent n’en tester qu’une seule et extrapoler le résultat sur la base de ses points communs.

 

2. Pourquoi les tests de classes d’équivalence sont-ils importants dans les tests de logiciels ?

Avant d’aborder les avantages directs des tests de classe d’équivalence dans les tests de logiciels, nous devons définir l’importance de cette approche.

Tous les testeurs savent que les tests de logiciels nécessitent des compromis. Le temps et les budgets sont limités, ce qui signifie que les testeurs doivent tirer le meilleur parti de leurs ressources. Le partitionnement de l’équivalence des tests logiciels aide les équipes à trouver un équilibre entre l’efficacité et la fiabilité de leurs tests en réduisant le nombre d’entrées.

 

Avantages du cloisonnement par équivalence

en matière d’essais de logiciels

Cas d'utilisation de l'automatisation des processus robotiques dans l'assurance et la comptabilité

Une partition équivalente dans les tests de logiciels est privilégiée par les équipes de test pour diverses raisons. En voici quelques-unes parmi les plus convaincantes.

1. L’efficacité

Le grand avantage des tests d’équivalence réside dans leur efficacité. Lorsque les testeurs utilisent le partitionnement par équivalence, ils peuvent réduire le nombre de cas de test dont ils ont besoin sans compromettre la couverture des tests. En sélectionnant un cas d’entrée dans chaque classe d’équivalence, les testeurs peuvent être sûrs qu’ils comprennent comment leur logiciel fonctionne avec une variété d’entrées.

2. Simplicité

Un autre grand avantage du partitionnement de l’équivalence des tests de logiciels est sa simplicité. La décomposition d’un ensemble varié d’entrées en données valides et non valides simplifie considérablement la planification des tests. Tester chaque entrée individuellement nécessite beaucoup de documentation et de coordination. Le fait de se limiter à un seul exemple représentatif permet de rationaliser le processus de test.

Couverture améliorée

L’utilisation des classes d’équivalence dans les tests vous permet également d’utiliser votre temps de test de manière plus efficace. La réduction des entrées de test en classes permet de tester chaque classe de manière plus approfondie. Cette approche globale serait franchement impossible à mettre en œuvre si l’on testait chaque entrée individuellement. Le partitionnement par équivalence permet aux équipes d’aller jusqu’au bout et de tester les données valides et non valides, les cas limites, les valeurs limites, etc.

3. Réutilisation

Le temps initial que vous consacrez à l’établissement de chaque classe d’équivalence dans les tests de logiciels est rentabilisé par la suite si vous réutilisez ces classes pour de futurs tests d’entrée. Bien que toutes les partitions ne soient pas pertinentes pour les tests futurs, celles qui le sont vous feront gagner beaucoup de temps dans le cadre de projets futurs ou même de tests de régression.

 

Inconvénients du partitionnement par équivalence

en matière d’essais de logiciels

défis - tests de charge

Bien que le partitionnement par équivalence offre des avantages considérables, il ne s’agit pas de la solution idéale dans tous les cas de figure. Examinons quelques-unes de ses limites.

1. Ordre d’entrée

Dans certaines situations, l’ordre des entrées est un élément essentiel pour tester la fonctionnalité d’une application. Ce n’est pas quelque chose que l’on peut vraiment réduire en utilisant le partitionnement par équivalence. Les testeurs doivent rester attentifs à ces situations et utiliser des techniques alternatives pour assurer une bonne couverture.

2. Dépendances complexes au niveau des entrées

Les logiciels complexes avec des dépendances d’entrée complexes sont un autre domaine où les limites du partitionnement par équivalence sont mises en évidence. Par exemple, un logiciel qui produit des calculs sur la base de diverses données. Dans ce scénario, les testeurs devraient utiliser une variété de techniques pour réduire l’explosion combinatoire et augmenter la probabilité d’isoler les défauts.

 

Des approches alternatives pour compléter la

limites des tests d’équivalence

Tests alpha et tests bêta

Si les tests de partition d’équivalence conviennent à de nombreux scénarios de test, les logiciels très complexes présentant des dépendances complexes entre les valeurs d’entrée peuvent nécessiter d’autres approches complémentaires.

Lorsqu’il s’agit de rédiger des scénarios de test pour des logiciels complexes, il est judicieux d’utiliser une combinaison de ces approches.

1. Tests par paires

Le test par paire est une technique de test de logiciels qui permet de tester toutes les combinaisons possibles de chaque paire de paramètres d’entrée. Cette approche garantit que chaque paire de paramètres est testée ensemble au moins une fois.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

2. Test de la table de décision

Une table de décision aide les testeurs à cartographier méthodiquement les différentes combinaisons d’entrées. C’est un bon moyen d’assurer une couverture systématique lorsqu’il existe des dépendances complexes.

3. Test de transition d’état

Ce type de test mesure la façon dont le logiciel passe d’un état à l’autre en réponse à diverses combinaisons d’entrées.

4. Tests basés sur des modèles

Cette approche consiste à créer un modèle basé sur la logique interne du logiciel et à utiliser un outil d’automatisation pour créer des cas de test basés sur ce modèle. Cette technique permet de gérer la complexité et d’assurer une couverture adéquate.

 

Exemples de tests de partitionnement des classes d’équivalence

Beta Testing - Qu'est-ce que c'est, les types, les processus, les approches, les outils, vs. Alpha testing et plus encore !

La meilleure façon de comprendre le partitionnement par équivalence est d’examiner comment et où vous pouvez utiliser une classe d’équivalence dans les tests de logiciels. Voici quelques exemples pour vous aider à mieux visualiser le concept.

 

1. Exemple de test de partitionnement en classes d’équivalence #1

Un formulaire de commande en ligne est un bon exemple de classe d’équivalence pour les tests de logiciels.

Imaginons que vous construisiez une application pour un détaillant en ligne d’équipement stationnaire. Il existe un formulaire de commande type pour les rouleaux de papier A4. Voici comment vous pouvez utiliser les classes d’équivalence pour tester cette forme.

Classes d’équivalence :

Les quantités de papier A4 se situent dans une fourchette spécifique allant, par exemple, de 1 à 100. Les trois classes sont donc les suivantes :

  • 1 à 100
  • Chiffres inférieurs à 1
  • Chiffres supérieurs à 100.

 

Cas de test :

Trois cas de test devraient être exécutés, avec les résultats attendus suivants

  • Tout chiffre compris entre 1 et 100 = Ordre traité
  • Chiffres inférieurs à 1 = message d’erreur
  • Nombres supérieurs à 100 = message d’erreur

 

2. Exemple de test de partitionnement par équivalence n° 2

Une classe d’équivalence dans le domaine des tests de logiciels ne se limite pas aux chiffres. Dans cet exemple, nous allons voir comment vous pouvez utiliser le même principe pour vérifier un portail de téléchargement de fichiers. Supposons que vous deviez tester un site qui demande aux utilisateurs de télécharger des documents d’identité, mais que vous ne puissiez accepter que des formats spécifiques.

Classes d’équivalence :

  • Les documents pris en charge sont les PDF et les JPEG.
  • Les documents non pris en charge sont tous les autres formats de documents.
  • Pas de document

 

Cas de test :

  • Test en téléchargeant un PDF ou un JPEG = téléchargement réussi
  • Test en téléchargeant un format non supporté = message d’erreur
  • Test sans téléchargement de fichier = message d’erreur

 

Comment mettre en œuvre un partitionnement par équivalence

l’approche des tests de logiciels

Automatisation des tests Agile DevOps : Explication de l'approche d'automatisation basée sur les maquettes ZAPTEST

Si vous souhaitez utiliser les classes d’équivalence dans les tests, vous devez adopter une approche stratégique. Voici un guide pratique, étape par étape, sur la mise en œuvre du partitionnement par équivalence dans les tests de logiciels.

 

Étape 1 : Identifier les variables d’entrée

 

Chaque logiciel répond à une variété de variables d’entrée. Pour les logiciels complexes, ces variables peuvent être énormes. Il faut donc examiner les exigences et les spécifications du logiciel et mettre en évidence toutes les variables qui ont un impact sur le comportement du logiciel.

Parmi les entrées les plus évidentes, on peut citer les formulaires de saisie des utilisateurs. Cependant, vous devez prendre en compte un éventail plus large d’entrées pour votre liste. Vous pouvez également prendre en compte les variables environnementales, les appels d’API, les calculs internes, etc.

Ensuite, vous devez comprendre les différents types de données variables. Vous pouvez classer ces variables en tant qu’entiers, booléens, chaînes de caractères, etc. afin de définir les partitions appropriées.

Enfin, vous devez explorer les contraintes d’entrée. Il s’agit notamment des caractères autorisés, des formats définis et des valeurs minimales/maximales.

 

Étape 2. Déterminer les partitions valides et non valides

Examinez chaque variable d’entrée et commencez à les répartir en fonction des résultats valides et non valides. Il s’agit des classes d’équivalence dans les tests.

1. Partitions valides

Les partitions valides peuvent être divisées en deux catégories.

Classes d’équivalence positive :

Valeurs que vous pensez que votre logiciel traitera avec succès. Par exemple, pour un logiciel qui enregistre des notes en pourcentage, tout ce qui est compris entre 0 et 100 est valable.

Classes d’équivalence négatives :

Cette catégorie concerne les valeurs qui sont en dehors des limites de l’entrée attendue, mais que votre logiciel doit traiter avec un message d’erreur. Par exemple, l’entrée est 110 pour une note en pourcentage, ce qui amène le logiciel à renvoyer un message d’erreur disant : « Toutes les valeurs doivent être comprises entre 0 et 100 ».

 

2. Partitions non valides

Ces classes d’équivalence comprendront des entrées qui déclencheront des erreurs ou des comportements inattendus. Dans notre exemple ci-dessus, il pourrait s’agir de tentatives d’introduire A+ ou B ou des données similaires dans la note en pourcentage. Bien que ces entrées puissent être techniquement correctes, elles sont en dehors des attentes numériques.

 

#3. Rédiger des cas de test efficaces

Ensuite, vous devez concevoir des cas de test qui couvrent chaque partition d’équivalence au moins une fois. Comme indiqué plus haut dans l’article, cela permet d’assurer une bonne couverture des tests.

Tout d’abord, vous devez sélectionner des valeurs représentatives au sein de chaque partition d’équivalence qui peuvent couvrir à la fois les données valides et non valides.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Conseils pour rédiger des scénarios de test solides

  • Pensez aux valeurs limites : Veillez à tester les limites de vos partitions. Minimum, maximum, inclusif, exclusif, etc., car ces domaines sont de sérieux candidats aux bogues. Par exemple, si vos attentes en matière d’entrée sont comprises entre 0 et 100, testez les valeurs négatives, ainsi que les nombres tels que 101.
  • Envisagez des scénarios de test positifs et négatifs pour vos cas de test valides et non valides.
  • Les tests combinés sont une bonne idée. Utiliser quelques approches différentes, comme indiqué dans nos approches alternatives, pour compléter les limites de la section sur les tests d’équivalence ci-dessus.
  • Documenter les raisons pour lesquelles les valeurs d’entrée ont été divisées en partitions spécifiques et décrire clairement le comportement attendu de chaque test.
  • Dans la mesure du possible, utilisez des outils visuels pour apporter un sentiment de clarté et d’objectivité à vos cas de test en utilisant des diagrammes ou des tableaux pour représenter vos partitions.

 

#4. Planifier et exécuter les cas de test

Classez vos tâches par ordre de priorité en fonction de facteurs tels que

  • Quelles sont les zones les plus susceptibles de présenter des défauts ?
  • Quels sont les scénarios les plus susceptibles de provoquer des situations graves, telles que des plantages ou des blocages ?

Ensuite, exécutez vos tests et enregistrez les résultats et les erreurs qui se produisent. Pour les programmes complexes comportant de nombreuses entrées, vous pouvez utiliser des outils de RPA pour imiter les actions de l’utilisateur.

 

#5. Analyser les résultats

Mettre en commun les données d’essai collectées et analyser les résultats. Voici quelques méthodes à utiliser :

  • Examinez chaque cas de test et comparez les résultats réels avec les résultats attendus.
  • Détecter toute anomalie, rechercher et signaler les bogues et les défauts.

 

#6 Conseils supplémentaires

Même si ces conseils ne s’appliquent pas à tous les cas de figure, ils s’avéreront utiles pour les tests de logiciels complexes.

  • Les tables de décision sont un excellent moyen de visualiser vos partitions d’équivalence et les différentes combinaisons d’entrées que vous pourriez vouloir utiliser.
  • Vous pouvez fusionner des classes d’équivalence si elles présentent un comportement presque identique, ce qui permet d’optimiser le processus de test.
  • Utiliser le test de la valeur limite pour améliorer la détection des défauts
  • Dans la mesure du possible, automatisez vos cas de test de partitionnement de l’équivalence.

 

Partitionnement de l’équivalence et analyse des valeurs limites

dissiper certaines confusions dans l'automatisation des tests de logiciels

Le partitionnement par équivalence repose sur l’hypothèse que chaque test au sein d’une partition produira le même résultat. Bien que cela soit vrai dans de nombreuses situations, ce n’est pas toujours le cas. Par exemple, toute entrée ajoutée par erreur à une partition peut ne pas être vérifiée, ce qui entraîne une réduction de la couverture et une instabilité potentielle du logiciel.

La solution à ce problème est le test de la valeur limite. Il permet aux équipes de test de logiciels de se concentrer sur les domaines les plus susceptibles de contenir des risques et de tester le logiciel sur cette base. En bref, il propose que les risques soient plus susceptibles de se produire aux bords ou aux frontières de vos partitions d’entrée. Par conséquent, les testeurs peuvent écrire des cas de test aux limites supérieures et inférieures des entrées, en plus des autres cas de test de la classe d’équivalence.

 

Partitionnement des équivalences et automatisation avec ZAPTEST

les meilleurs outils gratuits et d'entreprise pour l'automatisation des tests logiciels et de la RPA

Les outils d’automatisation des tests logiciels, comme ZAPTEST, peuvent aider les équipes à automatiser le partitionnement de l’équivalence à la fois lors de la création et de l’exécution des tests.

Voyons comment ZAPTEST peut vous aider à exploiter les avantages de cette approche de test boîte noire.

 

1. Sélection des outils

Il est important de choisir l’outil adéquat pour le travail à effectuer. La plupart des outils d’automatisation des tests sont spécialisés dans les tests Web, mobiles ou de bureau. ZAPTEST est capable de gérer des tests sur différentes plates-formes et applications, ce qui en fait un choix solide.

 

2. Rédiger et exécuter des cas de test

ZAPTEST 1Script vous permet de scanner l’interface utilisateur pour construire l’automatisation des tests. En outre, vous pouvez également numériser des maquettes d’application si vous en êtes à un stade précoce de développement. En utilisant la fonction Scan GUI, ZAPTEST scannera tous les objets de test et les ajoutera à la liste des objets.

À partir de là, vous pouvez ajouter des objets au diagramme et élaborer les étapes du test.

ZAPTEST vous permet d’automatiser la rédaction des cas à l’aide d’une interface simple de type « glisser-déposer ». Vous n’avez pas besoin d’être expert en codage pour créer des cas de test avec ZAPTEST. À partir de là, vous pouvez donc sélectionner l’opération appropriée dans une méthode déroulante et construire un scénario de test basé sur les valeurs d’entrée nécessaires à votre interface. Vous pouvez ensuite élaborer des scénarios de test pour chaque équivalence et les exécuter. Vous pouvez même réutiliser les cas de test et les éditer dans l’éditeur d’étapes, ce qui vous permet de gagner beaucoup de temps.

 

3. Rapports et gestion des cas de test

ZAPTEST vous permet d’exécuter des cas de test en parallèle, ce qui représente un gain de temps considérable. Cela peut vous aider à exécuter un grand nombre de partitions d’équivalence différentes en même temps ou à exécuter des groupes de tests particuliers.

Les résultats sont faciles à obtenir grâce à des rapports détaillés sur les échecs et les réussites, des captures d’écran, des journaux d’exécution et des mesures de performance liées à chaque cas de test.

 

4. Maintenance des cas de test

Vous pouvez également suivre et maintenir simplement vos cas de test grâce à des capacités de contrôle de version de qualité. De plus, les utilisateurs de ZAPTEST peuvent cloner et réutiliser les tests pour atteindre un nouveau niveau d’efficacité.

ZAPTEST offre bien d’autres fonctionnalités que l’automatisation des cas de test. Avec une suite d’outils RPA, ZAPTEST offre une fonctionnalité 2 en 1, comblant le fossé entre DevOps et BizOps dans un avenir marqué par l’hyperautomatisation, où tout ce qui peut être automatisé le sera.

 

Dernières réflexions

Le partitionnement par équivalence est une solution élégante pour les situations où les testeurs doivent trouver un équilibre entre efficacité et précision. Certains logiciels permettant une gamme presque infinie d’entrées, le partitionnement par classes d’équivalence aide les équipes à diviser les données de test en morceaux gérables, de la taille d’une bouchée, qui peuvent chacun faire l’objet d’un test approfondi.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo