29
Introduction à l'Assurance de Qualité Logicielle (AQL) LAJOUAD Rachid

Qualite1

Embed Size (px)

DESCRIPTION

Premier diapos sur la qualitée logicielle

Citation preview

Page 1: Qualite1

Introduction à l'Assurance de

Qualité Logicielle (AQL)

LAJOUAD Rachid

Page 2: Qualite1

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)

Page 3: Qualite1

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)

Page 4: Qualite1

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)

Page 5: Qualite1

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)

Page 6: Qualite1

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)

Page 7: Qualite1

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)

Page 8: Qualite1

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)

Page 9: Qualite1

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)

Page 10: Qualite1

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)

Page 11: Qualite1

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)

Page 12: Qualite1

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)

Page 13: Qualite1

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.)

Page 14: Qualite1

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

Page 15: Qualite1

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

Page 16: Qualite1

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)

Page 17: Qualite1

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)

Page 18: Qualite1

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)

Page 19: Qualite1

Les facteurs et Critères (Liens)

Lajouad Rachid19 Assurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)

Page 20: Qualite1

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)

Page 21: Qualite1

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)

Page 22: Qualite1

Tests du LogicielLAJOUAD Rachid

Page 23: Qualite1

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)

Page 24: Qualite1

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)

Page 25: Qualite1

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)

Page 26: Qualite1

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)

Page 27: Qualite1

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)

Page 28: Qualite1

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)

Page 29: Qualite1

Fin …

Lajouad RachidAssurance Qualité Logiciel (2 ème BTS DSI – IBN SINA – Kenitra)29