Brief IA : Agents de codage : révolution des tests manuels logiciels

Agents de codage : révolution des tests manuels logiciels

Brief IA
Tom Levy·5 min·2 vues

Les agents de codage peuvent exécuter le code qu'ils écrivent, ce qui leur permet de vérifier son bon fonctionnement en temps réel, contrairement aux LLMs qui produisent du code sans validation. Cette capacité d'exécution est essentielle pour garantir la fiabilité et la rapidité des tests de code, ce qui pourrait transformer le développement logiciel.

En bref
1Les agents de codage surpassent les LLM en exécutant le code qu'ils génèrent, assurant ainsi sa fonctionnalité.
2L'intégration des tests unitaires et manuels garantit une vérification exhaustive du code produit par les agents.
3L'automatisation des navigateurs, avec des outils comme Playwright, renforce la fiabilité des interfaces web testées par les agents.
💡Pourquoi c'est importantLes tests manuels par les agents de codage améliorent la qualité du logiciel, réduisant les erreurs non détectées par les tests automatisés.
Le brief IA que lisent les pros

Tu codes avec l’IA ?

Outils, agents et nouveautés dev IA décryptés, chaque soir en 5 min. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisis ton rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

📄
L'analyse en français

La nouvelle ère des agents de codage

Les agents de codage se distinguent par leur capacité unique à non seulement générer du code, mais aussi à l'exécuter immédiatement. Cette fonctionnalité les rend infiniment plus pratiques que les modèles de langage de grande taille (LLM), qui se contentent de produire du code sans aucune vérification de son bon fonctionnement. En effet, il est crucial de ne jamais présumer que le code généré par un LLM est opérationnel tant qu'il n'a pas été testé en conditions réelles. Les agents de codage, en revanche, peuvent confirmer que le code qu'ils produisent fonctionne comme prévu ou effectuer des itérations jusqu'à ce qu'il atteigne cet objectif.

L'importance cruciale des tests unitaires

L'incitation des agents à rédiger des tests unitaires, notamment en adoptant la méthode du développement piloté par les tests (TDD), constitue une approche puissante pour s'assurer que le code a été correctement mis à l'épreuve. Cependant, cette méthode n'est pas la seule voie à suivre. Le passage réussi de tests ne garantit pas nécessairement que le code fonctionne comme attendu. Les développeurs expérimentés savent que même lorsque tous les tests automatisés sont réussis, le code peut encore échouer de manière flagrante, par exemple en provoquant un plantage du serveur au démarrage ou en omettant un élément essentiel de l'interface utilisateur. Ainsi, les tests automatisés ne peuvent remplacer les tests manuels. Voir une fonctionnalité en action de ses propres yeux avant de l'intégrer dans une version reste une étape précieuse. J'ai souvent constaté que les tests manuels effectués par les agents révèlent des problèmes que les tests automatisés n'ont pas détectés.

Stratégies pour les tests manuels par les agents

La manière dont un agent doit tester "manuellement" un morceau de code dépend largement de la nature de ce code. Pour les bibliothèques Python, une méthode efficace est d'utiliser python -c "... code ...". Cette technique permet de passer directement une chaîne de code Python à l'interpréteur, y compris du code qui importe d'autres modules. Les agents de codage sont généralement familiers avec cette astuce et l'utilisent parfois spontanément. Cependant, leur rappeler de tester à l'aide de python -c peut souvent s'avérer bénéfique :

  • Testez cette nouvelle fonction sur des cas limites en utilisant python -c

Pour d'autres langages, des mécanismes similaires peuvent exister, et en leur absence, un agent peut rapidement écrire un fichier de démonstration, le compiler et l'exécuter. J'encourage parfois l'utilisation du répertoire /tmp pour éviter que ces fichiers temporaires ne soient accidentellement ajoutés au dépôt principal.

  • Écrivez du code dans /tmp pour tester des cas limites de cette fonction, puis compilez et exécutez-le

De nombreux projets impliquent la création d'applications web utilisant des API JSON. Dans ces cas, je recommande aux agents de les tester en utilisant curl :

  • Lancez un serveur de développement et explorez cette nouvelle API JSON avec curl

Demander à un agent d'"explorer" incite souvent à tester divers aspects d'une nouvelle API, couvrant ainsi rapidement un large éventail de scénarios. Si un agent découvre un dysfonctionnement lors de ses tests manuels, je lui conseille de le corriger en utilisant le TDD rouge/vert, garantissant ainsi que le nouveau cas est couvert par les tests automatisés permanents.

L'automatisation des navigateurs pour tester les interfaces web

La mise en place d'une procédure de test manuel devient encore plus cruciale lorsqu'un projet implique une interface web interactive. Historiquement, ces interfaces étaient difficiles à tester par le code, mais la dernière décennie a vu des améliorations significatives dans les systèmes d'automatisation des navigateurs web. L'exécution d'un véritable navigateur comme Chrome, Firefox ou Safari contre une application peut révéler une multitude de problèmes dans un cadre réaliste. Les agents de codage maîtrisent parfaitement ces outils. Le plus puissant d'entre eux aujourd'hui est Playwright, une bibliothèque open source développée par Microsoft. Playwright offre une API complète avec des liaisons dans plusieurs langages de programmation populaires et peut automatiser n'importe quel moteur de navigateur populaire.

Demander simplement à votre agent de "tester cela avec Playwright" peut suffire. L'agent peut alors choisir la liaison de langage la plus appropriée ou utiliser l'outil playwright-cli de Playwright. Les agents de codage fonctionnent très bien avec des interfaces en ligne de commande (CLI) dédiées. L'agent-browser de Vercel est un wrapper CLI complet autour de Playwright, spécialement conçu pour être utilisé par les agents de codage.

Mon propre projet, Rodney, poursuit un objectif similaire, bien qu'il utilise le Chrome DevTools Protocol pour contrôler directement une instance de Chrome. Voici un exemple de prompt que j'utilise pour tester des fonctionnalités avec Rodney :

  • Démarrez un serveur de développement, puis utilisez uvx rodney --help pour tester la nouvelle page d'accueil, regardez les captures d'écran pour confirmer que le menu est au bon endroit

Ce prompt intègre plusieurs astuces :

  • Dire "utilisez uvx rodney --help" incite l'agent à exécuter rodney --help via l'outil de gestion de paquets uvx, qui installe automatiquement Rodney la première fois qu'il est appelé.

  • La commande rodney --help est spécifiquement conçue pour fournir aux agents toutes les informations nécessaires pour comprendre et utiliser l'outil.

  • Dire "regardez les captures d'écran" suggère à l'agent d'utiliser la commande de capture d'écran de Rodney et lui rappelle qu'il peut utiliser ses propres capacités visuelles sur les fichiers d'image résultants pour évaluer l'apparence visuelle de la page.

Ce prompt intègre un grand nombre de tests manuels dans une instruction concise !

Suivez Brief IA

L'actu IA du jour, aussi dans votre fil.

Commentaires