paint-brush
Tirer parti de ChatGPT pour les tests de logicielspar@ratikeshmisra
4,466 lectures
4,466 lectures

Tirer parti de ChatGPT pour les tests de logiciels

par Ratikesh4m2023/09/16
Read on Terminal Reader

Trop long; Pour lire

Au cours des deux dernières années, les progrès de l'IA, en particulier des LLM (Large Language Models), se sont avérés capables de résoudre plus efficacement les problèmes traditionnels. 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.
featured image - Tirer parti de ChatGPT pour les tests de logiciels
Ratikesh HackerNoon profile picture
0-item
1-item

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.


Variation du temps pour les tests manuels avec complexité du code


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 :


  • Manque d'expérience en automatisation parmi les équipes d'assurance qualité manuelle pour écrire le code évolutif.
  • Le coût du démarrage de l'automatisation ( en termes de bande passante nécessaire à la gestion de l'ingénierie et à l'assurance qualité ) est trop élevé en raison de l'énorme retard dans les cas de test qui doivent être automatisés.
  • Mauvaise qualité de la documentation pour les cas de test et aucune maintenance appropriée de la suite de régression et de bon sens.
  • En raison du fait que la plupart des sociétés de produits se concentrent sur le développement de fonctionnalités, la stabilité et la qualité sont donc mises en veilleuse.
  • L’évaluation humaine des cas de test est préférable à l’évaluation automatique.


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).

Utiliser GPT3.5 pour BDD et son automatisation


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.


Page de connexion de YC Hacker News


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

Workflow de 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.


ChatGPT génère la syntaxe Gherkin pertinente pour un comportement présenté



Workflow pour générer du code compatible avec le concombre à partir de la syntaxe Gherkin

Génération de code compatible Cucumber avec les étapes Gherkin à l'aide de GPT


É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é.



Invite à affiner GPT pour générer l'automatisation basée sur le concombre


É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.


Flux HTML qui doit être utilisé pour l'automatisation


É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.


La définition de l'étape du concombre générée

Âge des copilotes

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 !