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
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)
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, 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)
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ères
Facteur Critères
Fiabilité Tolérance aux fautes, cohérence, précision, simplicité.
Conformité Traçabilité, complétude, cohérence.
Facilité d’emplois
Apprentissage, 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 Logiciel
LAJOUAD 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)
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)
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+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)
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

Qualite1

  • 1.
    Introduction à l'Assurance de QualitéLogicielle (AQL) LAJOUAD Rachid
  • 2.
    Erreurs, fautes etpannes 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éfinitiondes 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 processusde 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 laQualité 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 laQualité 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 laqualité 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 laqualité 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 laqualité 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 laqualité 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 laQualité 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 dela 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 dela 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 dela 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èreset 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)
  • 17.
    Les facteurs etCritères Facteur Critères Fiabilité Tolérance aux fautes, cohérence, précision, simplicité. Conformité Traçabilité, complétude, cohérence. Facilité d’emplois Apprentissage, 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)
  • 18.
    Les facteurs etCritè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 etCritè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érauxde 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)
  • 22.
  • 23.
    Compiler un ensemblede 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 espacede 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 Espaced'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 Grandnombre 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 nepeuvent 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 • Testsboî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)
  • 29.
    Fin … Lajouad RachidAssuranceQualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)29