Upload
rachid-lajouad
View
240
Download
4
Embed Size (px)
DESCRIPTION
Premier diapos sur la qualitée logicielle
Citation preview
Introduction à l'Assurance de
Qualité Logicielle (AQL)
LAJOUAD Rachid
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)
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)
Relation entre processus de développement et défauts
• La majorité des défauts sont introduits tôt
PhasePourcentage 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)
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)
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)
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)
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, NorthAmerican 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)
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)
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)
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)
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)
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.)
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
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
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)
Les facteurs et CritèresFacteur Critères
Fiabilité Tolérance aux fautes, cohérence, précision, simplicité.
Conformité Traçabilité, complétude, cohérence.
Facilité d’emploisApprentissage, Communicabilité , Volume d'E/S ; Taux
d'E/S
Intégrité (Sécurité) Contrôle des accès
Maintenabilité (Réutilisabilité)
simplicité, modularité, concision
Flexibilité (Adaptabilité) Généralité, auto-descriptivite
Portabilité indépendance machine, indépendance système
Interopérabilitémodularité, données banalisées , communications
banalisées
Testabilité Simplicité, instrumentation
Efficacité efficacité mémoire ,efficacité d'exécution.
Lajouad Rachid17 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
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)
Les facteurs et Critères (Liens)
Lajouad Rachid19 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)
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)
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)
Tests du LogicielLAJOUAD Rachid
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)
Il e
st im
pos
sibl
e de
test
er u
n p
rogr
am
me
com
plè
tem
ent
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)
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)
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+1n |Nbre chemins===== |===============1 | 310 | 102560 | 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)
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)
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)
Fin …
Lajouad RachidAssurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)29