L’Intelligence Artificielle
appliquée aux tests logiciel
Julien Van Quackebeke - All4Test
Meetup du 6 Fevrier 2019
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
F- Un exemple d’application avec Smartesting
Intervenant Meetup
● Julien Van Quackebeke / CEO d’ALL4TEST
● ALL4TEST est un pure payer du test logiciel depuis 2006, présent sur Paris,
Sophia-Antipolis et Tunis. 50 personnes, 30 % de croissance /an.
Consulting, formation, Veille techno, AT, TRA.
● Commission test et qualité de Telecom valley, Meetup : Software tester club
(sophia), speaker JFTL, organisateur de la SOIREE DU TEST à Sophia-Antipolis.
●Nombreux articles et video sur le test https://www.all4test.fr/dossiers-
thematiques/
IA c’est quoi ?
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..) .
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
A – Deep learning - Apprentissage profond
A - L’intelligence artificielle - Apprentissage supervisé
Valeurs de sortie.
Applications:
❏Reconnaissance
vocale
❏OCR
❏Reconnaissance
images / formes
❏Détection du Spam
A - L’intelligence artificielle - Apprentissage non-supervisé
Pas de valeurs de sortie.
Applications:
❏Clustering /
Regroupement
❏Détection
anomalies
A - L’intelligence artificielle - GAN
“La meilleure idée dans l’intelligence artificielle des 10 dernières années”
Yann LeCun
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 (prédictions), pour optimiser l’effort de test
• Optimiser l’automatisation des tests, automatiser la maintenance,
Proposer / générer des jeux de données de test
• Refacter / mettre à jour des anciennes campagne de test devenus
obsolètes de manière semi-automatique.
* Apporter une nouvelle approche / métier du test (sans scenarii de test)
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
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
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
❏ Nombre de lignes de code modifiées
C - Prédiction des défauts (suite)
Meilleurs prédicteurs
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.
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):
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
C - Optimisation des tests de régression
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é
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
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.
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
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
C - Functionize : positionnement
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.
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
D - Outils: Infer
Analyse statique Java. Détection automatique des erreurs suivantes:
Prévention des
exceptions Null
Pointer Exception
Analyse des potentielles
fuites mémoire
Détection des Race
conditions
Tests
unitaires
D - Outils: EvoSuite
Algorithme génétique: génération des suites de tests unitaires Java
maximisant la couverture de code
Génération
de jeux de
données
Tests
unitaires
E - Perspectives, synthèse
Hier
tests manuels
Aujourd’hui
tests automatisés
Demain
tests robotisés
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.
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,
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.
- Ces technologies sont aussi applicables afin d’améliorer des process RPA
- 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
Intelligence collective pour IA – Test ….
● A ce titre ALL4TEST, à commencé à travailler avec des éditeur comme
Smartesting sur le sujet. 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 ?
●Mail : julien@all4test.com
●Tel : 06 71 59 47 11
●www.all4test.fr
F - Exemple d’application en beta :
● Smartesting, partenaire ALL4TEST, présente un premier retour
d’expérience.
6 février 2019
Reprise et optimisation
des patrimoines de tests par l’IA
Michel Guez – Arnaud Bouzy
Company profile
• Smartesting est un éditeur de logiciel, connu mondialement
comme spécialiste du Model-Based Testing (MBT), une
technique de conception de test
• Les solutions de Model-Based Testing sont proposées au
marché depuis une 15zaine d’années, mais elle ne se sont pas
déployées dans l’IT
• En 2017, Smartesting lance Yest®, un nouvel outil de
conception visuelle des tests, qui revisite le concept MBT
pour faire de lui un « enabler » de l’agilité
L’équipe
L’équipe Smartesting à décembre 2018
Contexte
• Patrimoines de tests anciens constitués pour des applications
historiques (et critiques) et gérés dans un outil de Test Management
type HP-ALM – plusieurs milliers de tests
– Plusieurs générations de Test Managers et de testeurs se sont succédées 
hétérogénéité des tests
– Bonnes pratiques et discipline dans l’écriture et la gestion des tests ont fluctué au
cours du temps
• Ces applications historiques (et leur patrimoine de tests) continuent
d’évoluer
Obsolescence des tests
Cela se traduit par plusieurs types de problèmes sur les
cas de tests :
- Non mis à jour par rapport à l'évolution de l'application
- Rédigés par plusieurs personnes et manquant de cohérence
- Redondants
- Incomplets
- Trop détaillés
- Trop longs
Un test qui n’est pas exécuté est un test qui se dégrade
39
Obsolescence des tests
Source – Enquête CFTL 2019
83,5 % des répondants
à l’enquête CFTL 2019
indiquent avoir été
confronté à un
problème
d’obsolescence de
référentiels de tests
Un problème fréquemment rencontré par les équipes de test
40
Les cas d’usage
• Réversibilité & réappropriation :
– Prendre en main un référentiel de test
• Automatisation :
– Décider des tests à automatiser (TNR)
– Structurer les tests pour simplifier leur automatisation
• Réutilisation :
– Diminuer le travail de réécriture
– Faciliter la lecture et l’exécution des tests manuels par une plus
grande homogénéité
41
Résultats attendus de la reprise
• Corriger les tests
– C’est l’objectif premier : il faut garantir que l’ensemble des cas de test sont
alignés avec la version actuelle du système
• Simplifier les tests et supprimer les redondances
– L’ajout au fil de temps de nouveaux cas de test crée des redondances entre tests
– Des étapes de test peuvent aussi être factorisées en une seule de granularité
plus forte et d’autres étapes supprimées car inutiles dans la documentation des
tests
• Homogénéiser et paramétrer les tests
– Une même étape de test doit être décrite de façon identique, quel que soit le
cas de test
– Pour préparer l’automatisation, il est très utile de paramétrer les étapes de tests
pour diminuer le nombre de mots-clés à implémenter
42
Technologies IA
• Le clustering pour le regroupement des cas de test
– Calcul de distances (Levenstein, Euclidienne)
– Clustering hiérarchique
• L’analyse du langage naturel pour le refactoring des pas de test
– Intégré au prototype actuel : calcul de proximité syntaxique
– A l’étude pour la sémantique : Neural Word Embeddings et
Interactive Language Learning
43
Résultats
• 1er résultats expérimentaux sur 3 projets :
– Référentiels de 942, 302 et 42 cas de tests, et 13 325 pas de test
– Temps de reprise divisé par 3
• Validation de la technologie
– Février – Mars : réaliser 2 à 4 expérimentations supplémentaires
– Avril - Lancement du programme de Beta Testing en mode SaaS
44
Aperçu – regroupement des tests par
similarité
• Le résultat du clustering hiérarchique classiquement sous
forme d’arbres appelés dendogrammes
45
Aperçu – visualisation des workflows
• Les diagrammes résultants de groupes de scénarios sont
visualisés sous une forme proche de BPMN
Visualisation des étapes des tests
Visualisation en surbrillance de chaque test
 Diagramme mis à jour à la volée pour chaque action de refactoring
46
Aperçu – Refactoring des étapes de test
Modification d’une étape et
de tous ses usages
Unification d’étapes de
test proches (proposition
des steps proches)
• Suppression d’étapes de test
• Permutations d’étapes de test
• Insertion d’étapes de test
Paramétrisation
d’une étape de
test et de tous
ses usages
Ordonnancement des
propositions de refactoring selon
l’usage appris de l’utilisateur47
Next Step
• Nous avons déjà éprouvé notre produit (Beta) sur quelques
patrimoines de test (totalisant en 15000 pas de test)
– Accélération du temps de reprise et d’optimisation constatée : X3
• Dans les semaines à venir, nous allons poursuivre la mise au
point de nos librairies d’IA sur d’autres patrimoines
 Expérimentations avec la version Beta GRATUITE de notre
produit
Contacts
• Julien Botella
– Julien.botella@smartesting.com
– 06 81 13 15 41
• Arnaud Bouzy
– Arnaud.bouzy@smartesting.com
– 06 27 89 42 47
• Michel Guez
– michel.guez@smartesting.com
– 07 82 58 01 12

Contenu connexe

PDF
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
PDF
Ingénierie du test 0.9
PPT
Présentation banc_ test
PDF
Introduction à la validation de logiciel
PDF
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
PDF
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
PDF
Outils et pratiques : tester une application web moderne
PDF
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Ingénierie du test 0.9
Présentation banc_ test
Introduction à la validation de logiciel
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Outils et pratiques : tester une application web moderne
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife

Tendances (13)

PPTX
Automatisation des tests - objectifs et concepts - partie 2
PPTX
Automatisation des tests - objectifs et concepts - partie 1
PDF
Le rôle du testeur et le Blackbox testing
PDF
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
PPT
Présentation Tests Fonctionnels
PPTX
Offre Audit et Test De Performance
PPT
Automatisation des tests
PDF
Soirée Qualité Logicielle avec Sonar
PPT
Types de tests vs techniques de tests
PDF
Qualité logicielle
PDF
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
PPTX
Industrialisation des développements logiciels
PDF
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 1
Le rôle du testeur et le Blackbox testing
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
Présentation Tests Fonctionnels
Offre Audit et Test De Performance
Automatisation des tests
Soirée Qualité Logicielle avec Sonar
Types de tests vs techniques de tests
Qualité logicielle
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Industrialisation des développements logiciels
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Publicité

Similaire à IA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4Test (20)

PDF
PerfUG Comment tester et optimiser la performance d'un SI ?
PDF
Comment l’IA transforme le métier du testeur
PDF
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
PDF
Apprentissage automatique avec RapidMiner
PPTX
EXTRA-Présentation generale 180923.pptx
PDF
CdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 mars
PPTX
Test de logiciel Intégrant une fonction d’Intelligence Artificielle
PDF
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
PPTX
II caractéristiques du big data hdfs hadoop
PDF
Captronic grenoble 01102014 version presentee
PDF
Machine Learning, Intelligence Artificielle et Modélisation ARCHIMATE
PPTX
Cloud Expo Europe 2018 - "Et si on testait en production ?"
PDF
First step about IA and business
PDF
Catalogue Analyse Ritme
PDF
Les tests utilisateurs pour les petits budgets
PDF
ilide.info-atelier-initiation-machine-learning-pr_2a4462afa522e9538229d9c116d...
PDF
Intro IA.pdf
PDF
Data science et Ux design [MEET UP Palo IT / Le LAPTOP]
PPTX
Paris Chaos Engineering Meetup #5
PDF
Toolbox du designer : Useberry
PerfUG Comment tester et optimiser la performance d'un SI ?
Comment l’IA transforme le métier du testeur
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
Apprentissage automatique avec RapidMiner
EXTRA-Présentation generale 180923.pptx
CdP QA - QA hackathon - Intelligence artificielle - Meetup du 9 mars
Test de logiciel Intégrant une fonction d’Intelligence Artificielle
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
II caractéristiques du big data hdfs hadoop
Captronic grenoble 01102014 version presentee
Machine Learning, Intelligence Artificielle et Modélisation ARCHIMATE
Cloud Expo Europe 2018 - "Et si on testait en production ?"
First step about IA and business
Catalogue Analyse Ritme
Les tests utilisateurs pour les petits budgets
ilide.info-atelier-initiation-machine-learning-pr_2a4462afa522e9538229d9c116d...
Intro IA.pdf
Data science et Ux design [MEET UP Palo IT / Le LAPTOP]
Paris Chaos Engineering Meetup #5
Toolbox du designer : Useberry
Publicité

Dernier (8)

PPTX
chap 2 EA pptx.pptx modele relationnele de d
PPTX
Slide Steve2 optimatisation sur les engrainage .pptx
PDF
Apprentissage supervisé : La Classification.pdf
PPTX
COURS INFORMATIQUE rtyuiofghjkvbn,yuighj
PDF
Controle-and-Assurance-Qualite-logicielle-Developpement-du-tableau-de-bord-de...
PPTX
template SR.pptx pour les présentations de soutenances
PPTX
Cours_IoT.pptx k
PDF
Classification en apprentissage supervisé : Les Arbres de Décision
chap 2 EA pptx.pptx modele relationnele de d
Slide Steve2 optimatisation sur les engrainage .pptx
Apprentissage supervisé : La Classification.pdf
COURS INFORMATIQUE rtyuiofghjkvbn,yuighj
Controle-and-Assurance-Qualite-logicielle-Developpement-du-tableau-de-bord-de...
template SR.pptx pour les présentations de soutenances
Cours_IoT.pptx k
Classification en apprentissage supervisé : Les Arbres de Décision

IA et Test - MeetUp MoT - Julien Van Quackebeke - CEO All4Test

  • 1. L’Intelligence Artificielle appliquée aux tests logiciel Julien Van Quackebeke - All4Test Meetup du 6 Fevrier 2019
  • 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 F- Un exemple d’application avec Smartesting
  • 3. Intervenant Meetup ● Julien Van Quackebeke / CEO d’ALL4TEST ● ALL4TEST est un pure payer du test logiciel depuis 2006, présent sur Paris, Sophia-Antipolis et Tunis. 50 personnes, 30 % de croissance /an. Consulting, formation, Veille techno, AT, TRA. ● Commission test et qualité de Telecom valley, Meetup : Software tester club (sophia), speaker JFTL, organisateur de la SOIREE DU TEST à Sophia-Antipolis. ●Nombreux articles et video sur le test https://www.all4test.fr/dossiers- thematiques/
  • 5. 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..) .
  • 6. 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
  • 7. A – Deep learning - Apprentissage profond
  • 8. A - L’intelligence artificielle - Apprentissage supervisé Valeurs de sortie. Applications: ❏Reconnaissance vocale ❏OCR ❏Reconnaissance images / formes ❏Détection du Spam
  • 9. A - L’intelligence artificielle - Apprentissage non-supervisé Pas de valeurs de sortie. Applications: ❏Clustering / Regroupement ❏Détection anomalies
  • 10. A - L’intelligence artificielle - GAN “La meilleure idée dans l’intelligence artificielle des 10 dernières années” Yann LeCun
  • 11. 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 (prédictions), pour optimiser l’effort de test • Optimiser l’automatisation des tests, automatiser la maintenance, Proposer / générer des jeux de données de test • Refacter / mettre à jour des anciennes campagne de test devenus obsolètes de manière semi-automatique. * Apporter une nouvelle approche / métier du test (sans scenarii de test)
  • 12. 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
  • 13. 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
  • 14. 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 ❏ Nombre de lignes de code modifiées C - Prédiction des défauts (suite) Meilleurs prédicteurs
  • 15. 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.
  • 16. 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):
  • 17. 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
  • 18. C - Optimisation des tests de régression
  • 19. 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é
  • 20. 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
  • 21. 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.
  • 22. 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
  • 23. 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
  • 24. C - Functionize : positionnement
  • 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. D - Outils: Infer Analyse statique Java. Détection automatique des erreurs suivantes: Prévention des exceptions Null Pointer Exception Analyse des potentielles fuites mémoire Détection des Race conditions Tests unitaires
  • 28. D - Outils: EvoSuite Algorithme génétique: génération des suites de tests unitaires Java maximisant la couverture de code Génération de jeux de données Tests unitaires
  • 29. E - Perspectives, synthèse Hier tests manuels Aujourd’hui tests automatisés Demain tests robotisés
  • 30. 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.
  • 31. 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,
  • 32. 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. - Ces technologies sont aussi applicables afin d’améliorer des process RPA - 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
  • 33. Intelligence collective pour IA – Test …. ● A ce titre ALL4TEST, à commencé à travailler avec des éditeur comme Smartesting sur le sujet. 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 ? ●Mail : [email protected] ●Tel : 06 71 59 47 11 ●www.all4test.fr
  • 34. F - Exemple d’application en beta : ● Smartesting, partenaire ALL4TEST, présente un premier retour d’expérience.
  • 35. 6 février 2019 Reprise et optimisation des patrimoines de tests par l’IA Michel Guez – Arnaud Bouzy
  • 36. Company profile • Smartesting est un éditeur de logiciel, connu mondialement comme spécialiste du Model-Based Testing (MBT), une technique de conception de test • Les solutions de Model-Based Testing sont proposées au marché depuis une 15zaine d’années, mais elle ne se sont pas déployées dans l’IT • En 2017, Smartesting lance Yest®, un nouvel outil de conception visuelle des tests, qui revisite le concept MBT pour faire de lui un « enabler » de l’agilité
  • 38. Contexte • Patrimoines de tests anciens constitués pour des applications historiques (et critiques) et gérés dans un outil de Test Management type HP-ALM – plusieurs milliers de tests – Plusieurs générations de Test Managers et de testeurs se sont succédées  hétérogénéité des tests – Bonnes pratiques et discipline dans l’écriture et la gestion des tests ont fluctué au cours du temps • Ces applications historiques (et leur patrimoine de tests) continuent d’évoluer
  • 39. Obsolescence des tests Cela se traduit par plusieurs types de problèmes sur les cas de tests : - Non mis à jour par rapport à l'évolution de l'application - Rédigés par plusieurs personnes et manquant de cohérence - Redondants - Incomplets - Trop détaillés - Trop longs Un test qui n’est pas exécuté est un test qui se dégrade 39
  • 40. Obsolescence des tests Source – Enquête CFTL 2019 83,5 % des répondants à l’enquête CFTL 2019 indiquent avoir été confronté à un problème d’obsolescence de référentiels de tests Un problème fréquemment rencontré par les équipes de test 40
  • 41. Les cas d’usage • Réversibilité & réappropriation : – Prendre en main un référentiel de test • Automatisation : – Décider des tests à automatiser (TNR) – Structurer les tests pour simplifier leur automatisation • Réutilisation : – Diminuer le travail de réécriture – Faciliter la lecture et l’exécution des tests manuels par une plus grande homogénéité 41
  • 42. Résultats attendus de la reprise • Corriger les tests – C’est l’objectif premier : il faut garantir que l’ensemble des cas de test sont alignés avec la version actuelle du système • Simplifier les tests et supprimer les redondances – L’ajout au fil de temps de nouveaux cas de test crée des redondances entre tests – Des étapes de test peuvent aussi être factorisées en une seule de granularité plus forte et d’autres étapes supprimées car inutiles dans la documentation des tests • Homogénéiser et paramétrer les tests – Une même étape de test doit être décrite de façon identique, quel que soit le cas de test – Pour préparer l’automatisation, il est très utile de paramétrer les étapes de tests pour diminuer le nombre de mots-clés à implémenter 42
  • 43. Technologies IA • Le clustering pour le regroupement des cas de test – Calcul de distances (Levenstein, Euclidienne) – Clustering hiérarchique • L’analyse du langage naturel pour le refactoring des pas de test – Intégré au prototype actuel : calcul de proximité syntaxique – A l’étude pour la sémantique : Neural Word Embeddings et Interactive Language Learning 43
  • 44. Résultats • 1er résultats expérimentaux sur 3 projets : – Référentiels de 942, 302 et 42 cas de tests, et 13 325 pas de test – Temps de reprise divisé par 3 • Validation de la technologie – Février – Mars : réaliser 2 à 4 expérimentations supplémentaires – Avril - Lancement du programme de Beta Testing en mode SaaS 44
  • 45. Aperçu – regroupement des tests par similarité • Le résultat du clustering hiérarchique classiquement sous forme d’arbres appelés dendogrammes 45
  • 46. Aperçu – visualisation des workflows • Les diagrammes résultants de groupes de scénarios sont visualisés sous une forme proche de BPMN Visualisation des étapes des tests Visualisation en surbrillance de chaque test  Diagramme mis à jour à la volée pour chaque action de refactoring 46
  • 47. Aperçu – Refactoring des étapes de test Modification d’une étape et de tous ses usages Unification d’étapes de test proches (proposition des steps proches) • Suppression d’étapes de test • Permutations d’étapes de test • Insertion d’étapes de test Paramétrisation d’une étape de test et de tous ses usages Ordonnancement des propositions de refactoring selon l’usage appris de l’utilisateur47
  • 48. Next Step • Nous avons déjà éprouvé notre produit (Beta) sur quelques patrimoines de test (totalisant en 15000 pas de test) – Accélération du temps de reprise et d’optimisation constatée : X3 • Dans les semaines à venir, nous allons poursuivre la mise au point de nos librairies d’IA sur d’autres patrimoines  Expérimentations avec la version Beta GRATUITE de notre produit
  • 49. Contacts • Julien Botella – [email protected] – 06 81 13 15 41 • Arnaud Bouzy – [email protected] – 06 27 89 42 47 • Michel Guez – [email protected] – 07 82 58 01 12