L’IA générative, ChatGPT et les grands modèles de langage (LLM) comme GitHub Copilot et d'autres outils de génération de code d’IA modifient les pratiques de développement de logiciels et la productivité. Selon une étude réalisée par McKinsey, les programmeurs qui utilisent des outils d'IA générative sont plus heureux, plus productifs et peuvent se concentrer sur des tâches plus importantes. Il est également indiqué que l’IA les aide à accélérer la documentation, la génération et le remaniement du code de 20 à 50 %. Ces données suggèrent que davantage de DSI et d'équipes devops expérimenteront les capacités de développement logiciel de l'IA générative pour améliorer la productivité et accélérer la modernisation des applications. Si l’IA générative contribue à accélérer le développement - y compris de logiciels -, les tests et l'assurance qualité suivront-ils le rythme plus rapide ? Malheureusement, l'histoire suggère que les pratiques de test sont à la traîne par rapport aux améliorations de la productivité du développement et de l'automatisation du devops.
L’informaticien américain Kent Beck a défini le développement piloté par les tests (TDD) à la fin des années 1990, et l'automatisation des tests existe depuis un certain temps, mais de nombreuses entreprises continuent à sous-investir dans les tests de logiciels. Les tests continus sont à la traîne par rapport aux investissements dans l'automatisation des déploiements avec CI/CD, la construction de l'infrastructure as code (IaC) et d'autres pratiques devops. Alors que de plus en plus d’entreprises utilisent le devops pour augmenter la fréquence des déploiements, les équipes sont tenues d'adopter les tests continus, d'utiliser des fonctionnalités de condition, d'activer des versions Canary, et d'ajouter des capacités AIops. Voici trois façons dont les développeurs et les équipes peuvent adapter les tests continus au nouveau paysage de développement avec des capacités d'IA générative.
Augmenter la couverture des tests
Dans un premier temps, les équipes d'assurance qualité (QA) devraient s'attendre à davantage de code tiers de la part de l'IA générative, et ajouter les outils et l'automatisation nécessaires pour examiner et signaler ce code. « Les outils d'IA générative vont continuer à se populariser au cours de l'année prochaine, ce qui va augmenter considérablement la vélocité, mais aussi poser des risques de sécurité », explique Meredith Bell, CEO d'AutoRABIT. « Les équipes doivent intégrer dès maintenant l'analyse statique du code et l'automatisation des tests d'intégration pour servir de garde-fous à cette nouvelle technologie ».
L'analyse statique et dynamique du code, y compris SAST, DAST et d'autres tests de sécurité du code, sont des outils clés pour les équipes devops qui cherchent à exploiter le code généré par l'IA ou à intégrer l'open source et d'autres exemples de codage suggérés par les LLM. Ces tests permettent d'identifier les failles de sécurité et les problèmes de formatage du code, qu'il soit généré par un développeur ou par une IA.
Automatiser les cas de test
Les équipes d'assurance qualité doivent également s'attendre à ce que les équipes devops créent des fonctionnalités plus rapidement, ce qui se traduira par un plus grand nombre de cas de test nécessitant une automatisation. Si les tests de logiciels ne suivent pas la vitesse de développement et de codage, comment et où les outils d'IA générative peuvent-ils combler le fossé ? Mush Honda, architecte en chef de la qualité chez Katalon, suggère que « les tests générés par l'IA et basés sur des parcours d'utilisateurs réels devraient être combinés avec des tests visuels, des vérifications d'accessibilité et des benchmarks de performance à travers les navigateurs et les appareils afin de s'assurer que toutes les versions répondent à une expérience utilisateur complète ».
Emily Arnott, responsable du marketing de contenu chez Blameless, affirme de son côté que l'assurance qualité doit également envisager d'utiliser les LLM pour générer et automatiser davantage de cas de test. « L'automatisation des tests peut utiliser des outils d'IA tels que les LLM pour devenir plus rapide et plus flexible », explique-t-elle. Avant d’ajouter : « Les LLM vous permettent de demander un script en utilisant le langage naturel, de sorte que vous pouvez dire : « Écrivez-moi un script qui teste ce morceau de code avec chaque entrée de ce fichier journal » et obtenir quelque chose qui fonctionne ».
Évolution et gestion des données d'essai
Il faut également s'attendre à une augmentation de la complexité des tests. Par exemple, la génération de scénarios de test pour un moteur de recherche pourrait s'appuyer sur les parcours des utilisateurs et les mots-clés populaires capturés dans les fichiers journaux et les outils d'observabilité. Mais comme de plus en plus d'entreprises explorent les LLM et la recherche IA, en utilisant des interfaces de requête en langage naturel et des invites, les cas de test devront également devenir plus ouverts. Pour répondre à cette demande, l'assurance qualité aura besoin d'un ensemble de données de test beaucoup plus important et dynamique. Les équipes devops devraient chercher des moyens d'automatiser les tests des applications développées avec des LLM et des interfaces d'interrogation en langage naturel.
« Dans les environnements agiles, le temps est un facteur essentiel, et un système de gestion des données de test complet et en libre-service est crucial », fait savoir Roman Golod, directeur technique et cofondateur d'Accelario. « Les équipes Devops doivent pouvoir générer automatiquement des bases de données virtuelles depuis les environnements de production jusqu'aux environnements hors production ». L’augmentation des capacités de test, de la fréquence et de la taille des ensembles de données de test peut obliger les équipes devops à revoir l'architecture et la capacité de l'infrastructure Devops et de l'infrastructure de test. Sunil Senan, vice-président senior et responsable mondial des données, de l'analytique et de l'IA chez Infosys, ajoute : « Les équipes d'application devraient envisager la migration des pipelines devsecops vers des hyperscalers dotés de capacités d'automatisation des tests pilotées par l'IA, telles que la génération de données synthétiques, la génération de scripts de test et la détection d'anomalies de test, afin d'améliorer les opérations ML ».
« Accélérer le développement, mais aussi porter la qualité des applications »
En résumé, l’assurance qualité peut accroître la portée et la profondeur des tests en augmentant l'automatisation des tests, en mettant à l'échelle les tests continus, en utilisant les capacités de génération de tests de l’IA et en centralisant les grands ensembles de données de test. « Les équipes de développement d'applications de pointe adopteront des tests exploratoires pilotés par l'IA et des tests de régression continus », déclare Esko Hannula, vice-président senior et responsable de la gestion des produits chez Copado. « Les tests passeront de réactifs à proactifs, l'IA identifiant les cas limites et les bogues avant même qu'une fonctionnalité ne soit construite. Ce niveau de test continu robotisé devrait non seulement accélérer le développement, mais aussi porter la qualité des applications à un niveau que nous n'avons pas pu atteindre avec l'automatisation des tests de base ».
Et Coty Rosenblath, directeur technique chez Katalon, d'ajouter : « Nous voyons des tests plus élaborés pour valider la production, alors qu'ils n'auraient pu avoir que des synthèses relativement simples dans le passé. Les équipes construisent des suites de tests dynamiques qui peuvent se concentrer spécifiquement sur les domaines de changement et de risque et éviter de retarder les versions en attendant des suites de régression complètes ». Les capacités d'IA générative utilisées dans le codage et le développement de logiciels devraient être le dernier signal d'alarme pour les responsables devops et QA afin d'investir dans les tests continus, de centraliser leurs données, d'améliorer leur couverture et d'en augmenter la fréquence. Dans ce contexte, l'ajout de capacités d'IA générative apparait clé pour les plateformes de test afin d'atteindre ces objectifs.