KDT: Keyword Driven Testing

On parle toujours de tests manuels et de tests automatisés mais rarement de Keyword Driven Testing (KDT). A quoi cela correspond exactement le KDT ?

Repartons de la base.

Les tests manuels

Un test manuel bien écrit est une suite d’actions entraînant chacune un résultat à vérifier

Prenons un exemple : lire un mail sur une application android :

Ici si un résultat n’est pas validé ou une action impossible alors le cas est en échec. Sinon il est en succès.

Les tests automatisés

A partir d’un cas de test manuel bien écrit on peut développer un cas de test automatisé. Pour une application Android il est possible d’utiliser Appium avec Sélénium.

Si on reprend l’exemple précédent alors il suffit de coder chaque partie du test. On commence par l’ouverture de l’application en appuyant sur l’icône, puis on vérifie que la boite de réception est bien affichée (par exemple en cherchant la présence dans la partie haute de l’écran du texte « Boite de réception »)

On fait ensuite de même avec les autres étapes, tout est écrit en java si on utilise Sélénium.

Nous arrivons donc au KDT

Le KDT est utilisé pour l’automatisation des tests. Par contre, contrairement à l’utilisation « classique » ce type de test ne se présente pas de la même façon qu’un test automatisé classique.

L’idée avec le KDT est de faire un point entre le test manuel et le test automatisé afin que des personnes plus fonctionnelles que techniques puissent automatiser des tests ou même que des personnes ne comprenant rien aux langages de programmation puissent le lire et comprendre ce que le test fait. En fait, on peut voir le KDT comme un « middle ware ».

J’ai personnellement travaillé sur des KDT, les tests étaient écrits sur Excel, chaque ligne faisant une action (et donc appelant une fonction sélenium), et comme pour les tests manuels si une étape était en échec alors le cas était en échec. Comme pour un test automatisé si la ligne est validée alors on passe à la suivante, sinon le test s’arrête et est en échec (à moins que l’on donne des conditions précises en fonction du succès ou de l’échec de l’étape).

Le KDT peut prendre plusieurs formes mais voici ce que le test de mon exemple pourrait donner en KDT :

Ici, chaque action (click, Idtext_exists et Id_exists) appelle une fonction préalablement développée et demandant certaines variables. Click et Id_exists n’ont besoin que d’un ID alors que la fonction Idtext_exists a besoin d’une valeur afin de vérifier une présence.

La colonne commentaire permet de savoir ce qui est fait même pour une personne non technique. Le test ressemble également (en apparence) à un test manuel ce qui le rend plus lisible.

Le KDT peut évidemment être plus complexe (et présenté différemment), en ajoutant par exemple ce qui est fait lorsque l’étape est en échec et lorsqu’elle ne l’est pas (afin de gérer des changements d’option et avoir un test plus stable par exemple).

Conclusion

Le KDT est un excellent moyen de se familiariser avec l’automatisation des tests, particulièrement si la personne devant automatiser n’est pas très technique (ce qui est souvent le cas pour des testeurs logiciel). De plus le KDT a également l’avantage de simplifier la lecture des tests pour une personne en dehors ou rejoignant l’équipe. Par contre il ajoute une couche supplémentaire entre l’application et l’outil d’automatisation ce qui peut nuire aux performances.

Un autre avantage du KDT (et non le moindre) est le fait que si l’on change d’outil d’automatisation alors les tests ne sont pas à jeter, il suffit de recoder les fonctions utilisées sur l’ancien outil.

Outil utilisant le KDT : Robot Framework

Pensez à rejoindre le groupe Le métier du test si le test vous intéresse !

N’hésitez pas à me suivre et lire mes autres articles si vous voulez en apprendre plus sur le test ou venir partager vos connaissances

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

5 Responses

  1. Bonjour, Je viens de domaine de test manuel vers le test automatisé. ici lorsque vous définissez KDT, est ce que vous soulignez sur le fait que chaque ligne (étape) dans votre test manuel de fichier Excel correspond à une fonction(keyword) dans le script de test et donc votre test est « Drived » by Keyword de selenium?

    1. Cela peut se faire avec sélénium mais ce qu’il faut retenir c’est que les « mots clés » sont en fait des fonctions que l’on appelle.
      C’est le même principe que l’automatisation des tests BDD

  2. Bonjour,
    Je viens de domaine de test manuel vers le test automatisé. ici lorsque vous définissez KDT, est ce que vous soulignez sur le fait que chaque ligne (étape) dans votre test manuel de fichier Excel correspond à un keyword dans le script de test et donc votre test est « Drived » by Keyword de selenium et non pas par les Données (Data Driven)? Aussi, le mot « tests data » qui est utilisé dans pleins d’article, dans votre exemple comprend la colonne Valeur mais aussi la colonne ID?
    merci

    1. Le test data sera ici plus lié à la valeur utilisée dans le test.
      L’ID est utilisé pour savoir identifier l’élément.
      Exemple : un champ « nom »
      Son ID pourrait être : nom_client
      Il est obligatoire d’avoir cet ID pour l’identifier.
      Par contre pour du test avec les data, c’est la valeur de ce champ qu’il faudra faire varier. On peut imaginer : Hage, Hage Chahine (avec un espace), Hage Chaïne (caractère spécial…)…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

culture générale

Indicateurs et dérives

Pourquoi avoir des indicateurs ? Les indicateurs sont particulièrement demandés et utilisés. ils servent à piloter, mesurer, chiffrer des ressentis et même à définir des contrats! Ces indicateurs font d’ailleurs souvent l’objet d’objectifs… Ce qui tourne généralement à des dérives car, comme le dit bien la loi de GoodHart: « lorsqu’une

Lire la suite »
ISO 25010

Types de tests (ISO 25 010): les tests de compatibilité (3/8)

Après les tests fonctionnels et les tests de performance au sens ISO – 25 010, je m’attaque dans cet article à la famille des tests de compatibilité au sens de l’ISO – 25 010 afin de savoir exactement à quoi correspond la « compatibilité » dans le cadre de la qualité logicielle. Pour avoir

Lire la suite »