ChatGPT aurait réussi à trouver des bogues dans les bases de données
après avoir été entraîné par l’équipe de StarRocks pour effectuer des tests automatisés

Depuis la sortie de ChatGPT en novembre dernier, les utilisateurs n’ont de cesse d’étendre chaque jour les cas d’utilisation de cet outil d’intelligence artificielle (IA) afin de faciliter et accélérer leurs tâches aussi bien triviales que fastidieuses. Récemment, les contributeurs au projet StarRocks, - la plateforme permettant de faciliter et accélérer les analyses de données en temps réel, - se sont livrés à une activité bien particulière consistant à utiliser ChatGPT pour des tests automatisés de base de données afin de voir s’il pourrait remplacer des outils tels que SQLsmith, SQLancer et bien plus encore. À l’issue des séances d’apprentissage et de tests, il s’avère que les résultats sont assez impressionnants et prometteurs. Mais pourrait-il remplacer des outils matures de test automatisés ?

ChatGPT face à SQLsmith

SQLsmith est un outil de tests automatisés de base de données qui génère des requêtes SQL aléatoires basées sur un schéma de table fixe et qui exécute les requêtes sur les bases de données pour tester ses performances et sa robustesse. Pour tester les aptitudes de ChatGPT dans les tests automatisés, l’équipe de StarRocks a fourni les instructions suivantes : « Please generate the select statements with five table join, aggregate, sort, limit, window function, multi subqueries, multi string functions, multi date functions, json functions for testl_basic tables by in Starrocks syntax ». Selon les instructions reçues, ChatGPT a produit la requête complexe ci-dessous :

Nom : ChatGPT vs Sql Smith.png
Affichages : 38509
Taille : 111,7 Ko

Étant donné que ChatGPT a réussi générer facilement des requêtes SQL complexes et aléatoires basées sur des entrées en langage naturel, les développeurs de StarRocks déclarent que « ChatGPT est bien placé pour remplacer le travail de SQLsmith ». Mais pour l’heure, cela ne signifie pas que ChatGPT pourrait systématiquement remplacer complètement SQLsmith dans toutes ses tâches.

Dans leur démarche, les mainteneurs de StarRocks ont poussé encore plus loin leurs tests en cherchant à voir si l’outil d’intelligence artificielle peut valablement être utilisé pour maintenir des outils de tests automatisés de base de données. Quiconque a utilisé ces outils reconnaît qu’il s’agit d’un problème majeur. Chaque fois qu’une nouvelle fonction, un nouvel opérateur ou un nouveau type de données est ajouté, les ingénieurs doivent mettre à jour le code source de leurs outils comme SQLsmith et SQLancer. C’est à la fois fastidieux et chronophage.

Pour s’assurer que ChatGPT pouvait effectivement assumer cette tâche, les développeurs de StarRocks ont demandé à ChatGPT d’écrire une requête à l’aide des fonctions StarRocks JSON. Initialement, ChatGPT a répondu que StarRocks ne prenait pas en charge les fonctions JSON. Mais après avoir transmis les documents JSON de StarRocks à ChatGPT, l’outil d’intelligence artificielle a pu apprendre des documents fournis et a réussi à générer une requête SQL avec les fonctions JSON de StarRocks. Ci-dessous, une copie des instructions en langage naturel et les requêtes générées par l’IA.

Nom : ChatGPT vs Sql Smith2.png
Affichages : 1542
Taille : 160,5 Ko

Vu les résultats obtenus, les testeurs soutiennent que s’il « est clair que ChatGPT n’est peut-être pas prêt à être déployé actuellement, il démontre une incroyable capacité à apprendre et à s’adapter rapidement lorsque le matériel d’apprentissage nécessaire est fourni ».

ChatGPT contre SQLancer

Voyant à quel point ChatGPT s’est bien comporté par rapport à SQLsmith, l’équipe de StarRocks s’est lancée dans un nouveau test de ChatGPT, cette fois-ci en cherchant à voir comment l’IA se comparait à SQLancer en testant le principe de partitionnement logique ternaire (TLP) de SQLancer. SQLancer (Synthesized Query Lancer) en lui-même est un outil qui permet de tester automatiquement les systèmes de gestion de bases de données (SGBD) afin de trouver des bogues logiques, c’est-à-dire des bogues qui amènent le SGBD à récupérer un ensemble de résultats incorrect dans leur implémentation.

Pour ce faire, un schéma du principe TLP, dans lequel une requête SQL aléatoire (Q) et un prédicat (P) ont été fournis, avec trois prédicats (P, non P, et P est null) appliqués à la requête. Une Union All est ensuite effectuée sur les résultats des trois requêtes. Au départ, ChatGPT n’était pas à même de gérer ces différents scénarios. Mais après près d’une douzaine de sessions de formation, ChatGPT a développé la capacité de générer des requêtes SQL équivalentes basées sur le principe TLP. Ceci, cependant, ne prouve pas en soi que ChatGPT peut remplacer SQLancer. Étant donné qu’un test SQLancer TLP complet implique deux étapes supplémentaires : la création de tables aléatoires et l’insertion de données, ChatGPT doit également s’en charger. Mais là encore, ChatGPT a réussi à s’en charger.

ChatGPT pour les instructions de création de tables prenant en charge les requêtes

À ce stade, la communauté StarRocks a pu confirmer que ChatGPT pouvait (dans une mesure raisonnable) :

  • Automatiser la création de tables et le chargement des données.
  • Générer automatiquement du SQL de test.
  • Générer automatiquement un oracle de tests (confirmer si les résultats d’exécution SQL sont comme prévus).


Et bien que ces premiers résultats des expériences ChatGPT contre SQLancer aient été passionnants, relève l’équipe de ChatGPT, ils n’ont pas complètement répondu à la question de savoir si ChatGPT peut ou non remplacer ces outils de test. Afin de mieux répondre à cette question, ChatGPT doit être en mesure de prouver qu’il peut gérer quatre exigences supplémentaires. Ce sont notamment le fait que :

  • Les requêtes SQL générées automatiquement doivent être syntaxiquement et sémantiquement correctes ;
  • le schéma et les ensembles de données générés automatiquement doivent être valides ;
  • le code SQL généré automatiquement peut couvrir une grande variété de scénarios ;
  • il existe un moyen efficace de vérifier que le résultat de l’exécution SQL est correct.


Les tests de la communauté StarRocks montrent que ChatGPT a un grand potentiel pour améliorer l’efficacité des tests automatisés, mais il reste encore du travail à faire. ChatGPT nécessite toujours une assistance supplémentaire pour bien comprendre la logique de base des tests automatisés, tels que les principes de réécriture de base du TLP de SQLancer. En outre, soulignent les testeurs, après des dizaines d’heures de formation, ChatGPT ne comprend toujours pas parfaitement le principe TLP, et les prédicats de certains de ses codes SQL réécrits sont erronés.

Pour les testeurs de ChatGPT, ces limites ne devraient pas être insurmontables pour l’outil, car selon ces derniers, le plus grand avantage de ChatGPT est « sa capacité incroyable (et effrayante) à apprendre rapidement ». « Même s’il faut peut-être un certain temps avant que ChatGPT ne soit capable d’écrire des cas de test pour de nouvelles fonctionnalités plus efficacement que les humains », ajoutent les testeurs, « il ne fait aucun doute pour eux que ChatGPT aidera les humains à améliorer l’efficacité et la précision du travail qu’ils font aujourd’hui ».

Si pour l’équipe de StarRocks, les tests avec ChatGPT se sont avérés concluants et pleins d’espoir, il n’en est pas de même pour tout le monde. En effet, Mike, un internaute qui a eu à tester ChatGPT sur des sujets qu’il maîtrise un peu, explique que les réponses données par l’outil étaient souvent fausses au point qu’il fut obligé de lui demander à chaque fois « Êtes-vous sûr que c’est correct ? ». Et au chatbot de répondre à chaque fois « Je suis désolé que vous ayez raison, j’aurais dû dire... », pour ensuite affirmer quelque chose d’un peu plus proche de la vérité. Pour Mike, il ne pourrait pas compter sur ChatGPT ou sur tout autre système qui en dépend, sauf peut-être pour résumer/reformuler un document. Pour lui, cela est inquiétant que les gens l’utilisent pour le développement de logiciels — créer des stubs, du code d’amorçage. C’est peut-être bien si vous connaissez suffisamment bien le langage ou la plate-forme pour résoudre les problèmes générés par les suggestions de l’IA, mais si vous l’utilisez sur quelque chose dont vous n’êtes pas un expert, le résultat pourrait être catastrophique.

Source : Billet Clerdata

Et vous ?

Quels commentaires faites-vous de ces tests ? Convaincants ? Ou pas ?

Que pensez-vous des résultats obtenus suite aux tests effectués avec ChatGPT dans le cadre des tests automatisés pour les bases de données ?

Avez-vous déjà utilisé ChatGPT dans un de vos projets ? Avez-vous été satisfaits des résultats de ChatGPT ?

Voir aussi
Un "jailbreak" de ChatGPT tente d’obliger le chatbot d’IA d’OpenAI à enfreindre ses propres règles sous peine de mort, l’astuce permet parfois de contourner les filtres de contenu du chatbot
ChatGPT a fourni des instructions sur la façon de fabriquer du crack et de l’introduire clandestinement en Europe, selon un rapport
OpenAI le créateur de ChatGPT entraîne son IA pour remplacer les programmeurs humains, d’après un rapport qui ravive le débat sur la future disparition du métier de développeur
ChatGPT réussit l’entretien de codage Google pour un ingénieur de niveau 3 avec un salaire de 183 000 $ tout en indiquant qu’il ne peut pas reproduire la créativité humaine
La version professionnelle de ChatGPT est maintenant disponible et coûte 42 dollars par mois,
mais beaucoup critiquent ce prix et le jugent "trop élevé pour les utilisateurs occasionnels"ai