57
Chapitre 2 Assurance Qualité Logicielle Syrine Tlili ([email protected]) Février 2013 Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 1 / 57

chapitre 2

Embed Size (px)

Citation preview

Chapitre 2Assurance Qualité Logicielle

Syrine Tlili ([email protected])

Février 2013

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 1 / 57

Objectifs

Qu’est ce la Qualite Logicielle ?Pourquoi la Qualite Logicielle est importante ?Qu’est ce l’Assurance de Qualite Logicielle ?Facteurs de Qualite LogicielleElements de l’Assurance de Qualite LogiciellePlans de Developpement et de qualiteModeles de maturite de processus

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 2 / 57

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.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 3 / 57

Qualité Logicielle

La notion de qualité recouvre deux aspects:1 conformité avec la définition, cette notion est contrôlable en cours

de fabrication,2 réponse à l’attente de l’utilisateur, cette notion est contrôlable à

la livraison du produit.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 4 / 57

Vérification et Validation

La validation a pour base les besoins que le produit doit satisfaire, etpour fonction la mise en évidence de défauts.

- Valider c’est répondre à la question :

Faisons nous le bon produit?

La vérification a pour base des définitions précises et non ambiguësconsignées antérieurement, elle a pour fonction la mise en évidenced’erreurs.

- Vérifier c’est répondre à la question :

Faisons nous le produit correctement?

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 5 / 57

Erreurs, fautes et pannes de logiciel

On précise la terminologie en accord avec la norme IEEE:Erreur: Commise par le développeur, conduit à un défaut,Défaut: Imperfection dans le logiciel conduisant ou non à une panne,Panne: Comportement anormal d’un programme.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 6 / 57

Les Sources d’Erreurs

1 Mauvaise définition des exigences2 Problèmes de communication entre clients et developpeurs3 Déviations délibérées des exigences du logiciel4 Erreur de conception (logique)5 Erreurs de programmation6 Non conformité à la documentation ainsi qu’aux instructions de

programmation7 Insuffisances du processus de tests8 Erreurs de l’interface usagers ainsi que de la procédure9 Erreurs de documentation

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 7 / 57

Les Sources d’Erreurs

Plus une faute est détectée tard, plus elle coûte cher.Moralité : Mieux vaut prévenir que guérir.Un Logiciel de qualité est caractérisé par:

Absence de bugsBas 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)probabilite d’operation sans panne dans un temps spécifié

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 8 / 57

Facteurs de Qualité Logicielle

51

QUALITÉ EXTERNE

QUALITÉ INTERNE

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 9 / 57

Facteurs, Critères, Métriques de Qualité (1/3)

Mac Call définit une approche de la qualité à partir de la définition de :Caractéristiques externes : facteurs de qualitéCaractéristiques internes : critères de qualitéCaractéristiques mesurables: métriques de qualité

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 10 / 57

Facteurs, Critères, Métriques de Qualité (2/3)

Un facteur est une caractéristique du logiciel, du processus ou duservice contribuant à sa qualité telle qu’elle est ressentie parl’utilisateur.Un critère est un attribut du logiciel par l’intermédiaire duquel unfacteur peut être obtenu. C’est également une caractéristique dulogiciel sur laquelle le développeur peut agir. (par exemple, sasimplicité)Une métrique est la mesure d’une propriété d’un critère. (parexemple, la taille d’un module pour le critère Simplicité).

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 11 / 57

Facteurs, Critères, Métriques de Qualité (3/3)

Les 11 facteurs de qualité peuvent être classés en 3 catégories:Les caractéristiques opérationnelles (product operation)La capacité d’évolution (product revision)L’adaptabilité (product transition)

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 12 / 57

Les Caractéristiques Opérationnelles

conformité aux besoins: le produit fait-il ce que je souhaite?fiabilité: le fait-il correctement dans tous les cas?efficacité: utilise-t-il au mieux le matériel?intégrité: est-il protégé contre les intrusions? a-t-il un niveau desécurité suffisant?facilité d’emploi: au niveau de l’apprentissage, de la mise en oeuvre,de la préparation des données, de l’interprétation des résultats

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 13 / 57

La Capacité d’Evolution (Product Revision)

maintenabilité: facilité avec laquelle on peut localiser et corriger leserreurs,souplesse: facilité de modification et d’évolution (adaptation à denouveaux besoins),testabilité: effort requis pour le tester.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 14 / 57

L’Adaptabilité (Product Transition)

portabilité: peut-on utiliser le logiciel sur une autre machine?réutilisabilité: peut-on réutiliser des parties du logiciel dans d’autresapplications,interopérabilité: facilité d’interfaçage avec un autre système.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 15 / 57

Influence des facteurs de qualité les uns sur les autres

Ex. facteurs qui diminuent l’efficacité- intégrité (nécessité d’introduire des vérifications)- maintenabilité (sacrifice de l’efficacité pour la lisibilité)- portabilité (moindre efficacité des structures portables)- testabilité, flexibilité, réutilisabilité, interopérabilité, ...

Ex. facteurs qui diminuent l’intégrité- flexibilité, réutilisabilité, interopérabilité

Existe-t-il une liaison de cause à effet entre ergonomie et fiabilité ?

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 16 / 57

Influence des facteurs de qualité les uns sur les autres

Ex. facteurs qui diminuent l’efficacité- intégrité (nécessité d’introduire des vérifications)- maintenabilité (sacrifice de l’efficacité pour la lisibilité)- portabilité (moindre efficacité des structures portables)- testabilité, flexibilité, réutilisabilité, interopérabilité, ...

Ex. facteurs qui diminuent l’intégrité- flexibilité, réutilisabilité, interopérabilité

Existe-t-il une liaison de cause à effet entre ergonomie et fiabilité ?Un logiciel non fiable ne peut être réellement convivial : il causera desproblèmes d’utilisation à ses utilisateurs. Un logiciel ergonomiqueévitera les erreurs opératoires de l’utilisateur et donc les défauts defonctionnement.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 17 / 57

Opérabilité Communicabilité Apprentissage Volume et taux d’E/S Contrôle d’accès Consommation mémoire Vitesse d’exécution Traçabilité Complétude Précision Cohérence Tolérance aux fautes Simplicité Modularité Concision Auto-description Instrumentation Généralité Evolutivité Indépendance machine Indépendance système Communications banalisées Données banalisées

Cri

tère

s d

e q

ual

ité

(C

arac

téri

stiq

ue

s In

tern

es)

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 18 / 57

Opérabilité Communicabilité Apprentissage Volume et taux d’E/S Contrôle d’accès Consommation mémoire Vitesse d’exécution Traçabilité Complétude Précision Cohérence Tolérance aux fautes Simplicité Modularité Concision Auto-description Instrumentation Généralité Evolutivité Indépendance machine Indépendance système Communications banalisées Données banalisées

Cri

tère

s d

e q

ual

ité

(C

arac

téri

stiq

ue

s In

tern

es)

Facilité d’emploi

Intégrité

Efficacité

Conformité

Fiabilité

Maintenabilité

Testabilité

Flexibilité

Portabilité

Réutilisabilité

Interopérabilité Fact

eu

rs d

e q

ual

ité

(C

arac

téri

stiq

ue

s Ex

tern

es)

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 19 / 57

Opérabilité Communicabilité Apprentissage Volume et taux d’E/S Contrôle d’accès Consommation mémoire Vitesse d’exécution Traçabilité Complétude Précision Cohérence Tolérance aux fautes Simplicité Modularité Concision Auto-description Instrumentation Généralité Evolutivité Indépendance machine Indépendance système Communications banalisées Données banalisées

Cri

tère

s d

e q

ual

ité

(C

arac

téri

stiq

ue

s In

tern

es)

Facilité d’emploi

Intégrité

Efficacité

Conformité

Fiabilité

Maintenabilité

Testabilité

Flexibilité

Portabilité

Réutilisabilité

Interopérabilité Fact

eu

rs d

e q

ual

ité

(C

arac

téri

stiq

ue

s Ex

tern

es)

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 20 / 57

Opérabilité Communicabilité Apprentissage Volume et taux d’E/S Contrôle d’accès Consommation mémoire Vitesse d’exécution Traçabilité Complétude Précision Cohérence Tolérance aux fautes Simplicité Modularité Concision Auto-description Instrumentation Généralité Evolutivité Indépendance machine Indépendance système Communications banalisées Données banalisées

Cri

tère

s d

e q

ual

ité

(C

arac

téri

stiq

ue

s In

tern

es)

Facilité d’emploi

Intégrité

Efficacité

Conformité

Fiabilité

Maintenabilité

Testabilité

Flexibilité

Portabilité

Réutilisabilité

Interopérabilité Fact

eu

rs d

e q

ual

ité

(C

arac

téri

stiq

ue

s Ex

tern

es)

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 21 / 57

Métriques Associées aux Critères de Qualité

Mesure des caractéristiques internes- mesures objectives: taille, complexite du flôt de controle,

cohésion modulaire / couplage entre modules, ...Mesure des caractéristiques externes

- evaluations stochastiques (statistiques): délai moyen de réponseà une requête, nombre de requêtes simultanées sans écrouler unserveur, ...Ce sont des mesures a posteriori

- arrivent parfois trop tard

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 22 / 57

Métriques Associées aux Critères de Qualité

Fiabilité :I mesures stochastiques :

- temps moyen de réparation- temps moyen entre deux pannes- taux de disponibilité

Portabilité :I mesure objective :

- nb d’instructions dépendant de la plate-forme cibleFacilité d’utilisation :

I mesures objectives :- nbr de paramètres ayant une valeur par défaut (pertinente)- nbr d’écrans d’aide

I mesures stochastiques :- nb de fausses manipulations par jour- nb de jours d’apprentissage- temps de lecture / interprétation des résultats affichés

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 23 / 57

Assurance Qualité

Un grand nombre de métriquesdifficile de les connaître toutes, et souvent discutables (visionpartielle/artificielle du problème)

L’important, c’est la démarche :définir un plan qualité adapté au contextedétailler une mesure des différents critèress’interroger sur la validité des métriques (pertinence)

Problème des mesures a posterioritrop tard, mais forge l’expérience

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 24 / 57

Assurance Qualité

D’après IEEEUn modèle planifié et systématique de toutes les actions nécessairespour fournir une confiance adéquate qu’un article ou un produit estconforme à ses exigences techniques établies.Un ensemble d’activités conçu pour évaluer le processus par lequel lesproduits sont développés ou fabriqués. A contraster avec: le contrôlede qualité.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 25 / 57

Assurance Qualité

D’après IEEEUn modèle planifié et systématique de toutes les actions nécessairespour fournir une confiance adéquate qu’un article ou un produit estconforme à ses exigences techniques établies.Un ensemble d’activités conçu pour évaluer le processus par lequel lesproduits sont développés ou fabriqués. A contraster avec: le contrôlede qualité.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 26 / 57

Assurance et Contrôle Qualité

Assurance Qualité: Mise en oeuvre d’une approche préventive de laqualité. L’AQ consiste en un ensemble d’actions de prévention desdéfauts qui accompagnent le process de développement des artefactslogiciels.Contrôle Qualité: Mise en oeuvre d’une approche curative de laqualité. Le CQ suppose que bien que le process de production estsatisfaisant, il présente des dysfonctionnements dont les effets doiventêtre éliminés.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 27 / 57

Plan Assurance Qualité

La planification de la qualité doit commencer très tôt dand le processus dedéveloppement.

Le Plan Qualité doit détermnier les qualités du produit auxquelles onattache de l’importance,

- Savoir ce que vous faitesLe Plan Qualité doit déterminer les standards appropriés au produit etau processus de développement de ce produit.

- Savoir ce que vous devriez faireLe Plan doit aussi définir le processus d’estimation de la qualité,

- Savoir mesurer la différence

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 28 / 57

Plan Assurance qualité

Plan Assurance Qualité (PAQ) : Dispositions spécifiques à un projet, unservice, un contrat ayant pour objectifs :

Le PAQ, dans sa version validée par les deux parties, constitue unengagement mutuel entre maîtrise d’ouvrage et maîtrised’oeuvre.Il décrit le niveau de service requis.Il décrit l’ensemble des dispositions spécifiques d’assurance, decontrôle et de suivi qualité prises par la maîtrise d’oeuvre pourobtenir et garantir la qualité de ses prestations.Il tend notamment à être le plus exhaustif possible sur les principes,les dispositions et les moyens pris pour obtenir la qualité desprestations objet du contrat, ainsi que sur les produits fournis et lesengagements.Il permet également de bien définir le rôle de chacun desintervenants des deux parties, maîtrise d’ouvrage et maîtrised’oeuvre ? Il sert de document de référence.

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 29 / 57

Moyens de l’Assurance Qualité

Méthodes statiques a priori (sans executer le logiciel)- examen critique de documents et de code- analyse automatique (ou assistée) de code / spécification. analyse statique de programme. vérification de modèle (model checking). outils de preuves formelles

Méthodes dynamiques a posteriori (en executant le logiciel)- tests- instrumentation de code

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 30 / 57

Examen Critique de Documents et de Code

Avoir un point de vue différent de l’auteur- quelqu’un d’autre

Avoir différents points de vue- compétences multiples

Avoir des points de vue objectifs- participants hors de l’équipe de développement

Critiquer les aspects techniques, pas l’auteur (!)Juger la forme : format, structure, satisfaction des normes du planqualité...Juger le fond :

I précision, non-ambiguité, complétude, cohérence (pas de referenceimprecise ou inexistante)

I conformité par rapport aux documents amont, au plan projet

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 31 / 57

Examen Critique de Documents et de Code

Cahier des charges 5-10 pages/hSpécifications fonctionnelles 10 pages/hConception globale 5-15 pages/hConception détaillée 10 pages/hCode 20-50 lignes/h

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 32 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 33 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 34 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 35 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 36 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 37 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 38 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 39 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 40 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 41 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 42 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 43 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 44 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 45 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 46 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 47 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 48 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 49 / 57

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 50 / 57

Défauts Typiques à Examiner

Référence aux données :variables non initialisées

- savoir si le langage initialise par défaut et quand- dans les cas douteux, initialiser explicitement

indices de tableaux hors bornes- principale source des failles de sécurité (!)

accès à des structures/records à champs variables ou à des unions

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 51 / 57

Défauts Typiques à Examiner

Référence aux données :confusion entre donnée et pointeur vers la donnéedéréférence de pointeurs nulspointeurs sur des données désallouées ou pas encore allouéespointeurs sur des données devenues inutiles mais non libérées

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 52 / 57

Défauts Typiques à Examiner

Calculs :conversions de type (implicites et explicites)underflow/overflow (dépassement de capacité du type)division par zéroprécédence des opérateurs

- dans le doute (pour la lisibilité), toujours parenthéser

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 53 / 57

Défauts Typiques à Examiner

Comparaisons :incohérence des types

- mélanges d’entiers et de booleensinclusion ou non des bornes incorrecte

- < au lieu de <=, >= au lieu de >, ...inversion du test

- == au lieu de !=, > au lieu de <, ...confusion en egalite (==) et affectation (=)

- if (x = y) ... au lieu de if (x == y) ...

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 54 / 57

Défauts Typiques à Examiner

Comparaisons :confusion entre operateurs binaires (bits) et logiques- et (&, &&, and), ou (|, ||, or)

negation incorrecte d’une condition logique!(x ==1 && (y < 2 || !z)) equiv. x !=1 || (y >= 2 && z)

précédence des opérateurs booleensx || y && z equiv. x || (y && z)

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 55 / 57

Défauts Typiques à Examiner

Contrôle :ensemble de case incompletcas default manquantbreak oubliérattachement du else au if ( dandling else)1. if (a) if (b) x=0; else x=1;2. if (a) {if (b) x=0;} else x=1; /* diff. de 1. */3. if (a) {if (b) x=0; else x=1;} /* idem 1. */

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 56 / 57

Défauts Typiques à Examiner

Contrôle :terminaison du programme

- boucles et récursions sans finboucles

- conditions initiales (indices, ...) incorrectes- itérations en plus ou en moins- incohérences après une sortie de boucle anticipée- incohérences après une sortie de boucles emboitées

procédures et fonctions- incohérences après une sortie anticipée

exceptions non rattrapées

Sésame (Sésame) Assurance Qualité Logicielle Janvier 2013 57 / 57