Publicité
Publicité

Contenu connexe

Publicité

Similaire à Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUACKEBEKE, All4test(20)

Plus de TelecomValley(20)

Publicité

Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUACKEBEKE, All4test

  1. L’Intelligence Artificielle appliquée aux tests logiciel Julien Van Quackebeke - All4Test 5 octobre 2017
  2. Sommaire A - Qu’est-ce que l’Intelligence Artificielle? Le Deep Learning? B - Pourquoi faire appel à l’IA dans le test? Les Enjeux C – Pour quel type de test ? D - Les outils actuels E - Prospective, synthèse
  3. IA c’est quoi ?
  4. Quelques précisions… ●Le terme “intelligence” n’a pas la même signification en Anglais et en Français. ●En anglais la traduction exacte serait plus le savoir / la connaissance que l’intelligence qui elle sous entend généralement la notion de conscience…ce qui n’est pas de cas des robots ou IA …à ce jour . ● Lorsqu’on parle d’IA on parle souvent de capacité d’une machine à apprendre par elle-même via des exemples et un nombres important de données de références, à communiquer avec l’humain de manière « naturelle » sans suivre un programme déterministe, sous la forme d’un conversation (ex ChatBoot, reconnaissance d’images, traductions..) .
  5. A - L’intelligence artificielle Concept ambivalent - galvaudé? - qui englobe plusieurs notions. Evoqué par Alan Turing en 1950 ⇒ test de Turing. Machine Learning (apprentissage automatique en français): “Faire agir un ordinateur d’une certaine façon sans le programmer” (Arthur Samuel) Programmation classique: Données Programme Machine Résultats Machine learning: Données ProgrammeMachine Résultats
  6. A – Deep learning - Apprentissage profond
  7. A - L’intelligence artificielle - Apprentissage supervisé Valeurs de sortie. Applications: ❏Reconnaissance vocale ❏OCR ❏Reconnaissance images / formes ❏Détection du Spam
  8. A - L’intelligence artificielle - Apprentissage non-supervisé Pas de valeurs de sortie. Applications: ❏Clustering / Regroupement ❏Détection anomalies
  9. A - L’intelligence artificielle - GAN “La meilleure idée dans l’intelligence artificielle des 10 dernières années” Yann LeCun
  10. B – Les enjeux : pourquoi de l’IA dans le test ? * Aider les testeurs humains pour réaliser une partie de leur taches actuelles * Anticiper les risques, pour optimiser l’effort de test * Optimiser l’automatisation des tests, automatiser la maintenance * Proposer des jeux de données * Apporter une nouvelle approche / métier du test
  11. C - Type de test concernés / outils / Synthése Recherche des anomalies Analyse prédictive des risques ❏ Prédiction de défauts via l’analyse de log et l’évolution du code ❏ Adaptation de l’effort de test Rétro modélisation de modèle, détection des fréquences d’usage Génération de jeux de données de tests pertinents ❏ Amélioration de la qualité et de la volumétrie des jeux de données Maintenance des tests automatiques (UI) Identification d’anomalies d’affichage / modele Optimisation des tests de non-régression / choix des enchainements
  12. C - Prédiction des défauts Machine Learning Modèle prédictif v1 vn . . . Releases et défauts précédents vn+1 Nouvelle release Défauts probables
  13. Vectorisation des données d’entrées: ❏ Complexité du code ❏ Lignes de code Métrique d’Halstead Nombre cyclomatique ❏ Nombre de dépendances ❏ Processus de développement ❏ Révisions du composant ❏ Nombre de refactoring ❏ Nombre de corrections/ ancienneté des corrections C - Prédiction des défauts (suite) Meilleurs prédicteurs
  14. C - Rétro-modelisation Génération automatique de modèle. Analyse des actions pertinentes Start Login Help About... Product search ... To cart ... Payment L’IA peut affecter des probabilités qui permettront de parcourir automatiquement les branches les plus importantes de l’application.
  15. C - reconnaissance du GUI Les intelligences artificielles relatives à la vision par ordinateur peuvent permettre de reconnaître des éléments de’ l’interface graphique par leurs caractéristiques. Exemple (selenium):
  16. C - Données d’entrées / jeux de données Données d’entrées: problématique majeure du test. Espace très grand: création et sélection de tests pertinent par le testeur Cas d’espèce du GAN: ❏Génération des données d’entrées (jeux de données de test) ❏Classification des données d’entrées pertinentes
  17. C - Optimisation des tests de régression
  18. C- Critère d’optimisation des TNR ●Test diminuant le tps d’exécution ●• Reduction du nombre de cas de test pour atteindre un objectif de test ●• Test permettant une couverture compléte ●• Test lié à des changement de code recents ●• Tests dépendant d’exigences avec un risqué élévé
  19. C – A la frontière de l’IA Automatisation des tests de non-régression. Utilisation des releases précédentes comme oracles de test. Recherche des données d’entrées => maximisation de la couverture du code / des fonctionnalités (evosuite, test unitaires) Analyse statique Robots de test
  20. C – Stress test automatisé - Génération aléatoire d’actions, de données d’entrée… - Objectif : mettre le système dans un état bloqué, voir générer un crash - Demande peu d’information de la part du testeur. - Résultat facile à interpréter… mais plus long à traiter par la suite.
  21. D- les Outils actuels / stress test ●Google Monkey Intégré aux outils de DEV Android, gratuity – fuzz testing tool – random inputs ●Sapienz open source, « search-based » testing tool : basé sur les techniques de recherche méta-heuristique (algo génétique, recherche type tabu, optimisation combinatoire..). Permet d’optimiser des données ou cas de test Utilisé sur les 1,000 principales applications mobile Android, Sapienz a trouvé 558 bug non identifié auparavant ● Dynodroid : – open source, – permet une approche combinée humain / outils
  22. D - Outils: Functionize Outil dans le cloud, basé sur une extension Chrome pour l’enregistrement des tests. Génération automatique des tests à partir des utilisateurs réels des websites (module javascript) Utilisation d’IA en Computer Vision pour détecter les anomalies d’affichages et réparer l’identification des éléments de l’affichage. Génération de jeux de données Tests unitaires Tests d’affichage
  23. C - Functionize : positionnement
  24. C - Functionize : Video
  25. D - Outils: Appdiff Outil Saas focalisé sur l’UI des applications Android (en développement) IA utilisée pour parcourir les branches de l’application (tests exploratoires): ● Récupération de toutes les actions possibles sur un affichage ● Classification par l’IA des actions les plus pertinentes ● Parcours aléatoire du modèle probabilisé selon la classification faite par l’IA Tests de non-régression sur l’affichage et tests de performance de l’UI. Tests de régr. Tests d’affich. Tests de perf. Tests explo.
  26. D - Outils: Infer Infer est un outil d’analyse statique de code (java, objective C), Utilisé par Facebook pour ses développements d’application mobile. Cet outil est issu d’un rachat d’une entreprise spécialisée dans le domaine par Facebook (Monoidics, en 2009, basée notamment sur la logique de séparation). Il permet notamment une détection automatique d’anomalies dans le code dans une approche Devops. Tests unitaires
  27. Video Evosuite
  28. E - Perspectives, synthèse Hier tests manuels Aujourd’hui tests automatisés Demain tests robotisés
  29. E - Vers des niveaux de tests plus élevés Aujourd’hui: - Tests de bas niveaux (unitaires) - Aide au testeur Demain: - Tests d’intégration/système grâce à la génération des données d’entrées Après-demain: tests d’acceptation? - Graal : compréhension des exigences métiers (texte) et générations automatiques des cas de test et données de test necessaire pour les valider.
  30. Perspectives D’une manière plus « macro » plusieurs hypothèses sont possibles : - A/ Augmentation des capacités humaines, aide à la décision. - B/ Progressivement l’autorité des humains passe aux Algorithmes, l’humain devient de moins en moins utile dans le traitement des données, dans les décisions. Cela peut arriver dans l’IT, mais surtout dans d’autres métiers jugés peu impacté par les robots il n’y a pas si longtemps : - Des métiers comme chauffeurs de taxi, juristes, médecins sont menacés par les robots et l’IA,
  31. Perspectives - Mais cela ouvre aussi la porte à de nouvelle génération d’ingénieurs et donc de testeurs, capables de choisir les meilleurs algorithmes pour résoudre des problématiques de plus en plus complexes, d’automatiser des process, d’analyser les données suite à des exécutions automatiques. - Certains tests manuels sur le terrain sont aussi très intéressant : ex Beta testeur chez TESLA ☺ - c’est à nous de se préparer à ces évolutions…mais d’après le créateur de Selenium, Jason Huggins, nous aurions facilement 10 à 15 ans avant que ces IA soient opérationnelles Video interview : https://goo.gl/7VW5Ev
  32. Intelligence collective pour IA – Test …. ● A ce titre ALL4TEST, à commencé à travailler sur le sujet avec des élèves de l’ISTIA. Nous aimerions collaborer également avec les labos de recherche type INRIA et des « clients type » pour expérimenter ces approches sur des problématiques projets. Projet CIR ? ● Partant ? julien@all4test.com / 06 71 59 47 11
  33. A suivre ● Prochain réunion de la commission test et qualité : ●Comment test une application basé sur l’IA : les ChatBoots
Publicité