Minko Gechev présente Skill Eval, un framework TypeScript pour tester les compétences des agents IA comme Gemini CLI et Claude Code. Il souligne l'importance de tester ces compétences, comparables à du code, pour éviter des comportements inattendus. Skill Eval évalue les agents en les exécutant dans des conteneurs Docker et en notant leurs performances. Il propose d'intégrer ces tests dans les pipelines CI/CD pour garantir la fiabilité des compétences des agents. Le framework permet d'utiliser des évaluateurs déterministes ou basés sur des rubriques LLM, et recommande de réaliser plusieurs essais pour évaluer à la fois les capacités et la fiabilité des compétences.
L’article explique comment utiliser Playwright combiné à un modèle de langage (LLM) pour créer un testeur de logique d’interface utilisateur adversarial qui va au-delà des tests déterministes classiques en générant des actions intentionnellement hostiles contre une UI vivante afin de déceler des bugs fonctionnels difficiles à trouver, comme des corruptions d’état ou des contournements de validation, en bouclant extraction d’état UI → plan d’actions hostile → exécution et détection d’anomalies, puis en réinjectant les résultats pour affiner la recherche; il détaille l’architecture du système, la construction d’un plan d’attaque JSON par le LLM, l’exécution avec Playwright et les avantages de cette approche versus des scripts statiques, ainsi que les limitations et coûts associés.
Ce billet de blog explore deux méthodes pour évaluer la qualité des suites de tests automatisés, particulièrement dans le contexte de l'écriture de tests par des modèles de langage (LLMs). L'auteur, Mark Seemann, discute d'abord de la couverture de code, souvent critiquée mais potentiellement utile pour les tests générés par des LLMs, car elle peut servir de seuil minimal. Ensuite, il aborde la mutation testing, une technique plus avancée qui modifie le code pour vérifier si les tests détectent ces changements, révélant ainsi des cas non couverts. Bien que ces méthodes aient des limites, elles offrent des pistes pour critiquer et améliorer les tests, surtout dans un contexte où les tests sont générés automatiquement.
Testssl.sh est un outil open source pour auditer la configuration SSL/TLS des serveurs web. Il permet de vérifier les protocoles supportés, les suites de chiffrement, les vulnérabilités connues et les en-têtes de sécurité HTTP. Fonctionnant sous Linux, macOS, FreeBSD et Windows (via WSL), il est également disponible en image Docker. Ce tutoriel explique son installation, son utilisation et l'interprétation des rapports générés, offrant une solution complète pour sécuriser les échanges web.
L’article « Tests & Cluedo : enquêtez sur votre code » utilise une métaphore policière pour expliquer les différents types de tests en développement logiciel. Le test unitaire isole une classe (comme un interrogatoire en salle blanche) en utilisant des doublures (mocks) pour éliminer les dépendances externes, permettant de cibler précisément la source d’un bug. Le test fonctionnel reconstitue le crime en testant l’intégration des composants (router, controller, service, template) dans un environnement réel, mais sans interface graphique. Enfin, le test End-to-End (E2E) simule l’expérience utilisateur complète avec un vrai navigateur, utile pour les parcours critiques, mais coûteux en temps et en maintenance. L’auteur recommande une stratégie en pyramide : privilégier les tests unitaires (rapides et précis), compléter avec des tests fonctionnels, et réserver les tests E2E aux fonctionnalités clés. L’approche proactive du TDD (Test Driven Development) est encouragée pour anticiper les bugs plutôt que de les chasser après coup. Un guide pratique et imagé pour bien structurer ses tests avec PHPUnit.
Cet article souligne l'importance cruciale des tests dans le développement logiciel. Il argue que les tests ne sont pas une activité annexe, mais une partie intégrante de l'ingénierie logicielle. Les tests améliorent la conception du code, donnent confiance pour apporter des modifications, et facilitent la collaboration en révélant des cas limites et des exigences cachées. En intégrant les tests dès le début du processus de développement, les développeurs peuvent concevoir un logiciel de meilleure qualité, effectuer des changements avec moins de stress et découvrir des exigences cachées avant qu'elles ne deviennent des obstacles.
L'article explore comment le Playwright MCP (Model Context Protocol) en mode Agent peut naviguer de manière autonome dans une application, découvrir des fonctionnalités clés et générer des tests exécutables sans script manuel. À travers une démonstration en direct sur une application de films, l'auteur montre comment le MCP peut découvrir des cas limites, construire une couverture de test et même révéler des bugs non détectés manuellement. L'agent explore l'application, interagit avec elle comme un utilisateur réel, et génère automatiquement des tests basés sur ces interactions, offrant ainsi une approche puissante d'assistance par IA pour le développement et les tests.
L'article explique comment créer un cas de test HTML simple pour signaler un bug ou un comportement inattendu. Il recommande d'utiliser des outils en ligne comme jsfiddle ou codepen, mais préfère souvent les URLs de type data: pour partager du code rapidement. L'auteur illustre cela avec un exemple de code HTML et JavaScript qui extrait une valeur de style, montrant les différences de résultats entre les navigateurs. Il démontre comment condenser ce code en une seule ligne et l'utiliser directement dans la barre d'URL d'un navigateur. Enfin, il mentionne avoir ouvert un rapport de bug pour le problème discuté.
L'article propose une méthode structurée pour mettre à jour un projet Symfony en toute confiance. Il recommande d'utiliser des outils comme Bruno pour tester les routes, de mettre à jour les dépendances et les outils, d'appliquer des analyses statiques avec PHPStan, et de refactorer le code avec Rector. L'article insiste sur l'importance des tests automatisés et des mises à jour progressives pour éviter les régressions.
L'article explique comment configurer des tests de régression visuelle automatisés en utilisant Playwright. L'auteur décrit comment il a utilisé Playwright pour capturer des captures d'écran avant et après des modifications sur une page web, puis comparer les résultats pour détecter des changements non intentionnels. Il partage son expérience en détaillant la configuration, la génération de tests dynamiques et les ajustements nécessaires pour gérer les cas particuliers. L'article met en avant la puissance de Playwright pour automatiser les tests visuels, tout en soulignant les défis liés à la stabilité et à la fiabilité des tests.
L'article explique comment utiliser les fichiers .http pour tester des API et augmenter la couverture de code sans écrire de tests d'intégration complexes. Les fichiers .http sont des fichiers texte simples qui décrivent des requêtes HTTP et peuvent être exécutés directement depuis des IDE populaires comme IntelliJ, Visual Studio et VSCode, ou en ligne de commande.
L'auteur propose d'utiliser ces fichiers dans les pipelines CI/CD pour exécuter des tests d'API et collecter la couverture de code. Il mentionne l'outil httpyac pour exécuter les fichiers .http en ligne de commande et dotnet-coverage pour instrumenter les binaires et collecter la couverture de code sans framework de tests.
L'article fournit également des exemples de commandes pour exécuter ces outils et intégrer les tests dans des pipelines Azure DevOps et GitHub Actions
.
Les tests d'architecture sont essentiels pour maintenir la cohérence et la maintenabilité d'un projet sur le long terme. Ils permettent de vérifier que le code respecte les règles architecturales définies, assurant ainsi une structure correcte et empêchant les dérives lors de l'ajout de nouvelles fonctionnalités ou de l'intégration de nouveaux développeurs. Ces tests servent également de documentation explicite des règles, facilitant l'intégration des nouveaux membres de l'équipe. Plusieurs outils, comme Deptrac, PHPArkitect, PHPat, et Pest, peuvent être utilisés pour mettre en place ces tests dans l'écosystème PHP, chacun ayant ses propres méthodes de configuration et d'utilisation.
L'article compare les tests unitaires au jeu Cluedo, où chaque ligne de code est un suspect potentiel. En utilisant PHPUnit, les développeurs peuvent identifier les bugs comme des crimes à résoudre. L'article explique comment les tests, notamment avec PHP 8.4, permettent de vérifier chaque combinaison possible pour éviter les erreurs en production. Le Test-Driven Development (TDD) est présenté comme une méthode préventive, où les tests sont écrits avant le code pour anticiper les problèmes. L'article souligne l'importance des mocks et des doublures pour simuler les dépendances externes et assure que les tests sont essentiels pour maintenir la qualité du code et dormir tranquille.
L'article présente une liste d'outils open source pour le test d'API, essentiels dans les architectures modernes basées sur les microservices. Il explique les différents protocoles comme SOAP, REST et GraphQL, et les critères techniques pour choisir un outil de test d'API. Parmi les outils mentionnés, on trouve Airborne, APIAuto, Apickli, ArexTest, Bruno, Dredd, Firecamp, Frisby, Insomnia, mountebank, RestAssured, Schemathesis, SoapUI, SuperTest et Tavern. Chaque outil a ses propres caractéristiques et avantages, comme la facilité d'utilisation, la compatibilité avec divers langages de programmation, et l'intégration avec les processus de développement et de livraison de logiciels.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Un résumé d'une conférence sur les tests