État de l'Intelligence Artificielle appliquée à l'Ingénierie de la Qualité 2021-2022
Section 1 : Premiers pas

Chapitre 3 par Sogeti & Capgemini Engineering

Machine Learning pour le test

Métier ●○○○○
Technique ●●●●○

 

Download the "Section 1: Get Started" as a PDF

Use the site navigation to visit other sections and download further PDF content

 

By submitting this form, I understand that my data will be processed by Sogeti as described in the Privacy Policy.

Pour améliorer la compétitivité de notre entreprise, nous (membres de l’IT) doivent prendre des décisions rapides et éclairées pour savoir où et comment mettre en œuvre l'IA dans nos activités d'ingénierie de la qualité.Dans ce chapitre, nous examinons l'apprentissage automatique (ML) afin d'en acquérir une compréhension de haut niveau, quand l'utiliser et comment cela fonctionne. Bien que nous fournissions quelques exemples concrets d'ingénierie de la qualité, la mise en œuvre réelle d'outils basés sur l'apprentissage automatique sera abordée dans les sections suivantes.

Terminologie la plus utilisée

S1C3 picture 1.png[1]

 

Bien que nous reconnaissions qu'il n'existe pas de terme universellement accepté ou légalement défini pour l'intelligence artificielle[2], permettez-nous de faire une tentative. L'IA désigne la capacité d'un système à exécuter des fonctions cognitives normalement associées à l'esprit humain, telles que la perception, le raisonnement, l'apprentissage, l'interaction avec l'environnement, la résolution de problèmes et même l'exercice de la créativité. L'incorporation de l'IA dans l'ingénierie de la qualité permet aux processus d'automatisation de prendre en charge la majeure partie de la gestion des tests, libérant ainsi les professionnels pour explorer de nouvelles méthodes d'amélioration de la qualité finale. L'ingénierie de la qualité pilotée par l'IA et l'apprentissage automatique peut aboutir à l'optimisation et à l'accélération de la qualité des applications et de la vitesse de livraison, tout en assurant le suivi des indicateurs de performance clés et des métriques qui doivent être mesurés.

 


[1] Deep learning est couvert dans le prochain chapitre
[2] Section 1, chapitre 2

Machine learning

​Le Machine Learning (ML) existe depuis les années 1980, mais ce n'est qu'au cours de la décennie2010 qu'il a fait son chemin dans le développement de logiciels grand public. Aujourd'hui, le ML alimente tout, des voitures autonomes à la recherche, en passant par les transactions boursières. L'apprentissage machine (ML) est l'étude des algorithmes informatiques qui s'améliorent automatiquement grâce à l'expérience et à l'utilisation de données. L'apprentissage automatique est le sous-ensemble de l'IA qui "apprend" comment effectuer une tâche spécifique de manière plus efficace et efficiente au fil du temps. Ces programmes analysent les données de performance historiques afin de prédire et d'améliorer les performances futures. En détectant des modèles dans des échantillons de données, appelés "données d'apprentissage", les algorithmes d'apprentissage automatique construisent un modèle et apprennent à faire des prédictions et des recommandations sans être explicitement programmés pour le faire. En outre, les algorithmes s'adaptent en fonction des nouvelles données et expériences afin d'améliorer continuellement leur efficacité. Les algorithmes d'apprentissage automatique sont utilisés dans une grande variété d'applications où il est difficile, voire impossible, de développer des algorithmes classiques pour effectuer les tâches requises.

 

S1C3 picture 2.png

Figure: différents sous-types de Machine Learning

Pourquoi le Machine Learning pour le test maintenant?

Depuis 2010, les avancées significatives en matière de calcul et de disponibilité des données ont permis de réaliser encore plus de percées dans les algorithmes et les infrastructures d'apprentissage automatique. En d'autres termes, nous disposons désormais de la capacité, des informations, des moyens et du savoir-faire nécessaires pour mettre en œuvre l'apprentissage automatique dans de nombreux autres contextes. Aujourd'hui, il est rare que nous devions partir de zéro en matière d'apprentissage automatique, car les bibliothèques et outils existants simplifient considérablement le processus. Tout ce que nous devons savoir, c'est comment déployer une bibliothèque d'apprentissage automatique telle que TensorFlow.​

L'ingénierie de la qualité possède toutes les caractéristiques nécessaires à l'application de l'apprentissage automatique. Il a le potentiel pour le big data, les questions analytiques, et/ou la gamification. Lorsqu'il est combiné avec notre besoin croissant d'analyser et de prendre des décisions plus rapidement pour livrer plus rapidement, l'environnement est propice à l'innovation. La question n'est pas de savoir si l'apprentissage automatique aura un impact sur la façon dont nous développons, testons et mettons en ligne les logiciels, mais plutôt de savoir quand et comment. Cela ne peut se faire que par l'adoption d'une culture d'apprentissage.

Jusqu'à présent, la grande majorité des discussions ont porté sur la façon dont l'apprentissage automatique va éliminer les emplois de testeurs ou sur les raisons pour lesquelles l'apprentissage automatique ne peut éliminer aucun emploi de testeur. La réalité se situe quelque part entre les deux. Comme pour l'automatisation, l'apprentissage automatique permet aux machines d'effectuer des tâches de routine et de bas niveau. Les organisations doivent abandonner l'assurance qualité "best effort" au profit de l'amélioration continue de la qualité. Sans les machines, nous ne pourrons pas être compétitifs, et il appartient aux dirigeants et aux managers d'éduquer leurs employés sur la façon dont l'apprentissage automatique peut les aider à devenir non seulement de meilleurs testeurs, mais en fin de compte des propriétaires de qualité.

​Que faut-il considérer, par où commencer?

​Les parties suivantes de ce chapitre vous aideront à identifier les opportunités de Machine Learning appropriées en vous proposant plusieurs cas d'utilisation. Nous vous recommandons de garder à l'esprit les questions suivantes tout au long de votre lecture :

  • Étape 1 : Demandez-vous quel est le défi qui mérite d'être relevé ?
  • Étape 2 : Les données pertinentes sont-elles disponibles ?
  • Étape 3 : Comment pouvons-nous mesurer notre succès ?
  • Étape 4 : Construire ou acheter ?

Après avoir identifié les opportunités d'apprentissage automatique pour votre entreprise et assuré la disponibilité des données, vous aurez besoin d'un système pour suivre et gérer l'efficience et l'efficacité. Les responsables QE doivent prendre des décisions sur la base des données analytiques exposées par l'apprentissage automatique, ce qui nécessite un ou des tableaux de bord analytiques de haute qualité qui regroupent les données de tous les environnements, applications, outils et langages et les convertissent en informations exploitables. Cela vous aidera à décider sur quelles parties de votre code et de vos tests vous devez vous concentrer et prioriser, ainsi que sur les techniques de développement et de test à utiliser.

 

Supervised learning

Dans l'apprentissage supervisé, on nous donne un ensemble de données et nous savons déjà à quoi devrait ressembler notre sortie correcte, en ayant l'idée qu'il existe une relation entre l'entrée et la sortie. Il s'agit d'utiliser un modèle d’apprentissage de correspondance entre les caractéristiques d'entrée et la variable cible. L'apprentissage supervisé est utilisé dans les modèles prédictifs (régression, association et classification) dans lesquels les relations entre les entrées et les sorties sont bien comprises. Il est applicable à une grande variété de scénarios analytiques et prédictifs rencontrés lors des tests de logiciels.

S1C3 picture 3.png

Figure: Supervised Learning, ou apprentissage supervisé

Principes de base

Ce que c'est

Il existe deux principaux types de problèmes associés à l'apprentissage supervisé :

  1. Classification : l'objectif est de prédire les résultats d'une sortie discrète. En d'autres termes, nous essayons de faire correspondre des variables d'entrée à des catégories discrètes. Exemple : Étant donné un patient atteint de Covid19, nous devons prédire l'évolution de la maladie du patient en termes d'états cliniques : modéré, sévère ou critique.
  2. Régression : nous essayons de prédire les résultats de variables de sortie (« étiquette ») en continue, ce qui signifie que nous essayons de faire correspondre les variables d'entrée (ou caractéristiques) à une fonction continue. Exemple : Étant donné l'expérience d'une personne, nous devons prédire son salaire en fonction de ses années et de son type d'expérience.

Les problèmes de classification et de régression peuvent avoir une ou plusieurs variables d'entrée, qui peuvent être de tout type de données, y compris des données numériques ou catégorielles.

Quand l'utiliser

Lorsque vous devez créer un modèle prédictif simple à l'aide d'un ensemble de données bien structuré, et lorsque la classification des données d'entrée et les valeurs cibles sont connues.

Comment cela fonctionne
  1. Il déduit une fonction à partir de données de formation étiquetées, qui consistent en une collection d'exemples de formation. Dans l'apprentissage supervisé, chaque exemple est constitué d'une paire d'objets d'entrée (généralement un vecteur) et d'une valeur de sortie souhaitée (également appelée signal de supervision).
  2. Un algorithme d'apprentissage supervisé examine les données d'apprentissage et génère une fonction déduite qui peut être utilisée pour mettre en correspondance de nouveaux exemples.
  3. Dans un scénario idéal, l'algorithme sera capable de déterminer correctement les étiquettes de classe pour les instances non vues.
  4. Cela exige que l'algorithme d'apprentissage fasse des généralisations "raisonnables" à partir des données d'apprentissage pour des situations inédites.

Les algorithmes d'apprentissage automatique supervisé les plus utilisés sont les suivants :

​Exemple 1 : Prédiction du risque dans le cadre du QE

Les responsables de la R&D doivent être conscients des risques associés à chaque version. Ils seront en mesure de déterminer s'il faut ou non procéder à la production et pourront estimer l'allocation des ressources d'atténuation.

  • Résultat prévisible : score de risque par libération
  • Données : Le nombre de commits, l'heure du commit, le nombre de tests et leurs résultats, le pourcentage de code couvert par les tests (unitaires et système), le nombre de builds, le nombre de releases, le jour de la semaine de la release, le nombre de user stories et de fonctionnalités couvertes dans une release, le nombre de bugs résolus dans une release, et ainsi de suite.
  • Algorithme : Régression linéaire.

Il tente d'ajuster l'ensemble de données à un hyperplan droit. Elle fonctionne bien lorsque les variables de votre ensemble de données ont des relations linéaires. Dans ce cas, la régression linéaire basée sur l'apprentissage automatique peut prédire avec précision le score de risque de mise en production de chaque version, quelle que soit la quantité de code, de tests, de témoignages d'utilisateurs ou de fonctionnalités qu'elle contient.

Example 2 : Portails de qualité intelligents

Les responsables R&D doivent automatiser l'échec des builds à haut risque dans un pipeline CI/CD. Cependant, les barrières et les seuils de qualité sont déployés et configurés manuellement, et leur comportement historique et leur stabilité peuvent varier considérablement. Des seuils statiques vous permettront de n'accepter que le niveau le plus bas possible. Dès lors, comment s'assurer que le statu quo en matière de qualité est maintenu et que la tendance générale de la qualité est positive ?

  • Résultat prévisible : Le 'build' est-il acceptable ou non ?
  • Données : Tendances globales de la couverture du code, couverture du code par test (unité, API, régression), ajouts et modifications de code non testé, mutations de code testé, etc.

Algorithme : Les algorithmes Random Forest combinent les prédictions de nombreux arbres de décision individuels qui divisent l'ensemble de données de manière répétée en branches distinctes avec le gain d'information le plus élevé à chaque division. Cette structure de ramification leur permet d'apprendre par eux-mêmes des relations non linéaires. La meilleure façon d'envisager les forêts aléatoires est de les comparer à la sagesse des foules ; les forêts aléatoires font souvent des prédictions plus précises que n'importe quel arbre de décision. Les forêts aléatoires peuvent être utilisées pour créer des barrières de qualité intelligentes qui apprennent continuellement comment (et à quels seuils), quand et où se déployer. Par rapport aux seuils statiques, les portails de qualité intelligents sont dynamiques et permettent de détecter beaucoup plus rapidement les tendances cachées en matière de qualité et de risque.

 

 

Autres cas d'utilisation

  1. Prédiction des composants de code les plus risqués: Identifier les composants de code les plus risqués d'un référentiel sur la base des modèles de changement extraits des données historiques des métadonnées du référentiel.

    Des algorithmes utiles pour cela : 

    • Machines à vecteur de support
    • Forêt aléatoire
    • Régression logistique
    • Arbres de décision

  2. Test basé sur le changement:
    Sélectionnez les tests 'spécifiques' à exécuter après chaque 'commit' ou changement d'exigence' associé pour les builds entrants.

    Algorithmes utiles à cet effet : 

    • Machines à vecteur de support
    • Arbres de décision
    • Forêt aléatoire

  3. Prévision du nombre de défauts:
    Prédiction de séries temporelles pour le nombre de défauts entrants sur la base du comptage historique des défauts entrants quotidiens.

    Algorithmes utiles à cet effet :

    - Régression logistique

  4. État de livraison:
    Prévoir l'état d'une application pré-livraison, sur la base de données provenant de diverses sources dans l'environnement de production.

    Algorithmes utiles à cet effet : 

    • Machines à vecteur de support
    • Arbres de décision
    • Forêt aléatoire (random forest)
    • Régression logistique

  5. Triage automatisé des défauts :
    Triage automatique des défauts en fonction de l'analyse des journaux effectuée sur les enregistrements d'exécution des tests et le référentiel des défauts. Le modèle de triage examine la nature de l'échec, les échecs sont ensuite classés comme des échecs dus à des problèmes de configuration ou d'environnement, des problèmes de produit, des problèmes de programme de test, des problèmes de cadre de test.

    Algorithmes utiles à cet effet : 

    • Machines à vecteur de support
    • Régression logistique
    • Bayes naïfs
    • Arbres de décision
    • Forêt aléatoire
     
  6. Analyse des modèles d'utilisation :
    Analyse des journaux d'application et des flux d'exécution des tests pour trouver les flux de travail fréquents, l'utilisation et la séquence des actions les plus courantes. 

    Algorithmes utiles à cet effet :

    • Apprentissage de règles d'association
    • Algorithme d'Apriori
     
  7. Classification des 'commits': 
    Identifiez les commits de correction de bogues en analysant les commentaires des commits à l'aide du traitement du langage naturel. Classer les commits dans différentes catégories comme l'amélioration des fonctionnalités, la correction des bogues, les changements fonctionnels, les tâches de refactoring, etc.

    Algorithmes utiles à cet effet :

    • Forêt aléatoire
    • Machines à vecteur de support
    • Régression logistique
    • Bayes naïfs
    • Arbres de décision

Unsupervised learning ou Apprentissage non supervisé

L'apprentissage non supervisé nous permet d'aborder une catégorie de problèmes avec peu ou pas de connaissances préalables sur la façon dont les résultats devraient se présenter. Nous pouvons dériver une structure à partir de données, même lorsque l'effet des variables est inconnu. Cette structure peut être dérivée en regroupant les données selon les relations entre les variables dans les données. Contrairement à l'apprentissage supervisé, l'apprentissage non supervisé fonctionne uniquement sur des données d'entrée non balisées et ne nécessite pas qu'un enseignant corrige le modèle. Il n'y a pas de retour d'information associé à l'apprentissage non supervisé.

S1C3 picture 4.png

Fondamentaux

Ce que c'est

L'espoir est que, par mimétisme, la machine sera contrainte de construire une représentation interne compacte de son environnement.

Bien qu'il existe de nombreux types d'apprentissage non supervisé, les praticiens sont fréquemment confrontés à deux problèmes principaux :

- Regroupement : Un problème d'apprentissage non supervisé qui consiste à classer des données.

- Estimation de la densité : Un problème d'apprentissage non supervisé qui consiste à résumer la distribution des données.

Quand l'utiliser

Lorsque nous ne savons pas comment classer les données et que nous souhaitons que l'algorithme découvre des modèles et les classe pour nous.

Comment cela fonctionne

  1. L'algorithme reçoit des données non étiquetées
  2. Il déduit une structure à partir des données
  3. L'algorithme identifie les groupes de données qui présentent un comportement similaire.

Parmi les algorithmes les plus courants utilisés dans l'apprentissage non supervisé, on peut citer :

Cas d'utilisation pour le test

  1. Échecs de test associés:
    Regroupez les cas de test sur la base des enregistrements d'exécution de test afin d'identifier les cas de test qui échouent ensemble. Le clustering K-Means est un algorithme utile pour cela.

  2. Détection des anomalies dans un système en cours de test:
    Identifiez les anomalies en extrayant des caractéristiques des journaux du système. Les algorithmes utiles pour cela sont :
    • Analyse en composantes principales
    • Facteur d'aberration locale
    • Random Forest

  3. Analyse de la couverture des tests pour les fonctionnalités du produit :
    Analyse de la couverture des tests et traçabilité des fonctionnalités souhaitées du produit à l'aide du traitement du langage naturel (NLP) et de la synthèse. 
    Les algorithmes utiles à cet effet sont :
    • Regroupement K-Means
    • Modèles de mélange

  4. Rectification du bruit dans les images, par exemple les images anatomiques produites par l'IRM. Random Forest
    est un algorithme utile pour cela.

Reinforcement Learning ou Apprentissage par renforcement

Le terme "apprentissage par renforcement" désigne le processus consistant à apprendre à des modèles d'apprentissage automatique à prendre une série de décisions. L'agent développe la capacité d'accomplir une tâche dans un environnement incertain et potentiellement complexe. Dans l'apprentissage par renforcement, on présente à une intelligence artificielle une situation ressemblant à un jeu. L'ordinateur résout le problème par essais et erreurs, avec les récompenses et pénalités associées.

S1C3 picture 5.png

Fondamentaux

Ce que c'est

L'apprentissage par renforcement est une classe de problèmes dans lesquels un agent doit apprendre à fonctionner dans un environnement donné grâce à la rétroaction.

L'apprentissage par renforcement est le processus qui consiste à déterminer ce qu'il faut faire - comment associer des situations à des actions - afin de maximiser l'ampleur d'un signal de récompense numérique. On ne dit pas à l'apprenant quelles actions il doit entreprendre, mais il doit déterminer, par essais et erreurs, celles qui lui apportent la plus grande récompense.

En raison de l'interaction des algorithmes d'apprentissage par renforcement avec leur environnement, une boucle de rétroaction existe entre le système d'apprentissage et ses expériences.

Quand l'utiliser

  • lorsque nous manquons de données d'entraînement suffisantes,
  • lorsque nous sommes incapables de définir clairement l'état final souhaité,
  • ou lorsque le seul moyen d'apprendre à connaître l'environnement est l'interaction.

Comment cela fonctionne

  1. L'algorithme prend une action sur l'environnement.
  2. Il est rémunéré si l'action rapproche la machine de la maximisation des récompenses totales.
  3. L'algorithme optimise la séquence idéale d'actions dans le temps en s'autocorrigeant.
Exemples d'algorithmes

Exemple 1:​ Portails de qualité intelligents

Il est possible de 'gamifier' la chasse aux bugs en appliquant un système de points aux bugs. Il s'agit simplement de définir quelles formes d'exploitation seront récompensées et/ou pénalisées. La récompense ultime étant le plantage de l'application, et de plus petites récompenses pour les erreurs dispersées le long du chemin.

  • Résultats prévisibles : défauts, pannes d'applications et défauts de conception.
  • Données : Non disponibles et non pertinentes puisqu'il s'agit d'apprentissage par renforcement. Sans données de formation préexistantes, l'agent apprendra par essais et erreurs. Tout ce qui est nécessaire est la capacité d'assigner un objectif final et des points (positifs et négatifs) le long du chemin.
  • Algorithme : Apprentissage Q
    Il détermine l'action à entreprendre en évaluant la valeur d'être dans un état particulier par rapport à la valeur d'effectuer une action particulière dans cet état. Le Q-learning consiste à équilibrer l'exploration et l'exploitation. C'est à vous de décider si vous voulez demander à votre algorithme d'exploiter le chemin que vous souhaitez ou si vous voulez effectuer des tests exploratoires.

Exemple 2: exécution intelligente des tests

Aujourd'hui, la technique d'exécution des tests la plus efficace est l'analyse d'impact des tests (TIA), qui identifie les tests à exécuter en réponse aux modifications du code. Vous pouvez utiliser l'apprentissage de politiques pour déterminer les tests à exécuter en fonction des risques et des contraintes de ressources. Y a-t-il un historique de bogues de régression dans le microservice ? Cette route est-elle fréquemment utilisée par vos utilisateurs ? Ces tests doivent-ils être exécutés simultanément ?

    • Un résultat prévisible : Comment économiser des ressources et accélérer le lancement sans compromettre la qualité ?
    • Données : Nombre de tests et leur résultat, couverture du code par test (unité et système), nombre de bogues dans une version, temps d'exécution des tests, chemins du comportement de l'utilisateur, tests marqués ship, etc.
    • Algorithme : Recherche directe de règles
      L'apprentissage de politiques établit un lien direct entre chaque état et l'action la plus appropriée dans cet état. L'apprentissage de règles est le processus par lequel votre algorithme apprend à effectuer des tests par lui-même.

Cas d'utilisation supplémentaires

  • Automatiser les gestes : un robot apprend les flux de travail fonctionnels et effectue des tests manuels automatisés en réalisant des actions telles que toucher, faire défiler, tourner et double-taper sur le système à tester.

  • Jeux de tests : les « apprenants par renforcement » peuvent être formés à effectuer des actions dans des environnements de jeu vidéo par des techniques de force brute et tester diverses caractéristiques d'un jeu.

  • Tri de grands ensembles de données : Les robots peuvent reconnaître les objets grâce à l’apprentissage par renforcement. Ce type de robots intelligents est utilisé par les sites de commerce électronique pour trier leurs millions de produits chaque jour.

 

 

IA explicable

​En termes simples, l'IA explicable est la capacité d'expliquer ou de présenter la raison pour laquelle une certaine décision ou un certain résultat a été pris(e) dans un format compréhensible par les humains. L'objectif de l'explicabilité est le même pour tous les types de modèles ML, mais la façon dont les modèles s'expliquent peut être différente.

L'IA explicable (XAI), l'IA interprétable et l'IA transparente font toutes référence à des techniques d'intelligence artificielle (IA) qui sont dignes de confiance et faciles à comprendre par les humains. Cela contraste avec le concept de "boîte noire" dans l'apprentissage automatique, où même les concepteurs de l'IA sont incapables d'expliquer pourquoi l'IA a pris une décision particulière.

S1C3 picture 6.png

Fondamentaux

Ce que c'est

Explainable (XAI) aide à expliquer et à comprendre les parties utiles du fonctionnement d'un algorithme, qui améliorent la confiance humaine. Cela comprend les éléments suivants :

  • Vérifier les données utilisées pour former les modèles d'apprentissage automatique (ML) - pour s'assurer que le "biais" est compris.
  • Comprendre les chemins de décision pour les cas limites (comme les faux positifs et les faux négatifs).
  • Comprendre la robustesse des modèles, notamment par rapport à des exemples contradictoires.

Quand l'utiliser

  • Lorsque nous devons comprendre, expliquer et justifier le résultat d'un algorithme,
  • Lorsqu'il est essentiel d'obtenir le raisonnement et la justification d'une décision particulière. Exemple : Les clients qui se sont vu refuser un prêt bancaire demandent la raison de ce refus.

Comment cela fonctionne

S1C3 picture 7.png

Une fois le modèle construit, les techniques examinent toutes les caractéristiques des données afin de déterminer leur importance relative dans la détermination des résultats du modèle. Les méthodes XAI utilisent une approche unique pour examiner le modèle et en déduire la méthodologie sous-jacente. Sur la base de ces facteurs, on obtient des résultats qui peuvent être fiables et facilement compris par les humains.

Cas d'utilisation

Cas d'utilisation de l'IA explicable pour l'identification de codes plus risqués : L'IA explicable identifie les paramètres les plus influents, dans un format lisible par l'homme, qui ont contribué à la classification d'un composant de code comme risqué/défectueux. Cela justifie la fonction du modèle et établit la confiance dans celui-ci.

S1C3 picture 8.png

About the authors

Vivek Jaykrishnan

Vivek Jaykrishnan

Vivek Jaykrishnan is an enterprise test consultant and architect with extensive experience. He has over 22 years of experience leading Verification and Validation functions, including functional, system, integration, and performance testing, in leadership positions with reputable organizations. Vivek has demonstrated success working across a variety of engagement models, including outsourced product verification and validation in service organizations, independent product verification and validation in captive units, and globally distributed development in a product company. Additionally, Vivek has extensive experience developing and implementing test strategies and driving testing in accordance with a variety of development methodologies, including continuous delivery, agile, iterative development, and the waterfall model. Vivek is passionate about incorporating cognitive intelligence into testing and is also interested in exploring the frontiers of IoT testing.

Antoine Aymer

Antoine Aymer (chief editor)

Antoine Aymer is a passionate technologist with a structured passion for innovation. He is currently the Chief Technology Officer for Sogeti's quality engineering business. Antoine is accountable for bringing solutions and services to the global market, which includes analyzing market trends, evaluating innovation, defining the scope of services and tools, and advising customers and delivery teams. Apart from numerous industry reports, such as the Continuous Testing Reports, the 2020 state of Performance Engineering, Antoine co-authored the "Mobile Analytics Playbook," which aims to assist practitioners in improving the quality, velocity, and efficiency of their mobile applications through the integration of analytics and testing.