2. Erreurs, fautes et pannes du logiciel
• Bug/défaut/faute conséquence d'erreurs
humaines
• résulte en non-conformité aux exigences
• se manifeste comme une panne lors de
l'exécution
Processus de développement du logiciel
Erreur
Faute
Panne
Lajouad Rachid2 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
3. Sources d'erreurs
Mauvaise définition des exigences
Problèmes de communication entre
clients et développeurs
Déviations délibérées des exigences du
logiciel
Erreur de conception (logique)
Erreurs de programmation
Lajouad Rachid3 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
4. Relation entre processus de
développement et défauts
• La majorité des défauts sont
introduits tôt
Phase
Pourcentage
de défaut
Effort pour
fixer défaut
Exigences 56 82
Design 27 13
Code 7 1
Autres 10 4
Lajouad Rachid4 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
5. Qu'est ce la Qualité logicielle ?
Conformité aux exigences
Sens le plus étroit de qualité du logiciel
• absence de bugs
• bas ratio de défauts (% de défauts/unité de taille)
• haute fiabilité (nombre de pannes par n heures d'opération)
Temps Moyen entre Pannes (Mean Time To Failure
MTTF) probabilité d'opération sans panne dans un
temps spécifié.
Lajouad Rachid5 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
6. Qu'est ce la Qualité logicielle ?
Selon l'IEEE
La qualité logicielle est:
(1) Le degré avec lequel un système, un
composant ou un processus satisfait à ses
exigences spécifiées.
(2) Le degré avec lequel un système, un
composant ou un processus satisfait aux
besoins ou attentes de ses clients/usagers.
Lajouad Rachid6 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
7. Importance de la qualité du logiciel
• communication (ex. syst. téléphone, syst. email)
• santé (monitoring),
• transport (ex. automobile, aéronautique),
• échanges économiques (ex. ecommerce),
• entertainment, … etc.
Le logiciel est une
composante majeure
des systèmes
informatiques
(environ 80% du
coût) – utilisés pour
• d'argent
• de réputation
• de perte de vie
Les défauts du logiciel
sont extrêmement
coûteux en terme
Lajouad Rachid7 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
8. Importance de la qualité du logiciel
Plusieurs
désastres
historiques
attribués au
logiciel
1988 abattage d'un
Airbus 320 par l'USS
Vincennes –
affichage cryptique et
confusant du logiciel
de détection
1991 échec de
missile patriot calcul
imprécis de temps
dû à des erreurs
arithmétiques
London Ambulance
Service Computer Aided
Dispatch System –
plusieurs décès
Le 3 Juin 1980, North
American Aerospace
Defense Command
(NORAD) rapporta que
les U.S. étaient sous
attaque de missiles
Échec du 1er lancement op
de la navette spatiale dont le
logiciel d'exploitation temps
réel à un problème de
synchronisation entre les
ordinateurs de contrôle de
vol
panne de 9 heures du
réseau téléphonique
longue distance
d'AT&T – provoqué
par un patch de code
non testé
Lajouad Rachid8 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
9. Importance de la qualité du logiciel
Ariane 5 crash 4 Juin 1996
• Vol inaugural du lanceur européen Ariane 5 crash environ 40 secondes
après décollage
• Perte d'environ ½ milliards de dollars
• L'explosion était le résultat d'une erreur logiciel
• Exception non capturée due à une erreur de floating point: conversion
d'entier 64bit à entier 16bit signed integer appliqué à un nombre plus
large que supposé
• Le module était réutilisé sans avoir été testé convenablement d'Ariane 4
• Erreur n'était pas supposé survenir avec Ariane 4
• Pas de gestionnaire d'exception
Lajouad Rachid9 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
10. Importance de la qualité du logiciel
Virus et vers Internet
• Ver Blaster ($US 525 millions)
• Sobig.F ($US 500 millions – 1milliard)
Exploitent des vulnérabilités bien connues du logiciel
• Les développeurs de logiciel ne consacrent pas assez d'effort à
appliquer des leçons apprises sur les causes des vulnérabilités.
• Les mêmes types de vulnérabilités continuent à être vus dans les
nouvelles versions des produits qui étaient dans des versions
précédentes.
Lajouad Rachid10 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
11. Problématique de la Qualité Logicielle
Le caractère unique du produit logiciel
• Grande complexité
• Opportunités limités de détection de (“bugs”) : seulement durant le
développement
Les environnements de développement du logiciel
• Exige un travail d'équipe
• Exige la coopération et coordination avec d'autres équipes de
développement
• Exige des interfaces avec d'autres systèmes
• Exige la maintenance pendant plusieurs années
Lajouad Rachid11 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
12. Facteurs de Qualité Logicielle
• Modèle de qualité logicielle de McCall's
Facteurs de qualité logicielle
Liés à l’opération du produit Liés à la transition du produit
Liés à la révision du produitCorrectude
Fiabilité
Efficacité
Utilisabilité
Maintenabilité
Flexibilité
Testabilité
Portabilité
Reusabilité
Interopérabilité
Lajouad Rachid12 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
13. Les facteurs de la qualité
• Point de vue utilisateur
• Fiabilité : pas de « plantage »
• Sécurité : pas de mise en danger de vies humaines/de
machines.
• Intégrité : protection des données contre les intrusions
• Ergonomie : utilisation aisée du logiciel.
• Efficacité : minimisation des ressources (temps,
mémoire, etc.)
14. Les facteurs de la qualité
• Point de vue développeur
• Testabilité : facilité de vérification du
code
• Maintenabilité : détection et correction
aisée des erreurs
• Flexibilité : évolution facile
15. Les facteurs de la qualité
Point de vue communication
• Réutilisabilité : utiliser les modules développés
dans de futurs projets
• Portabilité : possibilité de faire tourner le
logiciel sur d’autres architectures
• Compatibilité : échange de données avec
d’autres logiciels
16. Facteurs, Critères, Métriques
Critères et Facteurs
Facteur
Qualité
Rapport avec Logiciel?
Externe
Critère
Interne
Métrique
Mesure Directe
Métriques Obtenues par
des Réponses Oui/Non
Métriques Obtenues par
des Enquêtes
Comment Évaluer?
Lajouad Rachid16 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
18. Les facteurs et Critères (Liens)
Exercice : trouver les liens entre facteurs de qualité et critères de
qualité
Lajouad Rachid18 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
19. Les facteurs et Critères (Liens)
Lajouad Rachid19 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
20. l'assurance de qualité logicielle ?
Selon D. Galin, L'assurance qualité logicielle est:
Un ensemble systématique et prévu d'actions
nécessaires à l'obtention d'une confiance
adéquate que le procédé de développement
de logiciel ou le processus de maintenance
d'un produit de système logiciel est conforme
aux exigences techniques fonctionnels établies
aussi bien qu'aux exigences concernant le
schedule et budget.
Lajouad Rachid20 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
21. Trois principes généraux de l'AQL
Savoir ce
que vous
faites
Savoir ce
que vous
devriez faire
Savoir
mesurer la
différence
Lajouad Rachid21 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
23. Compiler un ensemble de situation d'erreurs devant servir à la
prévention des erreurs (par des actions correctives et préventives).
Effectuer les tests requis de façon efficiente et effective dans les
limite de temps et budget définis.
Amener le logiciel testé à un niveau acceptable de qualité
(après la correction des défauts identifiés et re-testage).
Détecter des défauts avant qu'ils ne causent une panne du
système en production.
Objectif des tests
Lajouad Rachid23 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
24. Ilestimpossiblede
testerunprogramme
complètement grand espace de données (entrées)
grand espace de sorties
grand espace d'états
grand nombre de chemin
d'exécutions
subjectivité des spécifications
Axiomes de Tests
Lajouad Rachid24 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
25. Axiomes de Tests
Espace d'entrées/Sorties énorme
int Fct(int x,int y){
...
}
Test exhaustif ⇒
essayer toutes les
combinaisons
possibles de x et y
Lajouad Rachid25 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
26. Axiomes de Tests
Grand nombre de séquences d'exécution
...
for(int i = 0; i < n; ++i) {
if (a.get(i) == b.get(i))
x[i] = x[i] + 100;
else
x[i] = x[i]/2;
} ...
Nombre de chemins = 2n+1
n |Nbre chemins
===== |===============
1 | 3
10 | 1025
60 | 1.15E+18
======================
Avec 1ms par cas de test il
faut des millions
d’années pour n = 60.
Lajouad Rachid26 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
27. Les tests ne peuvent prouver l'absence de
bugs
Plus de bugs sont trouvés, plus il y a de bugs
Paradoxe du pesticide
• un système tend à développer de la résistance aux
techniques de tests utilisés.
Axiomes de tests
Lajouad Rachid27 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
28. Tests Unitaires
• Tests boîte noire basés sur spécification
• Tests boîte blanche basés sur logique interne
• Tests boîte grise basés sur modèle de design
Tests d'intégration
Tests de Système inclus
• Tests de Fonctionnalité
• Tests de Performance
Tests d'acceptation
• Tests Alpha
• Tests Bêta
Tests de Régression
Types de tests
Lajouad Rachid28 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)