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