Bruno LEGEARD – IA pour les tests logiciels
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 1
Merci aux Sponsors !
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 2
IA pour le test
1- Reprise et optimisation de
tests manuels
2- Génération de tests à partir
de traces d’exécution
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 3
IA pour le test – Quel IA ?
Apprentissage sur les données : Classification – Prédiction – Détection – Clustering
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 4
IA pour le test – Quel IA ?
Algorithmes de Clustering :
Analyse des cas de tests et des traces
d’exécution pour les regroupes par
similarité
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 5
IA pour le test – Quel IA ?
Réseaux de neurones multicouches :
Analyse du langage naturel pour le
calcul de similarité et modèles
prédictifs pour la génération de cas
de test
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 6
IA pour le test
1- Reprise et optimisation de
tests manuels
2- Génération de tests à partir
de traces d’exécution
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 7
Reprise et optimisation de
patrimoines de tests manuels
Obsolescence des tests  Un problème fréquemment rencontré par
les équipes de test
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 8
82 % des répondants à
l’enquête CFTL 2019
indiquent avoir été
confronté à un
problème
d’obsolescence de
référentiels de tests
Source – Enquête CFTL 2019
Objectifs d’une reprise des tests manuels
Exemples de contexte qui motivent une reprise et optimisation d’un
patrimoine de tests en voie d’obsolescence :
• Une migration technique de l’application (par exemple sur une nouvelle
plateforme)
• Un plan d’accroissement de l’automatisation pour répondre à une
accélération des cycles d’évolutions et de mise en production
• Un transfert des activités de maintenance vers un prestataire extérieur
sous la forme d’un contrat de Tierce Maintenance Applicative (TMA) par
exemple
17/10/2019 JFTL 2019 - Reprise et optimisation de tests manuels 9
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 nouveau 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 est 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 keywords (mots d’action de test) à automatiser
17/10/2019 JFTL 2019 - Reprise et optimisation de tests manuels 10
Reprise assistée par l’IA
1. Refactoring
des pas de test
par analyse du
langage naturel
2. Regroupement
des cas de test
par similarité
3. Visualisation
des workflows
de test
17/10/2019 JFTL 2019 - Reprise et optimisation de tests manuels 11
Reprise assistée par l’IA
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 12
Regroupement des tests
par proximité
Clustering hiérarchique
Reprise assistée par l’IA
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 13
Factorisation des
pas de test
NLP – Natural Language
Processing
Reprise assistée par l’IA
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 14
Affichage des
parcours
applicatifs
couverts par les
tests
Reprise de tests assistée par l’IA
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 15
IA pour le test
1- Reprise et optimisation de
tests manuels
2- Génération de tests à partir
de traces d’exécution
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 16
Projet ANR PHILAE
Génération de tests de non-
régression automatisés à
partir des traces d’exécution
Test
Scripts
System
Under
Test
TODAY TOMORROW WITH PHILAE
Test
Scripts
Execution
Traces
System
Under
Test
Automated
trace selection
Manual
test design and
implementation
Automated
test script
generation
Exemple – Bus system
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 19
• Mark Utting -
USC
Bus System - Architecture
iPad
Apprentissage
traces
Tests de non-
régression
ML
Model
Exécution
des tests
Bus system – Traces d’exécution
USER187 .LPMA.A.i.i.ii.i.i.i.i.O.LPMA.I.o.o.o.o.oo.o.o.o.
USER242 LPMA.C.i.i.i.i.i.i.i.i.i.O.LPMA.I.o.o.o.o.o.o.ooC.o.
USER417 LPM.Ai.A.i.i.ii.i.i.i.i.A.O.LPM.AA.i.iii.iiAi.i.o.o.o.oo.oo.
USER424 LPMAAA.A.i.i.i.i.i.A.i.i.i.iiO.LPMA.AA.I.oo.oo.o.o.o.o.o.
USER465 LPMAA.A.i.i.i.i.i.i.i.O.LPMAAA.A.A.I.o.o.o.o.o.
USER541 LPMAAA.A.i.i.i.i.iO.LPM.AAAA.I.o.o.o.o.o.
USER550 LPM.A.i.i.i.i.i.Ai.i.i.i.O.LPMAA.AI.oo.o.o.o.o.o.o.
USER670 LPMAA.i.i.i.i.i.i.i.O.LPMAAA.I.o.o.o.o.o.o.
USER690 LPMA.A.i.AAA.ii.ii.i.i.i.i.i.O.LPM.A.AI.oo.o.o.o.o.oo.o.o.
USER730 LPM.i.i.i.i.i.i.O.LPM.I.o.o.o.o.o.o.
USER753 LPMA.i.iii.i.i.i.i.i.i.i.i.O.LPMAI.o.o.o.o.o.o.o.o.ooo.o.
USER802 LP?M.ii.i.i.i.i.i.i.i.i.i.O.LPM.AA.I.o.o.o.o.o.o.o.o.o.o
USER840 LPMAA.i.i.i.i.i.ii.i.LPMAA.I.o.o.o.o.o.oo.o.
USER886 LPM.A.i.i.i.i.i.i.i.O.LPM.I.o.o.o.o.o.o.
• Philae Bordeaux 2019: Bus System Case Study, Dr Mark Utting
Key:
. = GPS
L = Login
? = LoginOptions
C = GetContacts
P = ConfirmPreCheck
M = GetSchoolManifest
A = MarkAbsent
o = CheckOut
i = CheckIn
O = BulkCheckOut
I = BulkCheckIn
Clustering – Regroupement des traces
==== CLUSTER 1 ====
USER187 .LPMA.A.i.i.ii.i.i.i.i.O.LPMA.I.o.o.o.o.oo.o.o.o.
USER424 LPMAAA.A.i.i.i.i.i.A.i.i.i.iiO.LPMA.AA.I.oo.oo.o.o.o.o.o.o.
USER465 LPMAA.A.i.i.i.i.i.i.i.O.LPMAAA.A.A.I.o.o.o.o.o.
USER541 LPMAAA.A.i.i.i.i.iO.LPM.AAAA.I.o.o.o.o.o.
USER550 LPM.A.i.i.i.i.i.Ai.i.i.i.O.LPMAA.AI.oo.o.o.o.o.o.o.
==== CLUSTER 2 ====
USER417 LPM.Ai.A.i.i.ii.i.i.i.i.i.A.O.LPM.AA.i.iiii.iiiAi.i.o.o.o.o.oo.oo.o.o.
==== CLUSTER 3 ====
USER802 LP?M.ii.i.i.i.i.i.i.i.i.i.O.LPM.AA.I.o.o.o.o.o.o.o.o.o.o
==== CLUSTER 4 ====
USER242 LPMA.C.i.i.i.i.i.i.i.i.i.O.LPMA.I.o.o.o.o.o.o.ooC.o.
• Philae Bordeaux 2019: Bus System Case Study, Dr Mark Utting
Key:
. = GPS
L = Login
? = LoginOptions
C = GetContacts
P = ConfirmPreCheck
M = GetSchoolManifest
A = MarkAbsent
o = CheckOut
i = CheckIn
O = BulkCheckOut
I = BulkCheckIn
Prendre 1 test/cluster:
 4 cas de tests de non-régression
Apprendre des traces pour générer
des tests
Tests pertinents
Tests étranges – il
faut apprendre
sur un volume
suffisant
• Génération automatique de tests à partir d’un modèle IA prédicitif
Projet ANR PHILAE
• Regrouper les traces par similarité de
comportement
• Identifier les zones du logiciel insuffisement
testée
• Générer de nouveaux tests (y compris les
données pertinentes)
Conclusion - IA pour le test
1- Reprise et optimisation de
tests manuels
2- Génération de tests à partir
de traces d’exécution
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 25

IA pour les tests logiciels - LEGEARD - Smartesting Université Franche Comté- Soirée du Test Logiciel Sophia 2019

  • 1.
    Bruno LEGEARD –IA pour les tests logiciels 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 1
  • 2.
    Merci aux Sponsors! 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 2
  • 3.
    IA pour letest 1- Reprise et optimisation de tests manuels 2- Génération de tests à partir de traces d’exécution 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 3
  • 4.
    IA pour letest – Quel IA ? Apprentissage sur les données : Classification – Prédiction – Détection – Clustering 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 4
  • 5.
    IA pour letest – Quel IA ? Algorithmes de Clustering : Analyse des cas de tests et des traces d’exécution pour les regroupes par similarité 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 5
  • 6.
    IA pour letest – Quel IA ? Réseaux de neurones multicouches : Analyse du langage naturel pour le calcul de similarité et modèles prédictifs pour la génération de cas de test 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 6
  • 7.
    IA pour letest 1- Reprise et optimisation de tests manuels 2- Génération de tests à partir de traces d’exécution 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 7
  • 8.
    Reprise et optimisationde patrimoines de tests manuels Obsolescence des tests  Un problème fréquemment rencontré par les équipes de test 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 8 82 % des répondants à l’enquête CFTL 2019 indiquent avoir été confronté à un problème d’obsolescence de référentiels de tests Source – Enquête CFTL 2019
  • 9.
    Objectifs d’une reprisedes tests manuels Exemples de contexte qui motivent une reprise et optimisation d’un patrimoine de tests en voie d’obsolescence : • Une migration technique de l’application (par exemple sur une nouvelle plateforme) • Un plan d’accroissement de l’automatisation pour répondre à une accélération des cycles d’évolutions et de mise en production • Un transfert des activités de maintenance vers un prestataire extérieur sous la forme d’un contrat de Tierce Maintenance Applicative (TMA) par exemple 17/10/2019 JFTL 2019 - Reprise et optimisation de tests manuels 9
  • 10.
    Résultats attendus dela 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 nouveau 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 est 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 keywords (mots d’action de test) à automatiser 17/10/2019 JFTL 2019 - Reprise et optimisation de tests manuels 10
  • 11.
    Reprise assistée parl’IA 1. Refactoring des pas de test par analyse du langage naturel 2. Regroupement des cas de test par similarité 3. Visualisation des workflows de test 17/10/2019 JFTL 2019 - Reprise et optimisation de tests manuels 11
  • 12.
    Reprise assistée parl’IA 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 12 Regroupement des tests par proximité Clustering hiérarchique
  • 13.
    Reprise assistée parl’IA 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 13 Factorisation des pas de test NLP – Natural Language Processing
  • 14.
    Reprise assistée parl’IA 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 14 Affichage des parcours applicatifs couverts par les tests
  • 15.
    Reprise de testsassistée par l’IA 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 15
  • 16.
    IA pour letest 1- Reprise et optimisation de tests manuels 2- Génération de tests à partir de traces d’exécution 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 16
  • 17.
    Projet ANR PHILAE Générationde tests de non- régression automatisés à partir des traces d’exécution
  • 18.
    Test Scripts System Under Test TODAY TOMORROW WITHPHILAE Test Scripts Execution Traces System Under Test Automated trace selection Manual test design and implementation Automated test script generation
  • 19.
    Exemple – Bussystem 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 19 • Mark Utting - USC
  • 20.
    Bus System -Architecture iPad Apprentissage traces Tests de non- régression ML Model Exécution des tests
  • 21.
    Bus system –Traces d’exécution USER187 .LPMA.A.i.i.ii.i.i.i.i.O.LPMA.I.o.o.o.o.oo.o.o.o. USER242 LPMA.C.i.i.i.i.i.i.i.i.i.O.LPMA.I.o.o.o.o.o.o.ooC.o. USER417 LPM.Ai.A.i.i.ii.i.i.i.i.A.O.LPM.AA.i.iii.iiAi.i.o.o.o.oo.oo. USER424 LPMAAA.A.i.i.i.i.i.A.i.i.i.iiO.LPMA.AA.I.oo.oo.o.o.o.o.o. USER465 LPMAA.A.i.i.i.i.i.i.i.O.LPMAAA.A.A.I.o.o.o.o.o. USER541 LPMAAA.A.i.i.i.i.iO.LPM.AAAA.I.o.o.o.o.o. USER550 LPM.A.i.i.i.i.i.Ai.i.i.i.O.LPMAA.AI.oo.o.o.o.o.o.o. USER670 LPMAA.i.i.i.i.i.i.i.O.LPMAAA.I.o.o.o.o.o.o. USER690 LPMA.A.i.AAA.ii.ii.i.i.i.i.i.O.LPM.A.AI.oo.o.o.o.o.oo.o.o. USER730 LPM.i.i.i.i.i.i.O.LPM.I.o.o.o.o.o.o. USER753 LPMA.i.iii.i.i.i.i.i.i.i.i.O.LPMAI.o.o.o.o.o.o.o.o.ooo.o. USER802 LP?M.ii.i.i.i.i.i.i.i.i.i.O.LPM.AA.I.o.o.o.o.o.o.o.o.o.o USER840 LPMAA.i.i.i.i.i.ii.i.LPMAA.I.o.o.o.o.o.oo.o. USER886 LPM.A.i.i.i.i.i.i.i.O.LPM.I.o.o.o.o.o.o. • Philae Bordeaux 2019: Bus System Case Study, Dr Mark Utting Key: . = GPS L = Login ? = LoginOptions C = GetContacts P = ConfirmPreCheck M = GetSchoolManifest A = MarkAbsent o = CheckOut i = CheckIn O = BulkCheckOut I = BulkCheckIn
  • 22.
    Clustering – Regroupementdes traces ==== CLUSTER 1 ==== USER187 .LPMA.A.i.i.ii.i.i.i.i.O.LPMA.I.o.o.o.o.oo.o.o.o. USER424 LPMAAA.A.i.i.i.i.i.A.i.i.i.iiO.LPMA.AA.I.oo.oo.o.o.o.o.o.o. USER465 LPMAA.A.i.i.i.i.i.i.i.O.LPMAAA.A.A.I.o.o.o.o.o. USER541 LPMAAA.A.i.i.i.i.iO.LPM.AAAA.I.o.o.o.o.o. USER550 LPM.A.i.i.i.i.i.Ai.i.i.i.O.LPMAA.AI.oo.o.o.o.o.o.o. ==== CLUSTER 2 ==== USER417 LPM.Ai.A.i.i.ii.i.i.i.i.i.A.O.LPM.AA.i.iiii.iiiAi.i.o.o.o.o.oo.oo.o.o. ==== CLUSTER 3 ==== USER802 LP?M.ii.i.i.i.i.i.i.i.i.i.O.LPM.AA.I.o.o.o.o.o.o.o.o.o.o ==== CLUSTER 4 ==== USER242 LPMA.C.i.i.i.i.i.i.i.i.i.O.LPMA.I.o.o.o.o.o.o.ooC.o. • Philae Bordeaux 2019: Bus System Case Study, Dr Mark Utting Key: . = GPS L = Login ? = LoginOptions C = GetContacts P = ConfirmPreCheck M = GetSchoolManifest A = MarkAbsent o = CheckOut i = CheckIn O = BulkCheckOut I = BulkCheckIn Prendre 1 test/cluster:  4 cas de tests de non-régression
  • 23.
    Apprendre des tracespour générer des tests Tests pertinents Tests étranges – il faut apprendre sur un volume suffisant • Génération automatique de tests à partir d’un modèle IA prédicitif
  • 24.
    Projet ANR PHILAE •Regrouper les traces par similarité de comportement • Identifier les zones du logiciel insuffisement testée • Générer de nouveaux tests (y compris les données pertinentes)
  • 25.
    Conclusion - IApour le test 1- Reprise et optimisation de tests manuels 2- Génération de tests à partir de traces d’exécution 17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 25