SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
CP-SST : approche basée sur la programmation
par contraintes pour le test structurel du logiciel
Abdelilah SAKTI, Yann-Gaël Guéhéneuc et Gilles Pesant
Département de Génie Informatique et Génie Logiciel
École Polytechnique de Montréal, Québec, Canada
Le 08 juin 2011,
Septièmes Journées Francophones de
Programmation par Contraintes (JFPC)
Plan
F Introduction
l Approches de test structurel basées PC
l Notre Approche
l Résultats
l Conclusions et travaux futurs
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
22
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
Bogues historiques
Ø Le test est une phase très importante dans le cycle de vie
d’un logiciel
ü Coûte plus de 50% du budget d’un logiciel critique.
Ø Quelques catastrophes historiques liées au test logiciel
ü 2010 : La voiture hybride Toyota Prius a fait l’objet d’un rappel pour correction
de 160000 voitures suite à un problème informatique au niveau de l’ordinateur
de bord et du système de contrôle de vitesse.
ü1996 : le vol 501 a causé la destruction du lanceur Arian 5 juste 40s après
le lancement. L’agence spatiale européenne (ASE) a déclaré un retard du
projet, une perte financière directe estimée de 500 million de dollars, et
indirectement une perte de la confiance des clients au profit de la
concurrence
üEntre 1985 et 1987 : l’appareil de radiothérapie Therac-25 a causé au
moins cinq décès, et plusieurs autres patients ont été gravement atteints
de radiations. L'appareil envoyait au patient une dose de rayons X 100 fois
supérieure à celle prévue.
33
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Test logiciel
44
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
Ø Deux grandes méthodes pour tester un logiciel
Ø Applications du test structurel
ü Analyse de la couverture d’un ensemble
de données de test;
ü Génération des données de test pour
assurer l’exécution d’un ensemble de
chemins
ü Critères de couverture: Tous-les-chemins
(Tous-les-k-chemins), Toutes-les-
branches, Toutes-les-instructions.
ü Atteindre un point donné dans un
programme (générer une exception).
ü Preuve de la post-condition ou
génération du contre-exemple.
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Exemple d’utilisation du
test structurel
55
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
Ø La norme DO-178B
• Utilise différentes applications de test structurel;
• Le test structurel est utilisé pour analyser la couverture de test fonctionnel et
pour générer les cas de test manquants;
• Exige différents critères de couvertures d’analyse et de génération des données
de test;
• Un programme est testé selon sa criticité.
Niveau Effet (Criticité)
Couverture
requise
A Catastrophique MC/DC
B Dangereux branches
C Majeur instructions
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Plan
l Introduction
F Approches de test structurel basées PC
l Notre Approche
l Résultats
l Conclusions et travaux futurs
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
66
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
Ø Approches Orientées
Chemins
ü La technique dominante, consiste à
extraire un chemin à partir de GFC ou
d'une version instrumentée du PST,
puis de générer un prédicat de ce
chemin. La résolution de ce prédicat
génère des données de test
correspondant au chemin choisi.
(PathCrawler, Osmose)
ü inconvénients
ü Le processus de génération de prédicat a
un coût important lié à l'évaluation
symbolique.
ü En général, elle ne peut pas générer des
cas de test pour atteindre un point donné
dans un PST
77
Approches de test
structurel basés PC
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
Ø Approches Orientées Buts
ü Traduisent un PST en un PSC en
passant par un modèle SSA pour
éviter le coût de l'évaluation
symbolique. (INKA, Euclide, CPBPV)
ü inconvénients
ü Contrairement aux approches orientées
chemins, cette technique identifie
difficilement des points du PST
nécessaires pour atteindre un critère de
couverture donné.
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Plan
l Introduction
l Approches de test structurel basées PC
F Notre Approche
l Résultats
l Conclusions et travaux futurs
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
88
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
Abstraction
99
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
1. Instrumentation
2. Mise en forme
SSA
3. Génération du GFC
et PSC préliminaire
4. Génération du
PSC global
5. Résolution du
PSC global
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Forme SSA
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
1010
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
• Cinq classes de nœuds du GFC
ü Nœud de Paramètres et variables globales;
ü Nœud d’instruction;
ü Nœud de décision;
ü Nœud de condition;
ü Nœud de jointure.
• Les arrêtes sont étiquettées par 1 ou -1.
Génération du Graphe de
flot de contrôle
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
1111
Relations entre les nœuds
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
Ø Nœud-Nœud
Ø Nœud de décision multi-
conditions (décomposition)
1212
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Les nœuds d’une boucle
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
1313
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
• Toute boucle du PST doit être transformée en une boucle tant-
que (While).
• Limiter le nombre d'itérations d’une boucle par une constante k
(k-chemin).
ü Une boucle contient k +1 nœuds de décision.
ü Pour forcer le PST à quitter la boucle au maximum après k itérations, le dernier
nœud de décision Ndk+1 doit toujours être différent de la valeur 1.
• Les relations entre les nœuds d’une boucle sont les suivantes:
ü
ü
ü
Traduire un GFC en un PSC
(PSC-GFC)
1414
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
ü Un nœud est traduit par une
variable.
ü Le domaine est l’ensemble
d’étiquettes des arêtes
sortantes et la valeur 0 pour
les non-racine.
ü Une relation nœud-nœud est
traduite par une contrainte
table.
ü Une variable Nfi prennent la
valeur et le domaine de la
décision correspondante.
ü Une relation décision-
conditions est traduite par une
contrainte table.
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Génération du PSC global
(PSC-G)
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
Ø Déclaration de variable
§ Scalaire ou tableau statique: traduction
directe;
§ Tableau dynamique: déclaration du
tableau et d’une variable qui représente sa
taille.
ü Deux types de relations entre les
nœuds et les instructions.
§ (1) Nœud-Condition;
§ (2) Nœud-Instruction.
1515
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Ø PSC-G =
PSC-GFC ∧	
Relations-Nœud-Condition	∧
	Relations-Nœud-Instruction
Représentation formule d’un
besoin de test structurel
l Besoins du test structurel
üAnalyse, Génération de données ou preuve d’une post-condition.
l Ensemble objectif de test (EOT)
ü Un besoin du test peut être décomposé en un ensemble d'objectifs partiels
exprimables en termes de nœuds de décision, nœuds de condition ou nœuds
d'instruction.
ü Un objectif partiel est peut être représenté par un ensemble de paires
<variable,valeur>.
l EOT pour quelques mesures de couverture.
ü Couverture de toutes les instructions : chaque objectif partiel est un ensemble
qui contient une seule paire composée d'une variable nœud d'instruction et la
valeur 1.
ü Couverture de toutes les décisions : chaque objectif partiel est un ensemble
singleton qui contient une paire composée d'une variable nœud de décision et la
valeur 1 ou -1.
1616
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Analyse et génération des
données de test
• Génération des données de test
ü Résoudre PSC-G ∧	Un-objectif-partiel-de-l’EOT à la fois.
ü Si la solution pour un objectif satisfait d'autres objectifs partiels, supprimer ces
objectifs partiels de l'EOT.
• Analyse structurelle
ü Un jeu de données à analyser est représenté par un ensemble de données de test
(EDT) qui contient des vecteurs de test < val1; :::; valn >, où vali est la valeur du
paramètre d'entrée numéro i.
ü Résoudre PSC-G ∧	Un-vecteur-de-données-de-l’EDT à la fois.
ü Si la solution pour un vecteur de données satisfait des objectifs de l’EOT,
supprimer ces objectifs partiels de l'EOT.
ü Si l'EOT devient vide, alors une couverture de 100% est atteinte, sinon générer
des données de test et les chemins qui ne sont pas couverts.
1717
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Couverture tous les
chemins
• Génération des données de test pour une couverture k-chemins
ü Orienter la rechercher de solution par les variables nœuds de décision (Ndi).
ü Résoudre PSC-G ∧	Heuristique-de-recherche.
ü Une stratégie de recherche a deux niveaux:
§ Niveau 1, l'énumération est faite sur les variables de type nœud de décision (Ndi),
§ Niveau 2, l’énumération est faite sur les variables qui représentent les paramètres
d'entrée.
§ Une fois qu'une solution est trouvée, le solveur doit faire un retour-arrière vers le premier
niveau.
1818
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Niveau 1
Niveau 2
Preuve de la postcondition
• Prouver une post-condition
ü Résoudre PSC-G ∧	⅂	Post-condition
§ Si le problème a une solution, alors il existe un chemin qui viole cette post-condition. La
solution donne le chemin concerné et les données de test pour violer la post-condition.
§ Si non, alors le post-condition est toujours satisfaite.
1919
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Plan
l Introduction
l Approches de test structurel basées PC
l Notre Approche
F Résultats
l Conclusions et travaux futurs
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
2020
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
Comparaison avec une
approche orientée buts
üSur les douze branches, après cinq minutes d'attente pour
chaque branche, PSC1 n'a pas pu générer des données de test
pour couvrir cinq branches qui représentent 40 % du PST
2121
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
üComparaison avec une approche orientée buts (Gotlieb et al. 2000)
§ Le programme sous test est trytype;
§ PSC1 est généré manuellement selon l’approche de Gotlieb et al. 2000;
§ PSC2 est généré manuellement selon notre approche.
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Comparaison avec une
approche orientée chemins
üEn termes de temps d'exécution, notre approche a prouvé son
efficacité en particulier pour les deux derniers programmes (Merge
et Sample) où il est presque cinq fois plus rapide que PathCrawler
2222
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
üComparaison avec une approche orientée chemins (PathCrawler)
§ Les programmes sous test sont Merge, Trytype et Sample;
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Comparaison avec
l’algorithme génétique
üEn termes de temps d'exécution, notre approche est nettement
meilleure que l’algorithme génétique pour ce genre d’exceptions.
2323
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
üComparaison avec AG pour générer des exceptions de type division
par zéro
§ Les programmes sous test sont l’exemple de Tracy et al. , Bogue d’Eclipse et
Bogue d’Android;
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Preuve d’une post condition
üNotre approche peut générer un contre exemple dans un temps
meilleur que celui de la proche de CPBPV, mais elle est incapable
de prouver que le programme ne viole pas la post-condition.
2424
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
üComparaison avec CPBPV Collavizza et al. pour la preuve d’une post-
condition
§ Le programme sous test est Bsearch.
Taille du tableau 8 16 32 64 128
Bsearch une erreur
est injectée
Notre Approche 0 0 0 0 0
CPBPV 2010 0,027 0,037 0,064 0,115 0,241
Bsearch sans erreur
Notre Approche >300 >300 >300 >300 >300
CPBPV 2010 1,08 1,69 4,04 17,01 136,8
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Plan
l Introduction
l Approches de test structurel basées PC
l Notre Approche
l Résultats
F Conclusions et travaux futurs
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
2525
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
Conclusions
• Une nouvelle approche de test structurel. Il s'agit d'une approche
qui combine les applications de test structurel les plus utilisées;
• La première approche qui regroupe quatre applications de test
structurel et toutes les mesures de couverture structurelle;
• La modélisation d'un PST combiné à son GFC par un PSC
conserve sa sémantique structurelle et peut donc répondre aux
différents besoins de test structurel;
• Notre approche peut être utilisée pour
• Automatiser le processus de test structurel;
• Réduire la taille d'un ensemble de données de test;
• Réduire le temps nécessaire pour tester un système critique.
• Les résultats obtenus prouvent l’efficacité de l’approche proposée.
2626
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Travaux futurs
2727
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel.
• L'implantation d'un outil complet qui mettra en œuvre cette
approche.
• Extension pour dépasser ses limites actuelles
• Les pointeurs;
• Les nombres à virgule flottante;
• Les appels aux fonctions
• Les instructions non structurelles (goto).
• L’application de l’approche sur des programmes de grande
taille.
• Combinaison avec les approches méta-heuristiques.
A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
Merci pour votre attention
Questions ?
2828
CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant

Contenu connexe

Similaire à Jfpc11.ppt

2-Cours de Géniel Logiciel
2-Cours de Géniel Logiciel2-Cours de Géniel Logiciel
2-Cours de Géniel Logiciellauraty3204
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels Bilel Abed
 
Planification et_ordonnancement-2
 Planification et_ordonnancement-2 Planification et_ordonnancement-2
Planification et_ordonnancement-2mahdi hajji
 
Offre Audit et Test De Performance
Offre Audit et Test De PerformanceOffre Audit et Test De Performance
Offre Audit et Test De PerformanceCabinet Openi
 
G1SSCIN03204-sujet2.pdf
G1SSCIN03204-sujet2.pdfG1SSCIN03204-sujet2.pdf
G1SSCIN03204-sujet2.pdfOlivierFLOHR1
 
Réalisation d'un système de supervision de réseaux de capteurs
Réalisation d'un système de supervision de réseaux de capteursRéalisation d'un système de supervision de réseaux de capteurs
Réalisation d'un système de supervision de réseaux de capteursYaSsine Ahammar
 
Séminaire IA & VA- Bertrand Leroy, VEDECOM
Séminaire IA & VA- Bertrand Leroy, VEDECOMSéminaire IA & VA- Bertrand Leroy, VEDECOM
Séminaire IA & VA- Bertrand Leroy, VEDECOMMahdi Zarg Ayouna
 
Développement d'un grand projet piloté par les tests (BDD)
Développement d'un grand projet piloté par les tests (BDD)Développement d'un grand projet piloté par les tests (BDD)
Développement d'un grand projet piloté par les tests (BDD)Laurent PY
 

Similaire à Jfpc11.ppt (20)

RCM data
RCM dataRCM data
RCM data
 
Ds2 informatique
Ds2 informatiqueDs2 informatique
Ds2 informatique
 
Cv
CvCv
Cv
 
2-Cours de Géniel Logiciel
2-Cours de Géniel Logiciel2-Cours de Géniel Logiciel
2-Cours de Géniel Logiciel
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels
 
Planification et_ordonnancement-2
 Planification et_ordonnancement-2 Planification et_ordonnancement-2
Planification et_ordonnancement-2
 
Bbl sur les tests
Bbl sur les testsBbl sur les tests
Bbl sur les tests
 
§T-ydée
§T-ydée§T-ydée
§T-ydée
 
03 préparer le pmp management des coût
03 préparer le pmp   management des coût03 préparer le pmp   management des coût
03 préparer le pmp management des coût
 
§T-ydée.pdf
§T-ydée.pdf§T-ydée.pdf
§T-ydée.pdf
 
Offre Audit et Test De Performance
Offre Audit et Test De PerformanceOffre Audit et Test De Performance
Offre Audit et Test De Performance
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
20111004 02 - Présentation Sqale
20111004 02 - Présentation Sqale20111004 02 - Présentation Sqale
20111004 02 - Présentation Sqale
 
050831+patterned+programs.ppt
050831+patterned+programs.ppt050831+patterned+programs.ppt
050831+patterned+programs.ppt
 
G1SSCIN03204-sujet2.pdf
G1SSCIN03204-sujet2.pdfG1SSCIN03204-sujet2.pdf
G1SSCIN03204-sujet2.pdf
 
Réalisation d'un système de supervision de réseaux de capteurs
Réalisation d'un système de supervision de réseaux de capteursRéalisation d'un système de supervision de réseaux de capteurs
Réalisation d'un système de supervision de réseaux de capteurs
 
Séminaire IA & VA- Bertrand Leroy, VEDECOM
Séminaire IA & VA- Bertrand Leroy, VEDECOMSéminaire IA & VA- Bertrand Leroy, VEDECOM
Séminaire IA & VA- Bertrand Leroy, VEDECOM
 
Développement d'un grand projet piloté par les tests (BDD)
Développement d'un grand projet piloté par les tests (BDD)Développement d'un grand projet piloté par les tests (BDD)
Développement d'un grand projet piloté par les tests (BDD)
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 

Plus de Yann-Gaël Guéhéneuc

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6Yann-Gaël Guéhéneuc
 

Plus de Yann-Gaël Guéhéneuc (20)

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 

Jfpc11.ppt

  • 1. CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel Abdelilah SAKTI, Yann-Gaël Guéhéneuc et Gilles Pesant Département de Génie Informatique et Génie Logiciel École Polytechnique de Montréal, Québec, Canada Le 08 juin 2011, Septièmes Journées Francophones de Programmation par Contraintes (JFPC)
  • 2. Plan F Introduction l Approches de test structurel basées PC l Notre Approche l Résultats l Conclusions et travaux futurs A. SAKTI, Y.-G. Guéhéneuc et G. Pesant 22 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
  • 3. Bogues historiques Ø Le test est une phase très importante dans le cycle de vie d’un logiciel ü Coûte plus de 50% du budget d’un logiciel critique. Ø Quelques catastrophes historiques liées au test logiciel ü 2010 : La voiture hybride Toyota Prius a fait l’objet d’un rappel pour correction de 160000 voitures suite à un problème informatique au niveau de l’ordinateur de bord et du système de contrôle de vitesse. ü1996 : le vol 501 a causé la destruction du lanceur Arian 5 juste 40s après le lancement. L’agence spatiale européenne (ASE) a déclaré un retard du projet, une perte financière directe estimée de 500 million de dollars, et indirectement une perte de la confiance des clients au profit de la concurrence üEntre 1985 et 1987 : l’appareil de radiothérapie Therac-25 a causé au moins cinq décès, et plusieurs autres patients ont été gravement atteints de radiations. L'appareil envoyait au patient une dose de rayons X 100 fois supérieure à celle prévue. 33 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 4. Test logiciel 44 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. Ø Deux grandes méthodes pour tester un logiciel Ø Applications du test structurel ü Analyse de la couverture d’un ensemble de données de test; ü Génération des données de test pour assurer l’exécution d’un ensemble de chemins ü Critères de couverture: Tous-les-chemins (Tous-les-k-chemins), Toutes-les- branches, Toutes-les-instructions. ü Atteindre un point donné dans un programme (générer une exception). ü Preuve de la post-condition ou génération du contre-exemple. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 5. Exemple d’utilisation du test structurel 55 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. Ø La norme DO-178B • Utilise différentes applications de test structurel; • Le test structurel est utilisé pour analyser la couverture de test fonctionnel et pour générer les cas de test manquants; • Exige différents critères de couvertures d’analyse et de génération des données de test; • Un programme est testé selon sa criticité. Niveau Effet (Criticité) Couverture requise A Catastrophique MC/DC B Dangereux branches C Majeur instructions A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 6. Plan l Introduction F Approches de test structurel basées PC l Notre Approche l Résultats l Conclusions et travaux futurs A. SAKTI, Y.-G. Guéhéneuc et G. Pesant 66 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
  • 7. Ø Approches Orientées Chemins ü La technique dominante, consiste à extraire un chemin à partir de GFC ou d'une version instrumentée du PST, puis de générer un prédicat de ce chemin. La résolution de ce prédicat génère des données de test correspondant au chemin choisi. (PathCrawler, Osmose) ü inconvénients ü Le processus de génération de prédicat a un coût important lié à l'évaluation symbolique. ü En général, elle ne peut pas générer des cas de test pour atteindre un point donné dans un PST 77 Approches de test structurel basés PC CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. Ø Approches Orientées Buts ü Traduisent un PST en un PSC en passant par un modèle SSA pour éviter le coût de l'évaluation symbolique. (INKA, Euclide, CPBPV) ü inconvénients ü Contrairement aux approches orientées chemins, cette technique identifie difficilement des points du PST nécessaires pour atteindre un critère de couverture donné. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 8. Plan l Introduction l Approches de test structurel basées PC F Notre Approche l Résultats l Conclusions et travaux futurs A. SAKTI, Y.-G. Guéhéneuc et G. Pesant 88 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
  • 9. Abstraction 99 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. 1. Instrumentation 2. Mise en forme SSA 3. Génération du GFC et PSC préliminaire 4. Génération du PSC global 5. Résolution du PSC global A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 10. Forme SSA CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. 1010 A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 11. • Cinq classes de nœuds du GFC ü Nœud de Paramètres et variables globales; ü Nœud d’instruction; ü Nœud de décision; ü Nœud de condition; ü Nœud de jointure. • Les arrêtes sont étiquettées par 1 ou -1. Génération du Graphe de flot de contrôle CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant 1111
  • 12. Relations entre les nœuds CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. Ø Nœud-Nœud Ø Nœud de décision multi- conditions (décomposition) 1212 A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 13. Les nœuds d’une boucle CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. 1313 A. SAKTI, Y.-G. Guéhéneuc et G. Pesant • Toute boucle du PST doit être transformée en une boucle tant- que (While). • Limiter le nombre d'itérations d’une boucle par une constante k (k-chemin). ü Une boucle contient k +1 nœuds de décision. ü Pour forcer le PST à quitter la boucle au maximum après k itérations, le dernier nœud de décision Ndk+1 doit toujours être différent de la valeur 1. • Les relations entre les nœuds d’une boucle sont les suivantes: ü ü ü
  • 14. Traduire un GFC en un PSC (PSC-GFC) 1414 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel ü Un nœud est traduit par une variable. ü Le domaine est l’ensemble d’étiquettes des arêtes sortantes et la valeur 0 pour les non-racine. ü Une relation nœud-nœud est traduite par une contrainte table. ü Une variable Nfi prennent la valeur et le domaine de la décision correspondante. ü Une relation décision- conditions est traduite par une contrainte table. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 15. Génération du PSC global (PSC-G) CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. Ø Déclaration de variable § Scalaire ou tableau statique: traduction directe; § Tableau dynamique: déclaration du tableau et d’une variable qui représente sa taille. ü Deux types de relations entre les nœuds et les instructions. § (1) Nœud-Condition; § (2) Nœud-Instruction. 1515 A. SAKTI, Y.-G. Guéhéneuc et G. Pesant Ø PSC-G = PSC-GFC ∧ Relations-Nœud-Condition ∧ Relations-Nœud-Instruction
  • 16. Représentation formule d’un besoin de test structurel l Besoins du test structurel üAnalyse, Génération de données ou preuve d’une post-condition. l Ensemble objectif de test (EOT) ü Un besoin du test peut être décomposé en un ensemble d'objectifs partiels exprimables en termes de nœuds de décision, nœuds de condition ou nœuds d'instruction. ü Un objectif partiel est peut être représenté par un ensemble de paires <variable,valeur>. l EOT pour quelques mesures de couverture. ü Couverture de toutes les instructions : chaque objectif partiel est un ensemble qui contient une seule paire composée d'une variable nœud d'instruction et la valeur 1. ü Couverture de toutes les décisions : chaque objectif partiel est un ensemble singleton qui contient une paire composée d'une variable nœud de décision et la valeur 1 ou -1. 1616 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 17. Analyse et génération des données de test • Génération des données de test ü Résoudre PSC-G ∧ Un-objectif-partiel-de-l’EOT à la fois. ü Si la solution pour un objectif satisfait d'autres objectifs partiels, supprimer ces objectifs partiels de l'EOT. • Analyse structurelle ü Un jeu de données à analyser est représenté par un ensemble de données de test (EDT) qui contient des vecteurs de test < val1; :::; valn >, où vali est la valeur du paramètre d'entrée numéro i. ü Résoudre PSC-G ∧ Un-vecteur-de-données-de-l’EDT à la fois. ü Si la solution pour un vecteur de données satisfait des objectifs de l’EOT, supprimer ces objectifs partiels de l'EOT. ü Si l'EOT devient vide, alors une couverture de 100% est atteinte, sinon générer des données de test et les chemins qui ne sont pas couverts. 1717 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 18. Couverture tous les chemins • Génération des données de test pour une couverture k-chemins ü Orienter la rechercher de solution par les variables nœuds de décision (Ndi). ü Résoudre PSC-G ∧ Heuristique-de-recherche. ü Une stratégie de recherche a deux niveaux: § Niveau 1, l'énumération est faite sur les variables de type nœud de décision (Ndi), § Niveau 2, l’énumération est faite sur les variables qui représentent les paramètres d'entrée. § Une fois qu'une solution est trouvée, le solveur doit faire un retour-arrière vers le premier niveau. 1818 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel A. SAKTI, Y.-G. Guéhéneuc et G. Pesant Niveau 1 Niveau 2
  • 19. Preuve de la postcondition • Prouver une post-condition ü Résoudre PSC-G ∧ ⅂ Post-condition § Si le problème a une solution, alors il existe un chemin qui viole cette post-condition. La solution donne le chemin concerné et les données de test pour violer la post-condition. § Si non, alors le post-condition est toujours satisfaite. 1919 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 20. Plan l Introduction l Approches de test structurel basées PC l Notre Approche F Résultats l Conclusions et travaux futurs A. SAKTI, Y.-G. Guéhéneuc et G. Pesant 2020 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
  • 21. Comparaison avec une approche orientée buts üSur les douze branches, après cinq minutes d'attente pour chaque branche, PSC1 n'a pas pu générer des données de test pour couvrir cinq branches qui représentent 40 % du PST 2121 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. üComparaison avec une approche orientée buts (Gotlieb et al. 2000) § Le programme sous test est trytype; § PSC1 est généré manuellement selon l’approche de Gotlieb et al. 2000; § PSC2 est généré manuellement selon notre approche. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 22. Comparaison avec une approche orientée chemins üEn termes de temps d'exécution, notre approche a prouvé son efficacité en particulier pour les deux derniers programmes (Merge et Sample) où il est presque cinq fois plus rapide que PathCrawler 2222 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. üComparaison avec une approche orientée chemins (PathCrawler) § Les programmes sous test sont Merge, Trytype et Sample; A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 23. Comparaison avec l’algorithme génétique üEn termes de temps d'exécution, notre approche est nettement meilleure que l’algorithme génétique pour ce genre d’exceptions. 2323 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. üComparaison avec AG pour générer des exceptions de type division par zéro § Les programmes sous test sont l’exemple de Tracy et al. , Bogue d’Eclipse et Bogue d’Android; A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 24. Preuve d’une post condition üNotre approche peut générer un contre exemple dans un temps meilleur que celui de la proche de CPBPV, mais elle est incapable de prouver que le programme ne viole pas la post-condition. 2424 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. üComparaison avec CPBPV Collavizza et al. pour la preuve d’une post- condition § Le programme sous test est Bsearch. Taille du tableau 8 16 32 64 128 Bsearch une erreur est injectée Notre Approche 0 0 0 0 0 CPBPV 2010 0,027 0,037 0,064 0,115 0,241 Bsearch sans erreur Notre Approche >300 >300 >300 >300 >300 CPBPV 2010 1,08 1,69 4,04 17,01 136,8 A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 25. Plan l Introduction l Approches de test structurel basées PC l Notre Approche l Résultats F Conclusions et travaux futurs A. SAKTI, Y.-G. Guéhéneuc et G. Pesant 2525 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel
  • 26. Conclusions • Une nouvelle approche de test structurel. Il s'agit d'une approche qui combine les applications de test structurel les plus utilisées; • La première approche qui regroupe quatre applications de test structurel et toutes les mesures de couverture structurelle; • La modélisation d'un PST combiné à son GFC par un PSC conserve sa sémantique structurelle et peut donc répondre aux différents besoins de test structurel; • Notre approche peut être utilisée pour • Automatiser le processus de test structurel; • Réduire la taille d'un ensemble de données de test; • Réduire le temps nécessaire pour tester un système critique. • Les résultats obtenus prouvent l’efficacité de l’approche proposée. 2626 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 27. Travaux futurs 2727 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. • L'implantation d'un outil complet qui mettra en œuvre cette approche. • Extension pour dépasser ses limites actuelles • Les pointeurs; • Les nombres à virgule flottante; • Les appels aux fonctions • Les instructions non structurelles (goto). • L’application de l’approche sur des programmes de grande taille. • Combinaison avec les approches méta-heuristiques. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant
  • 28. Merci pour votre attention Questions ? 2828 CP-SST : approche basée sur la programmation par contraintes pour le test structurel du logiciel. A. SAKTI, Y.-G. Guéhéneuc et G. Pesant