Kalibot — Le chat-bot conçu pour les testeurs

Huaxing Yuan
Just-Tech-IT
Published in
7 min readJun 17, 2022

Introduction

Dans notre quotidien, nous avons souvent des problèmes et des questions. Mais parfois, trouver une réponse ou une solution n’est pas facile. Surtout dans les grandes entreprises où des dizaines d’équipes travaillent sur différents projets ayant des contextes différents, le partage des connaissances est plus difficile.

Nous ne savons pas forcément si les connaissances sont documentées et où elles ont été documentées. Nous ne savons peut-être pas à qui s’adresser. Quand nous essayons la fonction de recherche fournie par les systèmes de gestion de contenu (CMS) comme SharePoint ou Confluence (de l’éditeur Atlassian), le résultat de la recherche n’est généralement pas ce que nous attendions.

Pour résoudre ces problèmes, nous avons réalisé des études visant à améliorer le partage des connaissances dans notre département, la « Guilde Test ». Ainsi, Kalibot, le chat-bot de partage de connaissances a été développé et déployé en interne. Il s’appuie sur le Bot Framework de Microsoft.

L’architecture d’un chat-bot générique et les modules utilisés par kalibot

Pourquoi un chat-bot ?

Lorsque nous avons des questions, nous les posons souvent à quelqu’un d’autre via la messagerie instantanée. Je pense que remplacer ce “quelqu’un d’autre” par un bot est le moyen le plus proche de la communication entre humains. Deuxièmement, avec la technologie IA relativement mature, trouver une question dans un modèle d’IA est généralement beaucoup plus précis que la recherche basée sur des mots clés fournie par n’importe quel système de gestion de contenu.

Une solution simple mais efficace

En tant qu’un projet interne, nous voulons résoudre le problème mais nous avons également besoin que la solution soit simple et l’effort sur la maintenance le plus faible possible. De plus, nous avons une importante documentation existante sur Confluence qui est maintenue par plusieurs coéquipiers. Ces données doivent être facilement réutilisées, afin que chaque testeur et équipe de test puisse contribuer et améliorer la couverture des connaissances et des questions.

Dans la pratique, nous n’avons pas construit un seul bot, mais deux :

Robot d’indextion alimente la base de connaissance consommée par le chat-bot

Le robot d’indexation alias « Crawler » : il scanne et analyse des documents sur Confluence et SharePoint, génère des questions-réponses puis entraîne le modèle basé sur ces données.

Le Chat-bot classique : il interagit avec l’utilisateur via Microsoft Teams, et accède aux bases de connaissances créées par le robot d’indexation.

Jetons un coup d’œil.

Robot d’indexation

Le robot d’indexation permet de mettre à jour automatiquement la base de connaissances, à partir des documents disponibles sur le système de gestion de contenu (CMS) sous format HTML.

Les documents originaux sont stockés sur Confluence, SharePoint ou potentiellement d’autres CMS. Ils peuvent être maintenus par les différents utilisateurs et les équipes. Lorsque le robot d’indexation est lancé, il scanne chaque page, analyse le contenu HTML en fonction des tags comme : titres, paragraphes, images et des liens typer-texte puis génère des questions-réponses (QnA) structurées.

Une fois que les questions-réponses et leurs relations sont générées, le robot d’indexation invoque l’API du Service QnA (fourni par Microsoft) pour entrainer le modèle ainsi que sa publication en production. Le chat-bot sera capable de répondre aux nouvelles questions immédiatement, sans besoin d’être redéployé.

Dans un document bien structuré, il y a souvent plusieurs niveaux de titres et leurs paragraphes associées. Cela signifie que la question peut être trop large pour être traitée dans une seule réponse. Dans notre implémentation actuelle, nous traitons les sous titres comme des “questions relatives”. Le Chat-bot peut suggérer des questions et inviter l’utilisateur à sélectionner celles qui correspondent jusqu’à ce qu’il obtienne une réponse correcte.

Par exemple : “Comment mettre en place le pairwise testing ?” est une question trop large. Le robot d’indexation générera une réponse intermédiaire pour expliquer ce qu’est le Pairwise Testing, puis suggérer aux utilisateurs comment obtenir l’outil PICT et comment l’utiliser.

L’exemple d’un document source structuré

Comme résultat, lorsque l’utilisateur pose une question, le Chat-bot la filtre et l’affine, jusqu’à ce que l’utilisateur obtienne une réponse précise.

Kalibot — Le Chat-bot interactif

Le Chat-bot principal nommé “Kalibot” est publié sur Microsoft Teams (le logiciel de messagerie instantanée utilisé dans notre entreprise), avec lequel les utilisateurs internes peuvent interagir.

Kalibot s’appuie sur 3 modèles d’IA :

  1. Modèle de compréhension linguistique (modèle LU) : Le modèle LU permet d’interpréter une phrase d’un utilisateur en « intention » (la phrase « mettre à jour le profil » devient « updateProfile »). Nous utilisons ce modèle pour gérer les profils des utilisateurs et leurs préférences, comme le domaine de recherche préféré. Dans le futur, nous pourrons améliorer ce modèle afin de développer des nouvelles capacités du chat-bot.
  2. Modèle de réponse aux questions (Modèle QnA) : Ce modèle stocke toutes les paires de questions-réponses. Il est actualisé par le robot d’indexation.
  3. Modèle de répartition (Dispatch) : Ce modèle de niveau supérieur détermine quel modèle doit être adressé : Si l’utilisateur pose une question au robot, il va chercher dans le modèle QnA. Si l’utilisateur veut gérer ses préférences, alors le modèle LU sera utilisé.
Kalibot utilise 3 modèle IA

Lorsque Kalibot reçoit un message d’un utilisateur, il interroge d’abord le modèle de répartition, puis le modèle QnA ou le modèle LU en fonction du contexte.

Les fonctions clés du Chat-bot

En plus des fonctionnalités de base d’un chat-bot qui répond aux questions des utilisateurs, nous avons développé les fonctionnalités plus avancées ci-dessous :

Conversation multi-tours

Un document source est structuré avec différents niveaux de titres. Cette structure peut être utilisée pour générer des « questions relatives », pour guider l’utilisateur d’une question trop large vers une réponse concrète et précise.

Selon l’exemple déjà expliqué dans la section « indexation » : Lorsqu’on demande à l’utilisateur « comment mette en place le pairwise testing ? », le chat-bot suggère également des questions de relatives telles que « Comment installer l’outil PICT » et les étapes pour générer des cas de test avec. Pour en savoir plus, il suffit de cliquer sur la « suggestion » pour obtenir des détails supplémentaires.

Exemple d’une réponse avec des questions suggérées

Gestion du contexte préféré

Nos testeurs travaillent dans différentes équipes projet. Il est possible qu’ils aient des questions similaires, mais la réponse dépend fortement de leur contexte. La réponse à “Quelles JDD puis-je utiliser pour un test nominal ?” sera très différente d’un projet à l’autre.

Pour répondre à ces questions contextuelles, nous avons étiqueté chaque base de connaissances avec un « Contexte », et chaque utilisateur peut choisir son propre contexte préféré à partir des contextes existants proposé par le chat-bot. Par exemple : en tant que testeur travaillant dans la tribu Assurance Dommage, je peux changer mon contexte en « Assurance Dommage ». La base de connaissances de ma propre tribu sera utilisée en priorité avant les autres bases de connaissances.

Recherche contextuelle des connaissances

L’utilisateur obtiendra toujours la réponse à partir de sa propre base de connaissances et, sinon à partir de la base de connaissances globale.

Conclusion

À ce jour, notre chat-bot dispose d’une base de connaissances d’environ 2000 questions couvrant les méthodes, les outils de test, le glossaire de l’entreprise, le syllabus ISTQB et des contenus gérés par les équipes-projet. Pour mettre à jour en continu le modèle de questions-réponses, le bot d’indexation est lancé périodiquement depuis la plateforme d’intégration continue.

Nous n’en sommes qu’au début de ce projet, mais nous l’avons trouvé bénéfique :

  • De nombreuses documentations bien structurées peuvent être réutilisées directement, ce qui réduit considérablement l’effort de réutilisation et la complexité du robot d’indexation.
  • Le chat-bot peut donner un bon résultat pour les questions disponible dans le modèle QnA. La recherche est centralisée, plus naturelle et les réponses sont plus précises par rapport à la fonction de recherche fournie par un CMS
  • Tout le monde peut contribuer au modèle QnA sans avoir de connaissance du concept d’IA et des services sous-jacents. De plus, n’importe qui peut créer et mettre à jour un document sur Confluence et SharePoint.

Bien sûr, il y a des points que nous aimerions améliorer pour que le chat-bot soit plus utile :

Le robot d’indexation peut analyser les pages Web et traiter les paires de questions-réponses. Mais dans la vraie vie, il reste encore de nombreux documents à adapter avant de pouvoir être traités :

  • Ils ne sont pas bien organisés avec des niveaux de titre.
  • Ils peuvent contenir des tableaux, des colonnes, ou des paragraphes très longs, ce qui n’est pas idéal pour un contexte conversationnel.
  • Ils peuvent contenir des liens vers des documents Word ou PowerPoint. La version actuelle du robot d’indexation ne peut pas analyser le contenu dans les pièces jointes.

Les prochaines étapes consisteront à améliorer le robot d’indexation, à le rendre capable d’extraire plus de données et à mobiliser les collaborateurs pour qu’ils contribuent à la documentation. Enfin, les connaissances du robot sont basées sur ce que les collaborateurs ont fourni. À long terme, une documentation partagée, bien structurée et bien maintenue est la clé pour que le chat-bot reste toujours utile.

Références

Kalibot est basé sur le Kit de développement logiciel (SDK) Bot Framework de Microsoft, il est hébergé sur Azure. Ci-dessous quelques documents techniques que nous avons suivis au cours de son développement :

(Merci à l’équipe d’ingenierie de la Guilde pour la relecture, Remercie spécialement à Etienne DUFOUR et Louis LUCIANI)

--

--

Huaxing Yuan
Just-Tech-IT

Test Automation Expert of AXA France, ISTQB Full Advanced Certified