Catégories
Start-up et applications

L'IA et le ML rendent les tests plus intelligents … mais les outils autonomes sont loin d'être prêts pour l'entreprise

L'intelligence artificielle et l'apprentissage automatique (ML) trouvent leur place dans plus d'applications et de cas d'utilisation. Les fournisseurs de tests de logiciels offrent de plus en plus de capacités «autonomes» pour aider les clients à devenir encore plus efficaces. Ces capacités sont particulièrement importantes pour les équipes Agile et DevOps qui doivent offrir une qualité rapide. Cependant, les capacités de test autonomes sont relativement nouvelles, elles ne sont donc pas parfaites ou uniformément capables dans tous les domaines. En outre, la désignation «autonome» ne signifie pas que les outils sont en fait entièrement autonomes, ils sont simplement d'assistance.

«Actuellement, l'IA / ML fonctionne très bien pour tester les problèmes côté serveur et, si elle est correctement mise en œuvre, elle peut considérablement améliorer la précision et la quantité de tests au fil du temps», a déclaré Nate Nead, PDG d'une société de services de développement de logiciels personnalisés. Dev.co. «Malheureusement, là où AI / ML échoue actuellement, c'est dans la connexion à la pile complète, y compris les interfaces UX / UI avec test de base de données. Bien que cela s’améliore, les humains sont toujours les mieux placés pour dire à un ingénieur DevOps ce qui semble le plus beau, fonctionne le mieux et se sent le mieux.

CONTENU CONNEXE:
Que rechercher dans un outil d'automatisation de test Web et mobile
Les tests continus ne sont plus facultatifs
Les recommandations de Forrester pour créer une capacité de test continu réussie

Dev.co a essayé des solutions de TextCraft.io et BMC, et a tenté certains processus internes personnalisés, mais la véritable «intelligence» n'est pas encore là où l'imagination pourrait mener, a déclaré Nead.

C'est le début
L'analyste directeur principal de Gartner, Thomas Murphy, a déclaré que les tests autonomes se situaient «toujours à gauche du cycle de Gartner Hype». (C'est la première étape de l'adoption caractérisée par des attentes exagérées.)

La bonne nouvelle est qu’il existe de nombreux endroits où trouver de l’aide, notamment des sociétés de recherche industrielle, des sociétés de conseil et des équipes de services aux fournisseurs. Le vice-président et analyste principal de Forrester, Diego Lo Giudice, a créé un modèle de maturité à cinq niveaux inspiré du modèle «Levels of Driving Automation» de SAE International. Niveau 5 (le niveau le plus avancé) du modèle de Lo Giudice, expliqué dans un rapport, est entièrement autonome, mais cela ne sera pas possible de si tôt, a-t-il déclaré. Les niveaux un à quatre représentent des niveaux croissants d'augmentation humaine, du minimum au maximum.

La plus récente Magic Quadrant de Gartner pour l'automatisation des tests logiciels inclus une section sur les nouveaux outils de test autonomes. Le sujet sera couvert plus à l'avenir, a déclaré Murphy.

«Nous pensons à ce stade que le marché actuel est relativement mature, nous avons donc retiré ce Magic Quadrant et notre intention est de commencer à écrire davantage sur les capacités autonomes et potentiellement lancer un nouveau marché l'année prochaine», a déclaré Murphy. "Mais d'abord, nous essayons de réduire les éléments pour parler de l'espace et de son fonctionnement."

Lo Giudice de Forrester a déclaré que l'intelligence artificielle était incluse dans la plupart des critères couverts par Vague d'automatisation des tests fonctionnels en continu.

«Il s’est toujours posé la question de savoir si vous utilisez l’IA, à quoi bon et quels sont les avantages», a déclaré Lo Giudice. «La plupart des outils de la Wave utilisent l’IA, l’apprentissage automatique et l’automatisation à des degrés divers, il est donc de plus en plus courant de savoir qui utilise l’IA et l’apprentissage automatique.»

Comment l'IA et le ML sont utilisés dans les tests
L'IA et le ML sont disponibles pour une utilisation à différents points du SDLC et pour différents types de tests. Le domaine le plus populaire et le plus mature est le test d'interface utilisateur.

«Applitools vous permet de créer une base de référence de la tolérance à laquelle vous voulez être sur les différences. Si quelque chose est déplacé du coin supérieur droit vers le coin inférieur gauche, est-ce une erreur ou êtes-vous d'accord pour accepter cela car les tests devraient réussir? » dit Lo Giudice de Forrester.

Il existe également une analyse des fichiers journaux qui peut identifier les modèles et les valeurs aberrantes. Murphy de Gartner a déclaré que certains fournisseurs utilisent des fichiers journaux et / ou une technique d'exploration Web pour comprendre une application et comment elle est utilisée.

«Je vais regarder l'interface utilisateur et commencer à l'exercer, puis découvrir tous les chemins comme vous aviez l'habitude d'avoir dans les premiers jours des applications Web, donc il s'agit simplement de créer une carte de manière récursive en parlant à travers les applications», a déclaré Murphy . "C'est utile lorsque vous avez une application très dynamique qui est orientée contenu (comme) les catalogues de commerce électronique, les actualités et les flux."

Si l'outil comprend les fonctionnalités les plus fréquemment utilisées d'une application, il peut également être capable de comparer ses résultats avec les tests qui ont été exécutés.

"Quelle est l'intersection entre l'utilisation des fonctionnalités et le scénario de test que vous avez généré? Si cette intersection est vide, vous avez un problème », a déclaré Lo Giudice de Forrester. «Est-ce que je conçois et automatise des tests pour les bonnes fonctionnalités? S'il y a un changement dans cet espace, je souhaite créer des tests pour ces applications. Il s'agit d'une stratégie d'optimisation, à partir de la production. »

Le traitement du langage naturel (NLP) est une autre technique d'IA qui est utilisée dans certains des outils de test, bien que pour apporter des capacités de test autonomes à des testeurs moins techniques. Par exemple, le langage spécifique au domaine Gherkin (DSL) pour Cucumber a une syntaxe relativement simple: «Donné, quand, alors», mais le langage naturel est encore plus facile à utiliser.

«Il existe un outil (gratuit et open source) appelé Gauge créé par ThoughtWorks (qui) combine la PNL avec le concept de BDD, donc maintenant nous pouvons commencer à dire que vous pouvez écrire des exigences en utilisant un langage relativement normal et à partir de là, l'outil peut comprendre de quels tests vous avez besoin, lorsque vous répondez à l'exigence », a déclaré Murphy de Gartner. "(T) hen, ils connectent cela à quelques outils différents qui créent ces (tests) pour vous et les exécutent."

Parasoft utilise l'IA pour simplifier les tests d'API en permettant à un utilisateur d'exécuter l'outil d'enregistrement et de lecture et à partir de là, il génère des API.

"Cela vous dirait quelles API vous devez tester si vous voulez aller au-delà de l'interface utilisateur", a déclaré Lo Giudice de Forrester.

Certains outils prétendent être «auto-réparateurs», comme remarquer qu'un chemin a changé en fonction d'un changement d'interface utilisateur. Au lieu de faire échouer le test entier, l'outil peut reconnaître que même si un champ a été déplacé, l'URL est la même et que le test doit réussir au lieu d'échouer.

«Très souvent, lorsque vous effectuez des tests Selenium, vous obtenez un bogue, (mais) vous ne savez pas s'il s'agit d'un vrai bogue de l'interface utilisateur ou si c'est simplement le test qui échoue à cause du localisateur», a déclaré Lo Giudice. «L'intelligence artificielle et l'apprentissage automatique peuvent les aider à surmonter ce genre de choses.»

L'IA et le ML peuvent également être utilisés pour identifier des tests similaires qui ont été créés au fil du temps afin que les tests inutiles puissent être éliminés.

Dev.co utilise l'IA et le ML pour trouver et corriger plus rapidement les erreurs d'exécution.

"Les améliorations de la vitesse de l'IA / ML permettent de parcourir plus rapidement les erreurs d'exécution, généralement en liant et en reliant des éléments en temps réel, et en passant aux erreurs ultérieures qui peuvent apparaître dans un lot de code particulier", a déclaré Nead de Dev.co. . «Actuellement, l'augmentation de la machine se produit généralement dans la liaison des éléments, les alertes en temps réel et les redémarrages des outils de test sans généralement de longs délais entre l'exécution des tests.»

Les outils de test autonomes nécessitent-ils des compétences particulières?
Le public cible des produits de test de logiciels autonomes sont les testeurs techniques, les testeurs métier et les développeurs, en général. Bien que ce ne soit jamais une mauvaise idée de comprendre les bases de l'IA et du ML, il n'est pas nécessaire d'être un data scientist pour utiliser les produits, car le fournisseur est responsable de garantir l'exactitude continue des algorithmes et des modèles utilisés dans leurs produits.

"Dans la plupart des cas, vous n'écrivez pas l'algorithme, vous l'utilisez simplement. Être capable de comprendre où cela pourrait mal tourner et quelles sont les forces ou les faiblesses de ce style peut être utile. Ce n’est pas comme si vous deviez apprendre à écrire en Python », a déclaré Murphy de Gartner.

Nead de Dev.co a déclaré que ses responsables des tests QA et les responsables DevOps sont ceux qui utilisent des outils de test autonomes et que l'utilisation des outils diffère en fonction du rôle et du projet dans lesquels la personne est engagée.

Si vous souhaitez créer vos propres capacités de test autonomes, les spécialistes des données et les testeurs doivent travailler ensemble. Par exemple, Capgemini a expliqué dans un webinaire avec Forrester qu'il avait développé un modèle ML pour optimiser les tests de serveurs Dell. Avant que Dell n'introduise un nouveau serveur, il teste toutes les configurations matérielles et logicielles possibles, qui dépassent plus d'un billion de tests.

«Ils ont déclaré que les 1,3 billion de cas de test possibles prendraient un an à tester, ils se sont donc assis avec des testeurs intelligents et ont construit un modèle d'apprentissage automatique qui examinait les configurations commerciales les plus fréquentes utilisées au cours des 3, 4, 5 dernières années», a déclaré Lo Giudice de Forrester. «Ils ont utilisé ces données et en tirant essentiellement parti, ils ont identifié les cas de test qu'ils devaient tester pour une couverture maximale avec un modèle d'apprentissage automatique qui vous indique qu'il s'agit du nombre minimum de cas de test (à exécuter).»

Au lieu d'avoir besoin d'un an pour exécuter 1,3 billion de tests, ils ont pu exécuter un sous-ensemble de tests en 15 jours.

Avantages
L'exemple Dell et les cas d'utilisation décrits ci-dessus montrent que les tests autonomes peuvent économiser du temps et de l'argent.

«La vitesse vient de deux manières. L'un est à quelle vitesse puis-je créer des tests? L'autre est à quelle vitesse puis-je maintenir ces tests? » dit Murphy de Gartner. «L'un des problèmes auxquels les gens se heurtent lorsqu'ils construisent l'automatisation est qu'ils sont submergés de maintenance. J'ai créé des tonnes de tests et maintenant, comment les exécuter pendant le temps dont je dispose pour les exécuter? »

Par exemple, si une organisation DevOps effectue trois builds par heure mais que le test d'une build prend une heure, les choix sont d'attendre que les tests s'exécutent en séquence ou de les exécuter en parallèle.

"L'une des choses dans CI est de ne pas casser la construction. Si vous démarrez une build, vous ne devriez pas en démarrer une autre tant que vous ne savez pas que vous avez une bonne build, donc si les tests (pour trois builds) sont exécutés (en parallèle), je romps le fonctionnement de DevOps. Si nous devons attendre, les gens traînent avant de pouvoir tester leurs modifications. Donc, si vous pouvez dire en fonction des changements dont vous avez besoin, vous n’avez pas besoin d’exécuter 10 000 tests, exécutez simplement ces 500 tests, cela signifie que je peux effectuer une compilation beaucoup plus rapidement », a déclaré Murphy.

De même, il se peut que seuls 20 tests doivent être créés au lieu de 100. Créer moins de tests prend moins de temps et un plus petit nombre de tests prend moins de temps à automatiser et à exécuter. Les économies s'étendent également à l'utilisation des ressources cloud et aux services de test.

«Plus vous pourrez déplacer l’utilisation de l’IA vers la gauche, plus vos avantages seront importants», a déclaré Lo Giudice de Forrester.

Limites
L'utilisation de l'IA et du ML dans les tests est relativement nouvelle, avec beaucoup de progrès réalisés au cours des 12 à 18 derniers mois. Cependant, il y a toujours place pour l'amélioration, l'expansion et l'innovation.

La plus grande limitation est peut-être liée aux outils eux-mêmes. Bien qu'il y ait une tendance à penser à l'IA en termes généraux, il n'y a pas d'IA générale que l'on puisse appliquer à tout. Au lieu de cela, les applications les plus réussies de l'IA et du ML sont étroites, car l'intelligence artificielle étroite (ANI) est l'état de l'art. Ainsi, aucun outil ne gérera tous les types de tests sur le code, quelle que soit la façon dont il a été construit.

«Ce n’est pas seulement le fait qu’il s’agisse du Web ou non. Cet outil fonctionne sur ces frameworks ou pour Node.js, mais il ne fonctionne pas pour le site Web que vous avez créé en Java, nous nous concentrons donc sur JavaScript, PHP ou Python », a déclaré Murphy de Gartner. "Worksoft se concentre sur les éléments hérités traditionnels, mais vu la façon dont l'outil fonctionne, je ne pouvais pas simplement le déposer et tester un site Web générique."

Nead de Dev.co considère un humain dans la boucle comme une limitation.

«Les correctifs nécessitent toujours une compréhension du code sous-jacent, (car il faut) réagir et prendre des notes lorsque des erreurs apparaissent. Les plus grands avantages des tests sont les améliorations de vitesse offertes par rapport aux systèmes existants. Ce n'est peut-être pas encore énorme, car une grande partie des tests nécessite encore un redémarrage et une révision par un ingénieur DevOps, mais dans l'ensemble, les économies augmentent avec le temps », a déclaré Nead.

Les tests autonomes continueront de devenir plus courants car ils aident les testeurs à faire un meilleur travail de test plus rapidement et moins cher qu'ils ne l'ont fait dans le passé. La meilleure façon de comprendre comment les outils peuvent aider est de les expérimenter pour déterminer comment ils s'intègrent aux processus et technologies existants.

Au fil du temps, certaines équipes peuvent se retrouver à adopter des solutions de test autonomes par défaut, car leurs outils préférés ont tout simplement évolué.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *