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 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
4. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. Reprise de tests assistée par l’IA
17/10/19 3ème édition Soirée du Test Logiciel Sophia #STLS2019 15
16. 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
18. 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
19. Exemple – Bus system
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 – 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
23. 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
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 - 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