Académique Documents
Professionnel Documents
Culture Documents
Logiciels
Chapitre 1
MP2L
Des bugs, des conséquences désastreuses...
Quel impact ?
• Sécurité́ des personnes,
• Retour des produits,
• Relations contractuelles,
• Notoriété, image,
Test:
- nécessaire : permet de découvrir des erreurs
- non exhaustif mais facile à mettre en œuvre (bon
rapport qualité/temps)
Assurance qualité des Logiciels
En termes opérationnels:
§ de conception du logiciel
§ d'implantation du logiciel
Test:
- nécessaire : permet de découvrir des erreurs
- non exhaustif mais facile à mettre en œuvre (bon
rapport qualité/temps)
Définition du test
§ « à la main »
§ Programmes de test / batch
§ Utilisation d’outils spécialisés
§ J-unit
§ Cpp-unit
§…
Pourquoi tester ?
l Tests de robustesse.
Les cas de test correspondent à des données d’entrée
invalides : Test-to-fail
l Règle usuelle : Les tests nominaux sont passés avant les
tests de robustesse
l Tests de performance
nn Load testing (test avec montée en charge)
nn Stress testing (soumis à des demandes de ressources
anormales)
Pourquoi tester ? (2)
Analyse
des besoins Test d’acceptation
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
§ Quelles données choisir ?
§ Comment décider que le résultat est correct ?
§ Quand peut-on / doit-on s’arrêter ?
§ Difficulté psychologique
§ Programmation : activité constructive
§ Test : activité « destructive »
§ Il est difficile de détruire ce que l’on a construit
Difficulté du test
Limite théorique = Notion d'indécidabilité
Propriété indécidable = qu'on ne pourra jamais prouver dans
le cas général (pas de procédé systématique)
Exemples de propriétés indécidables :
• L’exécution d’un programme termine
• Deux programmes calculent la même chose
• Un programme n'a pas d'erreur
Une bataille perdue d'avance :
• un programme a un nombre infini (ou immense) d'exécutions possibles
• un jeu de tests n'examine qu'un nombre fini d'exécutions possibles
Lagaf Mafalda
Mafalda Lagaf
OK KO
Pourquoi le test est difficile (3)
Résultat correct ?
§ Décider si le comportement du programme est
correct
§ Problème de l’oracle
§ Pouvoir observer :
§ quelles sont les sorties du logiciels
§ Savoir décider
§ Comment décide-t-on que le comportement est OK ?
§ Exple : Soit un programme de tri alphabétique
Lagaf G. La Poste
La Poste Lagaf G.
Pourquoi le test est difficile (4)
Quand s’arrêter ?
§ Le test n’a pas révélé d’anomalies
§ Absence d’erreur ?
§ Mauvais choix de données ?