Tester c’est douter mais… si une IA le fait pour nous, c’est OK ?

Les tests, tout le monde devrait être assez d’accord pour dire que c’est aussi ennuyeux que c’est important. Et si les écrire ne devenait (presque) qu’un mauvais souvenir ? 👀
Avis aux développeurs PHP parmi vous : c’est la promesse faite par JetBrains aux utilisateurs de son IDE PhpStorm, ceci grâce à l’AI Assistant, qui a récemment pris place au coeur des solutions de l’éditeur.
On va pas se mentir, une IA qui se charge des tests unitaires à notre place, ça fait plutôt rêver. D’autant que près d’un tiers des développeurs PHP n’écriraient tout simplement pas de tests pour leur code (hum).

/* En partenariat avec JetBrains */
Automatiser ses tests grâce à l'AI Assistant de JetBrains
Qu’on se le dise, le truc bien relou avec les tests (s’il n’en faut qu’un pour commencer), c’est leur écriture et leur configuration initiale (aled).
Figurez-vous que c’est justement le premier point sur lequel l’AI Assistant de JetBrains est capable de prendre la main, afin de simplifier la vie des devs en proposant un "premier jet" de ce à quoi pourrait ressembler un test.
L’AI Assistant ne se contente pas de créer des tests basiques : la solution est capable de comprendre la structure de votre code et de proposer des tests pertinents afin de couvrir une grande variété de cas d’usage.
Dans un article sur son blog officiel, JetBrains présente la manière dont fonctionne la création et la génération de tests unitaires avec l’AI Assistant dans PhpStorm.

En sélectionnant par exemple la fonction PHP sur laquelle vous souhaitez porter vos tests, l’AI Assistant de JetBrains est capable de fournir une première version de test pour cette classe.
Un aperçu du fichier de test permet au développeur de prendre la main si celui-ci souhaite apporter quelques modifications avant validation.

Et voilà.
En un simple clic, l’AI Assistant est capable de fournir une version initiale pas du tout dégueu pour votre test, adaptée à votre projet. Une génération qui, somme toute, fait gagner beaucoup de temps — sur un travail de setup qui plus est pas forcément passionnant.
Cette première approche offerte par l’AI Assistant permet aux développeurs de disposer d’une base solide pour leurs tests, qu’ils peuvent ensuite peaufiner et adapter selon leurs besoins spécifiques.
Ah oui tiens, c’est vrai ça : comment on les fait évoluer ces tests ?
Améliorer ses tests avec l’AI Assistant
Bien que l’IA soit canon sur pas mal d’aspects, celle-ci n’est pas encore (à ce jour 👀) dotée d’un pouvoir de mentalisme.
Ainsi, il se peut que vous souhaitiez améliorer le test généré en première intention par l’AI Assistant pour que celui-ci réponde à une problématique bien particulière pour vous, ou à un besoin plus précis et/ou complet.
Pas la peine de vous ruer sur votre clavier pour enchaîner les lignes de code : vous pouvez faire évoluer les tests générés par l’assistant à l’aide de prompts (indications), un peu comme ce qui se fait avec les agents conversationnels grand public comme ChatGPT.
Un bouton "Specify" directement accessible depuis PhpStorm permet "d’étoffer" le prompt à destination de l’AI Assistant, afin de modifier vos tests avec des précisions complémentaires.

Dans la capture ci-dessus, on lui demande par exemple d’utiliser le framework Mockery plutôt qu’avec les Factories de Laravel pour un test déjà existant.
Après validation, l’AI Assistant se charge de la mise à jour du code en tenant compte de cette nouvelle indication. Vous avez la possibilité de travailler avec cette approche pour faire évoluer de manière itérative vos tests grâce à cet assistant intelligent.
Gardez bien en tête que les derniers ajustements restent à votre charge (pas la peine de s’acharner pendant une heure sur un prompt "parfait" alors que la mise à jour à la mano vous prendrait 2-3 minutes), mais clairement, le plus gros est fait.
De même, l’AI Assistant garde une mémoire de vos prompts afin de s’adapter à votre manière de travailler.
Pour revenir à l’exemple précédent, il est ainsi fort probable que l’AI Assistant propose dans la foulée des tests basés par défaut sur Mockery.

Et pourquoi pas le chemin inverse ?
Bonne nouvelle pour les adeptes du TDD : l’AI Assistant peut également vous accompagner dans la génération de code sur base des tests que vous avez écrits.
Pour cela, il vous faut déclencher le lancement d’un chat avec l’assistant après avoir sélectionné le test pour lequel vous souhaiter générer du code.
Le code concerné apparaît dans la fenêtre d’échange avec l’IA, et il est alors possible de demander la génération d’une implémentation pour le test en question.

Cerise sur le gâteau, vous avez la possibilité de sauvegarder vos prompts personnalisés pour que ceux-ci apparaissent directement dans le menu contextuel "AI Actions" de PhpStorm (très très cool).

Un exemple ici avec l’action customisée "Write Implementation"
Cette fonctionnalité vous permet de profiter d’actions réutilisables et assistées par l’IA, un véritable booster de productivité pour vous permettre de vous concentrer sur l’essentiel : votre code et sa qualité.
Découvrir comment utiliser l’AI Assistant dans PhpStorm sur le blog de JetBrains
À propos de l'auteur
Nicolas Lecointre
Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.
À lire également

Passbolt : le gestionnaire de mots de passe open source que votre équipe mérite vraiment
Je connais l’histoire, vous la connaissez, on la connaît tous. Le stagiaire qui est resté six mois, qui a fini par avoir accès à un peu (beaucoup) plus de choses...
Articles similaires


JetBrains partage ses faits marquants et chiffres clés dans son rapport annuel 2024

L’IA prend place au cœur des IDE de JetBrains pour amplifier la productivité des développeurs

Pour mon site, j’ai intégré le gestionnaire de cookies le moins pire des Internets

JetBrains lance RustRover, son nouvel IDE pour les développeurs Rust

JetBrains partage ses faits marquants et chiffres clés dans son rapport annuel 2024

L’IA prend place au cœur des IDE de JetBrains pour amplifier la productivité des développeurs

Pour mon site, j’ai intégré le gestionnaire de cookies le moins pire des Internets
Plus de contenu
Quand le chef veut un chatbot intelligent au plus vite pour notre site vitrine
Quand la CI plante parce qu’un emoji s’est glissé dans une chaîne de caractères

Quand on me demande si j'ai tout testé

Quand je vois un dev senior en action
Quand je m'apprête à expliquer au lead dev que je viens de casser la prod

Quand quelqu'un me raconte une blague pendant que je code

Quand le chef distribue les primes de fin d'année
Quand je me rends compte que l'API a complètement changé et que personne ne m'a prévenu
Quand le chef veut un chatbot intelligent au plus vite pour notre site vitrine
Quand la CI plante parce qu’un emoji s’est glissé dans une chaîne de caractères

Quand on me demande si j'ai tout testé

Quand je vois un dev senior en action
Quand je m'apprête à expliquer au lead dev que je viens de casser la prod


