IA et testing : comment l'apprentissage automatique et l'IA révolutionnent le testing


L'intelligence artificielle et l'apprentissage automatique peuvent aider à tester, tester et re-tester. Pour faire face à la multitude de tâches différentes, la plupart des entreprises misent aujourd'hui sur des architectures de systèmes informatiques complexes. Le noyau est généralement constitué d'un système SAP S/4 basé sur le cloud, complété par d'autres solutions logicielles spécifiques. Selon les besoins, il peut s'agir par exemple de systèmes d'exécution de la fabrication (MES) les plus adaptés possibles, de solutions de gestion de la relation client (CRM) ou encore de logiciels de gestion du cycle de vie des produits (PLM).
Les entreprises disposent ainsi d'une informatique performante. Mais il en résulte aussi de nombreuses interfaces et ruptures de médias - et donc de nombreuses sources d'erreurs potentielles, par exemple à la suite d'un transfert de données peu soigné. Le groupe informatique SAP de Walldorf connaît lui aussi les défis qui en découlent et propose depuis quelque temps, avec SAP Business Technology Platform (BTP), une boîte à outils qui doit notamment simplifier considérablement l'interaction des multiples composants individuels. Pour ce faire, la BTP met à disposition divers outils, par exemple la gestion des API au sein de SAP Integration Suite.
Les outils BTP sont extrêmement utiles et facilitent souvent considérablement le travail des départements informatiques internes à l'entreprise. Cependant, un vieux principe reste valable : si les entreprises veulent garantir un déroulement sans faille des processus sur l'ensemble des systèmes, elles ne peuvent pas renoncer à tester régulièrement leurs environnements système. Une tâche fastidieuse compte tenu de la fréquence croissante des mises à jour et des mises à niveau. Les procédés modernes qui misent sur l'utilisation de l'intelligence artificielle (IA) et des concepts d'apprentissage automatique (machine learning) permettent de remédier à cette situation.
Identifier les causes d'erreur avec ML
"Depuis quelque temps déjà, les entreprises misent de plus en plus sur l'automatisation des tests", rapporte Thomas Steirer, spécialiste des tests et de l'IA au sein de l'entreprise d'ingénierie numérique Nagarro et actuellement chargé de divers travaux de recherche dans ce domaine. "Mais souvent, ils n'utilisent pas les méthodes les plus modernes, notamment parce qu'ils n'ont pas une vue d'ensemble de ce qui est déjà techniquement possible. À cela s'ajoutent de nombreux points d'interrogation conceptuels".

"Pour les consultants, il est essentiel d'avoir une vue d'ensemble des processus actuels d'une entreprise en très peu de temps".
Thomas Steirer,
Spécialiste des tests et de l'IA,
Nagarro
Parmi celles-ci, il y a par exemple la question de savoir à quels endroits les structures de test modernes doivent intervenir. Thomas Steirer souligne ici que l'analyse automatique des cas de test échoués offre justement des enseignements utiles aux entreprises : "Notre expérience pratique montre que de nombreux échecs de tests système sont généralement dus à quelques causes. Une fois celles-ci connues, les départements informatiques peuvent optimiser leur infrastructure de test de manière beaucoup plus ciblée. La condition pour cela est qu'ils évaluent et classent les fichiers log des tests qui ont échoué à l'aide de modèles d'apprentissage automatique. Malheureusement, il y a souvent un retard à combler dans ce domaine".
La raison en est que cette procédure n'est pas triviale. Pour permettre une classification appropriée, les experts en testing doivent par exemple d'abord entraîner l'algorithme ML nécessaire : Pour cela, ils lui indiquent les catégories d'erreurs courantes - par exemple les erreurs de base de données, de réseau ou d'interface utilisateur - et s'entraînent ensuite manuellement à les classer correctement à l'aide de données d'entraînement. L'algorithme apprend ainsi progressivement à reconnaître automatiquement les modèles et à classer les erreurs de manière autonome. Dans la plupart des cas, une attribution correcte est alors possible.
Avantages particuliers de cette procédure : grâce à la classification définie en amont, le service informatique ne doit plus considérer et traiter les erreurs identifiées de manière isolée, mais peut directement éliminer les sources d'erreur causales. La procédure est en outre compatible avec la plupart des cadres et outils d'automatisation et de test. Ainsi, les coûts d'investissement pour les entreprises restent gérables. Thomas Steirer commente : "En fait, les entreprises effectuent une sorte de méta-testing et simplifient ainsi la recherche des causes. Les connaissances ainsi acquises les aident finalement à éliminer le plus efficacement possible les sources d'erreurs courantes".
La formation de clusters basée sur l'IA est une possibilité d'optimiser systématiquement les paysages de test existants. Mais des visualisations intelligentes peuvent aussi y contribuer, notamment lorsque les entreprises veulent évaluer de grands portefeuilles de tests. Thomas Steirer rapporte : "Les ordinateurs peuvent parfaitement évaluer de grandes quantités de données selon des critères prédéfinis. Mais les solutions IA actuelles ne sont pas (encore) en mesure de rechercher de manière autonome des structures inefficaces derrière les montagnes de données, par exemple. Dans ce domaine, les humains ont un net avantage, tant que ces structures sont préparées de manière à être facilement compréhensibles pour eux".
Thomas Steirer propose à cet effet une astuce simple que Nagarro utilise toujours avec beaucoup de succès chez ses clients : Afin que le service informatique ne doive pas évaluer chaque test individuellement, il peut préparer visuellement différents scénarios à l'aide de graphiques. Ceux-ci peuvent être facilement déduits des fichiers journaux existants et permettent de visualiser la logique "derrière" les différents cas de test - en particulier la séquence des étapes individuelles exécutées - sous forme de modèle convivial.
Ces modèles sont finalement un outil utile pour les humains : En effet, contrairement à l'IA actuelle, ces derniers sont particulièrement doués pour reconnaître les schémas ("patterns"), les chevauchements ou encore les erreurs de planification structurelles, et ce souvent dès le premier coup d'œil. De nombreuses erreurs de planification potentielles peuvent ainsi être détectées et éliminées à un stade précoce. Thomas Steirer : "Bien sûr, des erreurs continuent de se produire. L'équipe de test doit donc valider pratiquement chaque adaptation de la logique. Mais en principe, cette procédure fournit un outil simple pour adapter progressivement les outils de testing et d'automatisation utilisés à ses propres besoins - d'autant plus que les visualisations sont de plus en plus simples grâce aux outils d'IA correspondants".
Que ce soit lors de tests de logiciels individuels ou lors de tests d'environnements de systèmes complets, des difficultés de communication apparaissent régulièrement entre les utilisateurs, les spécialistes informatiques et les solutions logicielles utilisées.
Correction autonome des erreurs et auto-guérison
C'est aussi pour cette raison que les entreprises utilisent actuellement volontiers des concepts DevOps : ils doivent simplifier et raccourcir les voies de communication entre toutes les personnes concernées - et contribuer ainsi à une correction plus facile des erreurs.
Une analogie simple montre pourquoi cela est nécessaire : si un utilisateur découvre une utilisation non homogène de la langue sur un site web - par exemple un mélange d'allemand et d'anglais - il doit le signaler en retour afin que le service informatique puisse ensuite apporter des corrections dans le système CMS ou directement dans le code HTML. En cas d'erreurs plus complexes, cette procédure devient rapidement très longue et fastidieuse.
Il serait donc préférable que les utilisateurs légitimes (et éventuellement formés à cet effet) puissent signaler de telles erreurs directement au logiciel et initier ces corrections de manière autonome - ou du moins soumettre des propositions à l'équipe de développement. Condition préalable : une reconnaissance sémantique intelligente, fiable et quasiment exempte d'erreurs ainsi que des algorithmes très performants, capables d'associer directement les descriptions ou les descriptions d'une erreur en langage humain aux causes probables de l'erreur. Pour l'instant, ces solutions ne sont pas encore disponibles sur le marché. Les applications de l'IA se limitent donc pour l'instant à aider activement les programmeurs à coder, par exemple.
Mais les progrès fulgurants de ces dernières années mettent ces concepts d'application d'IA plus avancés à portée de main. Thomas Steirer se montre donc confiant : "Aujourd'hui déjà, l'IA et l'apprentissage automatique modifient massivement la manière dont les entreprises testent leurs environnements système et leurs solutions logicielles. Nous n'en sommes qu'au début de cette évolution. Avec les progrès de la recherche en IA, des automatisations que nous pouvons à peine imaginer aujourd'hui seront probablement possibles dans le test opérationnel. Mais l'homme reste indispensable pour les travaux conceptuels et créatifs".
Vers l'inscription du partenaire :
