Au cours des deux dernières années, les progrès de l'IA, en particulier les LLM (Large Language Models), se sont avérés capables de résoudre les problèmes traditionnels plus efficacement, et l'un des impacts que les LLM peuvent créer est l'aide à l'automatisation de nos tests logiciels. Pour de nombreuses équipes logicielles, l'automatisation n'a jamais été un citoyen de premier ordre du cycle SDLC et les équipes ont du mal à automatiser les cas de test qui créent la « dette d'automatisation des tests ». En raison de cette lacune dans l'automatisation des tests, les équipes qualité consacrent beaucoup de temps à la vérification et à la rédaction manuelles de ces cas de test, ce qui ralentit la vitesse d'expédition de l'équipe d'ingénierie.
La seule issue de secours qui existe pour éviter une telle corvée est d'automatiser les cas de test à une vitesse supérieure, mais souvent nous ne sommes pas en mesure de le faire car :
Bien que tous les problèmes mentionnés ci-dessus nécessitent un article séparé sur la façon dont les équipes logicielles doivent les résoudre, dans cette section, nous expliquerons comment les ingénieurs QA peuvent tirer parti du ChatGPT ou des LLM en tant que co-pilote dans le BDD (behavior-driven testing).
Qu’est-ce que le BDD ?
Le développement piloté par le comportement (BDD) est une méthodologie de développement logiciel Agile dans laquelle une application est documentée et conçue autour du comportement qu'un utilisateur s'attend à rencontrer lorsqu'il interagit avec elle. Dans le contexte de cette discussion, appliquons les tests basés sur BDD sur un site Web YC et considérons la page de connexion de YC hacker news comme point de départ.
Pour la page mentionnée ci-dessus, le comportement attendu est
" Lorsqu'un utilisateur tente de se connecter et saisit les informations d'identification valides sur https://news.ycombinator.com/login?goto=news et appuie sur Connexion, il doit rediriger l'utilisateur vers le site Web d'informations sur les pirates informatiques ".
Conformément aux directives BDD, le comportement ci-dessus peut être écrit sous forme de syntaxe/étapes Gherkin qui peuvent constituer un cas de test possible, et en utilisant le concombre comme cadre, le même Gherkin peut être automatisé et ce comportement ne nécessiterait plus d'intervention humaine . Cependant, en raison du problème dont nous avons discuté dans la section ci-dessus, l'équipe d'assurance qualité souffre généralement de l'automatisation de la même chose, mais nous pouvons exploiter la puissance des LLM en écrivant quelques invites et en créant un flux de travail permettant à nos équipes d'assurance qualité de gérer les étapes Gherkin et leur automatisation. avec une vitesse plus rapide sur le cadre du concombre.
Flux de travail pour la génération de la syntaxe Gherkin
Dans l'image ci-dessous, par exemple, j'ai montré comment vous pouvez affiner le modèle GPT en utilisant l'invite pour générer la syntaxe cornichon pour le comportement présenté en langage naturel.
Workflow pour générer du code compatible avec le concombre à partir de la syntaxe Gherkin
Étape 1 : Invite à être conçu
Vous trouverez ci-dessous l'invite que vous pouvez écrire sur la console ChatGPT pour l'affiner afin de générer l'automatisation appropriée à l'aide du code HTML et des étapes Gherkin fournies. En guise de résultat final, nous avons demandé de générer le code sous la forme d'une définition d'étape selon les besoins du concombre, qui peut être copié-collé tel quel par les assurances qualité.
Étape 2 : Injecter le HTML pertinent qui doit être utilisé comme base pour l'automatisation.
Comme illustré ci-dessous, après un réglage fin, ChatGPT demande les étapes HTML et Gherkin pertinentes qu'il peut utiliser pour générer des définitions d'étape pour le concombre.
Étape 3 : Générer la définition de l'étape
En conséquence, le GPT comprendra la structure DOM à partir du code HTML fourni et vous demandera la syntaxe Gherkin appropriée. Pour le cas ci-dessus, nous avons déjà généré le Gherkin que nous pouvons passer tel quel :
Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website
Résultat final
Enfin, selon le flux de travail et l'invite mentionnée, il génère le fichier de définition d'étape pour les étapes et le scénario Gherkin mentionnés ci-dessus, qui peut être copié par les responsables de l'assurance qualité dans leur cadre de concombre après un contrôle de qualité mineur pour accélérer l'automatisation du comportement qu'ils étaient censés tester.
Avec l’avènement de l’IA et l’émergence des copilotes, les humains verront leur productivité augmenter. Ils pourront repousser encore plus loin leurs limites en matière d’innovation en confiant les tâches rudimentaires et routinières à l’IA. Cependant, je pense toujours que nous devrions simplement les considérer comme des assistants dans tout travail que nous effectuons et que l'intelligence de leur utilisation résiderait toujours chez les humains, car les équipes de technologie, de marketing, de vente et de réussite client tentent d'exploiter la puissance des LLM dans leurs flux de travail. la même chose peut être faite par les ingénieurs QA afin qu'ils puissent augmenter encore leur productivité et rendre leur travail consistant à garantir la qualité et la stabilité des logiciels passionnant !