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

Chapitre 2 par Applitools & Sogeti

Démarrer avec l'IA

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.

Dans le chapitre précédent, nous avons abordé les défis auxquels est confrontée l'ingénierie moderne de la qualité. Nous avons vu que les exigences de qualité des équipes produits ont augmenté, notamment pour les équipes dont les produits sont « consommés » via des applications web ou mobiles. Dans ce chapitre, nous allons faire nos premiers pas dans l'examen de la convergence entre l'ingénierie de la qualité et l'intelligence artificielle. Commençons par une anecdote personnelle.

Dans la vie d'un utilisateur final

Permettez-moi de vous raconter une expérience récente avec le site Web d'une agence de location de voitures. J'ai été incapable de me connecter tard un soir de pandémie. J'étais sûr que mon numéro de compte et mot de passe étaient corrects, mais impossible de m’authentifier. Le message d'erreur indiquait que je devais contacter le service d'assistance aux utilisateurs concernant le programme de fidélité, mais il n'était pas joignable par téléphone à ce moment-là. J'aurais pu utiliser le service d'assistance par SMS, mais cela ne me semblait pas très attrayant. Je voulais essayer de résoudre ce problème par moi-même. J'en étais incapable. Cependant, au lieu de me donner accès, le processus de réinitialisation du mot de passe a créé un nouveau compte pour moi.​

En conséquence, je me suis mis en relation avec un agent de chat en ligne. Après plusieurs échanges, il a été déterminé que mon permis de conduire expiré m'empêchait de me connecter (aux États-Unis, les permis de conduire servent à prouver son identité et ont une date d’expiration). Mes informations d'identification ont fonctionné sans problème après que l'agent ait mis à jour l'année d'expiration de mon permis.

Alors, ai-je rencontré un bug ? Le système aurait pu activer ma connexion et me prévenir que ma licence avait expiré. Au lieu de cela, le système a nécessité une intervention manuelle de leur part et a entraîné une frustration de la mienne. La valeur la plus élevée dans le développement de produits provient de la création de produits qui ravissent les utilisateurs. Lorsque les ingénieurs disposent de plus de temps, ils peuvent se demander si la conception actuelle ravit les clients - même si elle fonctionne.

Comment réduire davantage les problèmes techniques ? Comment cette entreprise pourrait-elle améliorer de manière significative son rendement et sa productivité en matière d'ingénierie de la qualité ?

Qu'y a-t-il sur notre liste de courses ?

We can surely all relate to the previous real-world issue. Now that we are returning to quality engineering, how to get started and address any issues before they impact our end users?

Vous connaissez peut-être le tableau périodique de l'ingénierie logicielle[1], qui regroupe les éléments les plus critiques et fondamentaux de l'ingénierie de qualité. Il peut être utilisé comme ligne directrice pour ce qu'un ingénieur logiciel doit apprendre, comprendre et, surtout, pratiquer. Ils varient en profondeur et en importance. Certains outils sont capables d'optimiser un réseau complexe d'actions. Plusieurs d'entre eux sont capables de contrôler une interface utilisateur graphique (GUI) ou une interface de programmation d'application (API). Certains sont capables d'analyser la couverture du code et de recommander des actions supplémentaires. D'autres sont capables d'analyser les fichiers journaux à la recherche de comportements spécifiques. En outre, certains d'entre eux sont capables d'effectuer des analyses spécialisées, telles que des analyses graphiques. Qu'en est-il de la tâche d'écriture du code de test ? Et si vous pouviez manipuler votre interface utilisateur en utilisant des contrôles web plutôt que des localisateurs d'éléments web. Et si vous pouviez continuer à exécuter vos tests existants tant que les éléments d'interface restent - même si le code de localisation sous-jacent change ?

Nous devons réduire le besoin d'activités humaines à faible valeur ajoutée. Pour augmenter notre productivité, nous pouvons envisager deux types de tâches : les tâches de routine et les tâches sujettes à erreur.

  • Les tâches routinières consomment des ressources à un rythme supérieur à leur valeur. Prenons l'exemple du processus de maintenance des localisateurs Web pour le test des applications. Chaque point de contrôle de test doit avoir un localisateur unique, qui doit rester accessible de version en version. De nombreuses équipes très performantes ont intégré la création de localisateurs web dans leur codage de test. Et si un outil pouvait faire abstraction de la nécessité de maintenir les informations des localisateurs ?
  • Les tâches sujettes aux erreurs sont celles qui sont omises ou évaluées de manière incorrecte. Par exemple, l'analyse des fichiers journaux peut fournir des informations précieuses sur le comportement d'une application, tant pendant le développement qu'en production. Comment construire ces analyses de manière cohérente ? Les ingénieurs ont tendance à omettre les mesures critiques de leurs analyses. Et si un outil pouvait aider à l'évaluation automatique des fichiers journaux et à la création d'une liste de métriques à utiliser ?

Avec l'aide d'outils modernes, un ingénieur qualité logiciel peut envisager d'optimiser les activités suivantes, chacune étant couverte par une section spécifique de ce rapport.

 


[1] https://sites.google.com/site/markussprunck/blog-1/periodic-table-of-software-engineering-know-how

Quelques mots d'avertissement

Comme nous sommes sur le point de plonger dans l'intelligence artificielle appliquée à l'ingénierie de la qualité - et vous êtes au bon endroit - il convient de faire preuve de prudence lorsque l'on effectue des recherches dans ce domaine.

Tout d'abord, cherchez un énoncé de problème qui vous interpelle. Certaines organisations parleront de processus lents et manuels. D'autres parleront de processus sujets aux erreurs. Est-ce que vous ou votre équipe rencontrez ces difficultés ? Voyez-vous des problèmes qui pourraient être automatisés ?

Souvent, les sites Web et les documents relatifs aux produits parlent des avantages ou des bénéfices d'une technologie ou d'une solution donnée. L'entreprise peut avoir publié des livres blancs ou des témoignages de clients. Ces documents servent de point de départ.

De façon réaliste, l'IA dans l'ingénierie de la qualité passe des organisations qui prennent des risques technologiques à celles qui passent plus de temps à évaluer les risques. De nombreux fournisseurs vantent les succès de leurs clients. Posez-leur les questions suivantes :

  • Comment votre flux de travail a-t-il changé depuis que vous avez obtenu le produit ?
  • Comment votre organisation a-t-elle changé depuis que vous avez obtenu le produit ?
  • Que pouvez-vous faire maintenant que vous ne pouviez pas faire avant d'obtenir le produit IA ?
  • Combien de temps faut-il pour former le produit d'IA ?
  • Comment justifiez-vous auprès de votre équipe de direction un investissement continu dans ce produit d'IA ?
  • Dans quelle mesure est-il probable que vous recommandiez ce produit à d'autres personnes ? Pourquoi ?
  • Pourquoi ne pas créer votre propre outil QE basé sur l'IA ?

Essayez de trouver la même réponse auprès de l'entreprise - par le biais de son site web, de son équipe de vente et de la documentation sur le produit. Éliminez le maximum de risques du processus. Si possible, trouvez un partenaire de mise en œuvre ayant l'expérience du déploiement du produit. Préparez vos ressources d'ingénierie à l'adoption d'une telle technologie. Ils pourraient la percevoir comme une menace plutôt que comme une opportunité de les libérer pour des tâches de plus haut niveau.

Maintenant, place à l'intelligence artificielle.

 

 

Définissons l'IA, ou pouvons-nous vraiment le faire ?

​"Notre intelligence est ce qui fait de nous des êtres humains, et l'intelligence artificielle (IA) est une extension de cette qualité"

Yann LeCunn (Chief AI Scientist, Facebook).[1]

​Le concept d'intelligence artificielle n'est pas nouveau. L'humanité a toujours été obsédée par le développement de machines capables d'effectuer certaines des tâches que les humains peuvent accomplir, ce qui a culminé avec l'invention de l'ordinateur numérique. En 1956, lors d'une conférence au Dartmouth College de Hanover, dans le New Hampshire, le domaine de l'intelligence artificielle a été officiellement fondé et le terme "intelligence artificielle" a été inventé. Entre 1957 et 1997, l'IA a connu des hauts et des bas, mais l'intérêt est monté en flèche après la victoire de Deep Blue d'IBM sur Gary Kasparov en 1997. Avec l'avènement du traitement par GPU à la fin des années 2000, l'IA est devenue accessible au grand public, et le domaine n'a cessé de se développer depuis. Comme le souligne à juste titre Andrew Ng[2], professeur à l'université de Stanford et fondateur de Deeplearning.ai, le changement qu'apporte l'IA est analogue à celui que l'électricité a apporté à la société.

Il n'existe pas de définition universelle ou légale de l'intelligence artificielle. Par souci de clarté, nous utilisons fréquemment les termes "systèmes d'IA", "applications d'IA" et "utilisations d'IA". Le terme "intelligence artificielle" est imprécis et peut englober toute une série de perspectives. En effet, diverses techniques sont utilisées pour créer des technologies extrêmement complexes et (partiellement) autonomes, toutes classées dans la catégorie de l'intelligence artificielle.

Dans un livre[3] blanc de février 2020, la Commission européenne affirme que : "En termes simples, l'IA est un ensemble de technologies qui combinent données, algorithmes et puissance de calcul". Et ajoute également que cette formulation ne peut être considérée comme suffisante pour définir l'IA.

En termes (trop) simplifiés, l'intelligence artificielle (IA) tente de simuler l'intelligence humaine par le biais de systèmes informatiques. L'être humain est particulièrement doué pour apprendre et s'adapter à un nouvel environnement sur la base de ce qu'il a appris. L'IA tente d'atteindre ces qualités en utilisant un ensemble d'algorithmes mathématiques qui tentent de simuler le fonctionnement du cerveau humain. Pour reprendre les termes très simples de Yoshua Bengio[4], l'un des plus grands experts mondiaux en IA et pionnier de l'apprentissage profond, "l'IA consiste à fabriquer des ordinateurs qui peuvent nous aider, qui peuvent faire les choses que les humains peuvent faire mais que nos ordinateurs actuels ne peuvent pas faire."

 

Dans le domaine de l'ingénierie de la qualité des logiciels, qu'entendent les fournisseurs par "intelligence artificielle" (IA) et "apprentissage machine" (ML) ?

Ces termes sont souvent utilisés de manière interchangeable pour désigner l'utilisation de moteurs de calcul pour la reconnaissance des formes, l'analyse et la recommandation. Dans un monde idéal, l'IA impliquerait le développement de machines capables d'imiter l'apprentissage, le raisonnement et la perception humains. En tant que sous-ensemble, l'apprentissage automatique implique que les machines peuvent apprendre et agir indépendamment de l'intervention humaine.

Dans la pratique, l'IA désigne les algorithmes et les approches utilisés dans des outils qui accomplissent des tâches semblables à celles d'un être humain. Quelles fonctions sont comparables à celles d'un humain ? En général, l'intelligence artificielle fait appel à une combinaison de détection, d'apprentissage et de raisonnement. Prenons le raisonnement. Une personne peut raisonner en examinant une application et en déterminant quelles fonctions ont été testées de manière adéquate et lesquelles peuvent nécessiter des tests supplémentaires. Si l'IA peut nécessiter une formation, une fois formée, elle peut continuer à utiliser les tests pour cette fonction au fur et à mesure de son évolution.

Bien que cette description puisse suffire pour certains, nous allons maintenant nous intéresser de plus près à l'intelligence artificielle. Les chapitres techniques suivants définiront les termes courants de l'IA, tels que le Machine Learning et le Deep Learning. Nous proposerons une association entre certains problèmes propres à notre discipline et les algorithmes qui peuvent nous aider.

 


[1] https://research.fb.com/blog/2016/12/artificial-intelligence-revealed/
[2] https://twitter.com/AndrewYNg
[3] https://ec.europa.eu/info/sites/default/files/commission-white-paper-artificial-intelligence-feb2020_en.pdf
[4] https://yoshuabengio.org

About the authors

Moshe Milman

Moshe Milman

Moshe brings over 15 years of experience in leadership, engineering and operational roles in public and private companies. Prior to founding Applitools, Moshe held leadership roles at Wave Systems Corp., Safend, Amdocs (NASDAQ:DOX) and Sat-Smart Ltd. Moshe holds a Bachelor’s degree in Information Systems from the Technion Israel’s Institute of Technology and MBA from IDC (Wharton Business School GCP program).

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.

Venkatesh Babu

Venkatesh Babu

Venkatesh Babu is a technology leader, with 22+ years of experience in JEE, .NET, Mobile, Cloud, Automation, SMAC, IoT, RPA, AI/ML, Digital technologies - architected, designed and delivered enterprise solutions for global clients. He is working in the Research & Innovation Group and passionate about Emerging Technologies, Focus areas include Cloud, Artificial Intelligence & Machine Learning IoT, Gamification, Gesture Recognition, Augmented Reality, Blockchain, Big Data, Microservices, Design thinking, Solution Architecture & Consulting, Application Integration, Product Engineering, Wearables, Crowdsourcing and Technology evangelization.

About Applitools

Applitools delivers the next generation of test automation platform for cross browser and device testing powered by AI assisted computer vision technology known as Visual AI. Visual AI helps Developers, Test Automation Engineers and QA professionals release high-quality web and mobile apps enabling CI/CD.

Hundreds of companies, including industries such as Technology, Banking, Insurance, Retail, Pharmaceuticals, and Media - including 50 of the Fortune 100 - use Applitools to deliver the best possible digital experiences to millions of customers across all screens.

Visit us at www.applitools.com

 

 

applitools-logo-300x55.png