Fermer

juin 15, 2021

Tests basés sur les données


Les tests basés sur les données aideront à améliorer la maintenabilité de vos tests en réutilisant la logique et en réduisant les tests répétés, tout en offrant la même couverture de test. Mais il est important de s'assurer que nous ne les compliquons pas trop ou ne les testons pas trop.

Qu'est-ce que les tests basés sur les données

Prenons un cas de test : « un ensemble de préconditions, d'entrées, d'actions, de résultats attendus et de postconditions, développé sur la base des conditions de test » ( ISTQB Glossaire). Typiquement, un scénario de test prendra la forme d'une liste d'instructions contenant les informations nécessaires pour vérifier qu'une application, ou une partie d'une application, fonctionne comme prévu. Un scénario de test peut être exécuté manuellement ou il peut être automatisé. Pour garantir une couverture de test adéquate de l'application, il faut généralement plusieurs cas de test.

Les tests pilotés par les données sont une méthode qui permet d'exécuter des tests à l'aide d'un tableau de conditions. Au lieu d'avoir un grand nombre de cas de test individuels, nous pouvons exécuter des cas de test individuels plusieurs fois en utilisant différents paramètres d'entrée et de sortie attendus.

La configuration d'un test basé sur les données est en fait assez simple. Prenons le cas de test suivant :

DONNÉ que j'ai une calculatrice
QUAND j'appuie sur "1"
ET j'appuie sur "+"
ET j'appuie sur "2"
ALORS je devrais voir le répondez « 3 »

Au lieu d'avoir les entrées et les sorties codées en dur, vous pouvez les configurer pour permettre l'utilisation de paramètres alternatifs dans le test à la place. Ce cas de test pourrait être changé en ceci :

DÉPONDANT J'ai une calculatrice
QUAND j'appuie sur
ET j'appuie sur
ET j'appuie sur
PUIS je devrais voir la réponse

Le paramètre alternatif les valeurs sont stockées dans un fichier de données contenant une table de valeurs, chaque ligne étant une itération de test individuelle. Le tableau peut ressembler à ceci :

11+23
2550[19659020]37*214

Erreurs courantes avec les tests basés sur les données

Les tests basés sur les données présentent de nombreux avantages. Il réduit le nombre d'étapes répétées et permet de réutiliser la logique existante. Cela réduit la quantité de maintenance requise car cela réduit le nombre de cas de test nécessitant une mise à jour. Cela permet également au testeur d'augmenter la couverture des tests en ajoutant simplement une nouvelle ligne à la table de données.

Cependant, il peut être facile de s'emballer un peu lors de la configuration des tests basés sur les données.

Trop peu de tests. Cas, trop de paramètres

Il peut être tentant de réduire le nombre de cas de test et de n'avoir à la place que quelques tests pilotés par les données. Nous n'aurions qu'à nous concentrer sur une seule table de données, et des itérations supplémentaires peuvent être créées en ajoutant simplement une autre ligne. Cependant, trop de paramètres peuvent rendre difficile le suivi des données. De plus, si vous exécutez le test manuellement, cela peut en fait être un casse-tête à exécuter.

Disons que nous testons une page avec quatre cases à cocher et quatre zones de texte qui nécessitent une valeur entière comprise entre 1 et 100. Un cas de test pourrait ressembler à ceci :

DONNÉ que je suis sur la page du formulaire de candidature
QUAND j'ai défini la valeur de checkbox1 sur
ET j'ai défini la valeur de checkbox2 sur
ET j'ai défini la valeur de checkbox3 sur
ET j'ai défini la valeur de checkbox4 sur
ET j'ai défini la valeur de textbox1 sur
ET j'ai défini la valeur de textbox1 sur
ET j'ai défini la valeur de textbox1 sur
ET j'ai défini le valeur de textbox1 à
ET je clique sur soumettre
PUIS le formulaire devrait être soumis avec succès

Un fichier de données pour le test ci-dessus pourrait ressembler à ceci :

TRUETRUETRUE[19659011]VRAI1234
VRAIVRAIFAUXFAUX25 634526
FAUXFAUXVRAIVRAI76236434
FAUXFAUX[19659012]FALSEFALSE100999897

Cela fait beaucoup de paramètres à suivre. Il est souvent conseillé de garder les tests aussi simples que possible pour réduire le risque d'erreurs lors de la configuration des données. Les tests simples sont plus faciles à maintenir que les plus complexes. La division du test piloté par les données en deux cas de test distincts avec quatre paramètres, ou même quatre cas de test avec deux paramètres, réduira la complexité et améliorera la maintenabilité du fichier de données.

Sur-tests

Tout comme il est tentant d'ajouter trop de paramètres à un cas de test, il peut également être tentant d'ajouter trop d'itérations. Il faut du temps pour exécuter un test, et chaque itération supplémentaire ajoute à ce temps. Pour exécuter un test, un environnement de test est nécessaire. Un seul test peut être exécuté dans cet environnement à la fois, ce qui pourrait être utilisé pour exécuter des tests alternatifs. Lorsque vous augmentez le nombre d'itérations, réfléchissez : est-ce que ce nombre d'itérations est vraiment nécessaire ?

Disons que nous avons une zone de texte qui ne devrait permettre qu'un nombre compris entre 1 et 60. Comme il est si facile de mettre en place un test basé sur les données, il peut être tentant de créer un tableau de données qui couvre chaque nombre compris entre 1 et 60. Est-ce vraiment nécessaire ? Si chaque itération prend 30 secondes, l'ensemble du test prendrait 30 minutes au total. C'est 30 minutes où l'environnement de test ne serait pas disponible pour exécuter des tests alternatifs.

Une meilleure façon serait d'utiliser l'analyse des valeurs limites et de ne couvrir que les valeurs limites et peut-être quelques valeurs invalides et moyennes (0, 1, 60, 61, 24, 47, -3, "chaîne", 3.234). S'il y avait un problème concernant cette fonctionnalité particulière, vous pouvez augmenter le nombre d'itérations juste pour être sûr – tout ce que vous avez à faire est d'ajouter quelques lignes supplémentaires.

Résumé

Les tests basés sur les données sont parfaits pour améliorer la maintenabilité en réduisant le nombre d'étapes répétées et en réutilisant la logique. Ils nous permettent de réduire le nombre de cas de test sans impacter la couverture de test globale. Cependant, il est facile de se laisser emporter. Il faut veiller à concevoir les tests afin de ne pas trop les compliquer en introduisant trop de paramètres dans le tableau de données, et de ne pas prendre un temps et des ressources précieux en augmentant trop le nombre d'itérations.

Note de l'éditeur : Progress Telerik propose un outil de test de bout en bout dans Test Studio. Il est livré avec un essai gratuit de 30 jours afin que vous puissiez explorer tout ce que Test Studio a à offrir.




Source link