Académique Documents
Professionnel Documents
Culture Documents
LOGICIEL
Presented By:
Bah Moussa Demba
MQI Dept.
1
Objectifs du cours d'aujourd'hui
Panne
+/- grave
3
La chaîne de l’erreur
Panne
+/- grave
4
5
6
Processus logiciels
de conception du logiciel
d'implantation du logiciel
de vérification / validation
Vérification et validation (1)
Validation
établissement par des preuves objectives que toutes les
exigences ont été correctement et complètement implémentée
(prises en compte)
produit répond aux besoins
Vérification
confirmation que ce qui est produit pendant une étape de
développement correspond à toutes les exigences exprimées
au début de cette phase
produit conforme à sa définition
Vérification et validation (2)
Analyse statique
revue de code, relecture croisée
Tests
Preuve
model-checking
preuves déductives
Plan
Rappel
Principe du Test
Définition
Problématiques
Conclusion
Objectifs
Le test vise à mettre en évidence les erreurs d’un logiciel
12
Définition du test
Tester un logiciel, c'est :
exécuter le logiciel
en maîtrisant les données en entrée
en s’assurant que le comportement est celui attendu
« à la main »
Programmes de test / batch
Utilisation d’outils spécialisés
J-unit
Cpp-unit
…
Pourquoi tester ? (1)
Conception Tests
globale d’intégration
Conception Tests
détaillée unitaires
Codage
Pourquoi le test est difficile (1)
Difficultés théoriques
On ne peut pas tout tester
Infinité de données et/ou pas le temps/argent
Dans d’autres domaines les ingénieurs arrivent à conclure, à partir
de qcq tests, que leur produit fonctionne dans tous les cas, pourquoi
ne pouvons-nous faire pareil ?
Ex. Un pont est testé pour vérifier sa capacité à supporter des camions, si le
test est concluant pour des camions de 1000 tonnes, il sera concluant pour
tout camion de poids inférieur a 1000 tonnes :
principe de continuité
Quelles données choisir ? Il faut choisir des cas de test pertinents !
Comment décider que le résultat est correct ?
Quand peut-on / doit-on s’arrêter ? Même principe en génie logiciel ?
Pourquoi le test est difficile (2)
Difficulté psychologique
Programmation : activité constructive
Test : activité « destructive »
Il est difficile de détruire ce que l’on a construit
Pourquoi le test est difficile (3)
Le choix de données
Test exhaustif
Exécuter le logiciel avec toutes les données d’entrée possibles dans
toutes les situations possibles
Impossible
Choisir des donnée pour découvrir des erreurs
Quelles données pour trouver des erreurs ?
Quelles données pour trouver toutes les erreurs ?
Chaque programme est particulier = aucune technique générale
Démarches classiques, basées sur l’expérience (ensemble de
« trucs »)
Pourquoi le test est difficile (4)
Résultat correct ?
Principe du Test
Conclusion
Arrêt du test
si c1 alors b C2
si c2 alors d d e c
sinon e
sinon c
Graphe de contrôle
Types de couverture E
a
b C1
Instructions C2
d e c
Branches
Conditions et conditions multiples
…
S
Mesures de couverture, Attention!
Mesure de couverture
Soit un critère
On s’arrête quand le critère est atteint
L’industrie aime
Manipulation de données quantitative
Peut être outillé
Attention : Un critère d’arrêt signifie
Tant que le critère n’est pas couvert, on n’est sûr que l’on n’a pas fini de
testé
Un critère d’arrêt NE signifie PAS
Quand on a atteint le critère on a fini de tester
Quand on a atteint le critère on a trouvé toutes les erreurs
Couverture des instructions
Objectif :
Exécuter au moins une fois toutes les instructions du
programme
But :
Détecter des instructions fautives
Justification :
Si on n’a pas testé toutes les instructions, on n’a pas testé
tout le programme
Couvertures des instructions: Limites
But :
Mettre en évidence des défauts dans les instructions
conditionnelles ou itératives
Justification
Si toutes les conditions n’ont pas été exécutée au moins
une fois à vraie et à faux, certaines instructions ne seront
pas exécutées
Couverture des branches: Limites
Limites
Si C1 alors S1 sinon S2;
Si C2 alors S3 sinon S4;
Justification :
Meilleure détection des défauts dans les conditions
Thank You
Adapte’ du cours de
37