Vous êtes sur la page 1sur 57

Chapitre 2 Assurance Qualit Logicielle Syrine Tlili (syrine.tl@gmail.

com) Fvrier 2013

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

1 / 57

Objectifs

Quest ce la Qualite Logicielle ? Pourquoi la Qualite Logicielle est importante ? Quest ce lAssurance de Qualite Logicielle ? Facteurs de Qualite Logicielle Elements de lAssurance de Qualite Logicielle Plans de Developpement et de qualite Modeles de maturite de processus

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

2 / 57

Qualit Logicielle

Selon lIEEE La qualit logicielle est:


1

Le degr avec lequel un systme, un composant ou un processus satisfait ses exigences spcies. Le degr avec lequel un systme, un composant ou un processus satisfait aux besoins ou attentes de ses clients/usagers.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

3 / 57

Qualit Logicielle

La notion de qualit recouvre deux aspects:


1

conformit avec la dnition, cette notion est contrlable en cours de fabrication, rponse lattente de lutilisateur, cette notion est contrlable la livraison du produit.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

4 / 57

Vrication et Validation

La validation a pour base les besoins que le produit doit satisfaire, et pour fonction la mise en vidence de dfauts. - Valider cest rpondre la question : Faisons nous le bon produit? La vrication a pour base des dnitions prcises et non ambigus consignes antrieurement, elle a pour fonction la mise en vidence derreurs. - Vrier cest rpondre la question : Faisons nous le produit correctement?

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

5 / 57

Erreurs, fautes et pannes de logiciel

On prcise la terminologie en accord avec la norme IEEE: Erreur: Commise par le dveloppeur, conduit un dfaut, Dfaut: Imperfection dans le logiciel conduisant ou non une panne, Panne: Comportement anormal dun programme.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

6 / 57

Les Sources dErreurs

1 2 3 4 5 6

Mauvaise dnition des exigences Problmes de communication entre clients et developpeurs Dviations dlibres des exigences du logiciel Erreur de conception (logique) Erreurs de programmation Non conformit la documentation ainsi quaux instructions de programmation Insusances du processus de tests Erreurs de linterface usagers ainsi que de la procdure Erreurs de documentation

7 8 9

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

7 / 57

Les Sources dErreurs

Plus une faute est dtecte tard, plus elle cote cher. Moralit : Mieux vaut prvenir que gurir. Un Logiciel de qualit est caractris par: Absence de bugs Bas ratio de dfauts ( de dfauts/unit de taille) Haute abilit (nombre de pannes par n heures dopration) - Temps Moyen entre Pannes (Mean Time To Failure MTTF) probabilite doperation sans panne dans un temps spci

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

8 / 57

Facteurs de Qualit Logicielle

QUALIT EXTERNE

QUALIT INTERNE
51

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

9 / 57

Facteurs, Critres, Mtriques de Qualit (1/3)

Mac Call dnit une approche de la qualit partir de la dnition de : Caractristiques externes : facteurs de qualit Caractristiques internes : critres de qualit Caractristiques mesurables: mtriques de qualit

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

10 / 57

Facteurs, Critres, Mtriques de Qualit (2/3)

Un facteur est une caractristique du logiciel, du processus ou du service contribuant sa qualit telle quelle est ressentie par lutilisateur. Un critre est un attribut du logiciel par lintermdiaire duquel un facteur peut tre obtenu. Cest galement une caractristique du logiciel sur laquelle le dveloppeur peut agir. (par exemple, sa simplicit) Une mtrique est la mesure dune proprit dun critre. (par exemple, la taille dun module pour le critre Simplicit).

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

11 / 57

Facteurs, Critres, Mtriques de Qualit (3/3)

Les 11 facteurs de qualit peuvent tre classs en 3 catgories: Les caractristiques oprationnelles (product operation) La capacit dvolution (product revision) Ladaptabilit (product transition)

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

12 / 57

Les Caractristiques Oprationnelles

conformit aux besoins: le produit fait-il ce que je souhaite? abilit: le fait-il correctement dans tous les cas? ecacit: utilise-t-il au mieux le matriel? intgrit: est-il protg contre les intrusions? a-t-il un niveau de scurit susant? facilit demploi: au niveau de lapprentissage, de la mise en oeuvre, de la prparation des donnes, de linterprtation des rsultats

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

13 / 57

La Capacit dEvolution (Product Revision)

maintenabilit: facilit avec laquelle on peut localiser et corriger les erreurs, souplesse: facilit de modication et dvolution (adaptation de nouveaux besoins), testabilit: eort requis pour le tester.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

14 / 57

LAdaptabilit (Product Transition)

portabilit: peut-on utiliser le logiciel sur une autre machine? rutilisabilit: peut-on rutiliser des parties du logiciel dans dautres applications, interoprabilit: facilit dinterfaage avec un autre systme.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

15 / 57

Inuence des facteurs de qualit les uns sur les autres

Ex. facteurs qui diminuent lecacit - intgrit (ncessit dintroduire des vrications) - maintenabilit (sacrice de lecacit pour la lisibilit) - portabilit (moindre ecacit des structures portables) - testabilit, exibilit, rutilisabilit, interoprabilit, ... Ex. facteurs qui diminuent lintgrit - exibilit, rutilisabilit, interoprabilit Existe-t-il une liaison de cause eet entre ergonomie et abilit ?

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

16 / 57

Inuence des facteurs de qualit les uns sur les autres

Ex. facteurs qui diminuent lecacit - intgrit (ncessit dintroduire des vrications) - maintenabilit (sacrice de lecacit pour la lisibilit) - portabilit (moindre ecacit des structures portables) - testabilit, exibilit, rutilisabilit, interoprabilit, ... Ex. facteurs qui diminuent lintgrit - exibilit, rutilisabilit, interoprabilit Existe-t-il une liaison de cause eet entre ergonomie et abilit ? Un logiciel non able ne peut tre rellement convivial : il causera des problmes dutilisation ses utilisateurs. Un logiciel ergonomique vitera les erreurs opratoires de lutilisateur et donc les dfauts de fonctionnement.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

17 / 57

Oprabilit Communicabilit Apprentissage Volume et taux dE/S Contrle daccs Consommation mmoire Vitesse dexcution Traabilit Compltude Prcision Cohrence Tolrance aux fautes Simplicit Modularit Concision Auto-description Instrumentation Gnralit Evolutivit Indpendance machine Indpendance systme Communications banalises Donnes banalises
Ssame (Ssame) Assurance Qualit Logicielle Janvier 2013 18 / 57

Critres de qualit (Caractristiques Internes)

Oprabilit Communicabilit Apprentissage Volume et taux dE/S Contrle daccs Consommation mmoire Vitesse dexcution Traabilit Compltude Prcision Cohrence Tolrance aux fautes Simplicit Modularit Concision Auto-description Instrumentation Gnralit Evolutivit Indpendance machine Indpendance systme Communications banalises Donnes banalises
Ssame (Ssame) Assurance Qualit Logicielle

Critres de qualit (Caractristiques Internes)

Facilit demploi Intgrit Efficacit Conformit

Fiabilit
Maintenabilit Testabilit Flexibilit Portabilit Rutilisabilit Interoprabilit

Janvier 2013

Facteurs de qualit (Caractristiques Externes)


19 / 57

Oprabilit Communicabilit Apprentissage Volume et taux dE/S Contrle daccs Consommation mmoire Vitesse dexcution Traabilit Compltude Prcision Cohrence Tolrance aux fautes Simplicit Modularit Concision Auto-description Instrumentation Gnralit Evolutivit Indpendance machine Indpendance systme Communications banalises Donnes banalises
Ssame (Ssame) Assurance Qualit Logicielle

Critres de qualit (Caractristiques Internes)

Facilit demploi Intgrit Efficacit Conformit

Fiabilit
Maintenabilit Testabilit Flexibilit Portabilit Rutilisabilit Interoprabilit

Janvier 2013

Facteurs de qualit (Caractristiques Externes)


20 / 57

Oprabilit Communicabilit Apprentissage Volume et taux dE/S Contrle daccs Consommation mmoire Vitesse dexcution Traabilit Compltude Prcision Cohrence Tolrance aux fautes Simplicit Modularit Concision Auto-description Instrumentation Gnralit Evolutivit Indpendance machine Indpendance systme Communications banalises Donnes banalises
Ssame (Ssame) Assurance Qualit Logicielle

Critres de qualit (Caractristiques Internes)

Facilit demploi Intgrit Efficacit Conformit

Fiabilit
Maintenabilit Testabilit Flexibilit Portabilit Rutilisabilit Interoprabilit

Janvier 2013

Facteurs de qualit (Caractristiques Externes)


21 / 57

Mtriques Associes aux Critres de Qualit

Mesure des caractristiques internes - mesures objectives: taille, complexite du t de controle, cohsion modulaire / couplage entre modules, ... Mesure des caractristiques externes - evaluations stochastiques (statistiques): dlai moyen de rponse une requte, nombre de requtes simultanes sans crouler un serveur, ... Ce sont des mesures a posteriori - arrivent parfois trop tard

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

22 / 57

Mtriques Associes aux Critres de Qualit Fiabilit :


mesures stochastiques : - temps moyen de rparation - temps moyen entre deux pannes - taux de disponibilit

Portabilit :
mesure objective : - nb dinstructions dpendant de la plate-forme cible

Facilit dutilisation :
mesures objectives : - nbr de paramtres ayant une valeur par dfaut (pertinente) - nbr dcrans daide mesures stochastiques : - nb de fausses manipulations par jour - nb de jours dapprentissage - temps de lecture / interprtation des rsultats achs
Ssame (Ssame) Assurance Qualit Logicielle Janvier 2013 23 / 57

Assurance Qualit

Un grand nombre de mtriques dicile de les connatre toutes, et souvent discutables (vision partielle/articielle du problme) Limportant, cest la dmarche : dnir un plan qualit adapt au contexte dtailler une mesure des dirents critres sinterroger sur la validit des mtriques (pertinence) Problme des mesures a posteriori trop tard, mais forge lexprience

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

24 / 57

Assurance Qualit

Daprs IEEE Un modle plani et systmatique de toutes les actions ncessaires pour fournir une conance adquate quun article ou un produit est conforme ses exigences techniques tablies. Un ensemble dactivits conu pour valuer le processus par lequel les produits sont dvelopps ou fabriqus. A contraster avec: le contrle de qualit.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

25 / 57

Assurance Qualit

Daprs IEEE Un modle plani et systmatique de toutes les actions ncessaires pour fournir une conance adquate quun article ou un produit est conforme ses exigences techniques tablies. Un ensemble dactivits conu pour valuer le processus par lequel les produits sont dvelopps ou fabriqus. A contraster avec: le contrle de qualit.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

26 / 57

Assurance et Contrle Qualit

Assurance Qualit: Mise en oeuvre dune approche prventive de la qualit. LAQ consiste en un ensemble dactions de prvention des dfauts qui accompagnent le process de dveloppement des artefacts logiciels. Contrle Qualit: Mise en oeuvre dune approche curative de la qualit. Le CQ suppose que bien que le process de production est satisfaisant, il prsente des dysfonctionnements dont les eets doivent tre limins.

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

27 / 57

Plan Assurance Qualit

La planication de la qualit doit commencer trs tt dand le processus de dveloppement. Le Plan Qualit doit dtermnier les qualits du produit auxquelles on attache de limportance, - Savoir ce que vous faites Le Plan Qualit doit dterminer les standards appropris au produit et au processus de dveloppement de ce produit. - Savoir ce que vous devriez faire Le Plan doit aussi dnir le processus destimation de la qualit, - Savoir mesurer la dirence

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

28 / 57

Plan Assurance qualit Plan Assurance Qualit (PAQ) : Dispositions spciques un projet, un service, un contrat ayant pour objectifs : Le PAQ, dans sa version valide par les deux parties, constitue un engagement mutuel entre matrise douvrage et matrise doeuvre. Il dcrit le niveau de service requis. Il dcrit lensemble des dispositions spciques dassurance, de contrle et de suivi qualit prises par la matrise doeuvre pour obtenir 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 des prestations objet du contrat, ainsi que sur les produits fournis et les engagements. Il permet galement de bien dnir le rle de chacun des intervenants des deux parties, matrise douvrage et matrise doeuvre ? Il sert de document de rfrence.
Ssame (Ssame) Assurance Qualit Logicielle Janvier 2013 29 / 57

Moyens de lAssurance Qualit

Mthodes statiques a priori (sans executer le logiciel) - examen critique de documents et de code - analyse automatique (ou assiste) de code / spcication . analyse statique de programme . vrication de modle (model checking) . outils de preuves formelles Mthodes dynamiques a posteriori (en executant le logiciel) - tests - instrumentation de code

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

30 / 57

Examen Critique de Documents et de Code

Avoir un point de vue dirent de lauteur - quelquun dautre Avoir dirents points de vue - comptences multiples Avoir des points de vue objectifs - participants hors de lquipe de dveloppement Critiquer les aspects techniques, pas lauteur (!) Juger la forme : format, structure, satisfaction des normes du plan qualit... Juger le fond :
prcision, non-ambiguit, compltude, cohrence (pas de reference imprecise ou inexistante) conformit par rapport aux documents amont, au plan projet

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

31 / 57

Examen Critique de Documents et de Code

Cahier des charges 5-10 pages/h Spcications fonctionnelles 10 pages/h Conception globale 5-15 pages/h Conception dtaille 10 pages/h Code 20-50 lignes/h

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

32 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

33 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

34 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

35 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

36 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

37 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

38 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

39 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

40 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

41 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

42 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

43 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

44 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

45 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

46 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

47 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

48 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

49 / 57

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

50 / 57

Dfauts Typiques Examiner

Rfrence aux donnes : variables non initialises - savoir si le langage initialise par dfaut et quand - dans les cas douteux, initialiser explicitement indices de tableaux hors bornes - principale source des failles de scurit (!) accs des structures/records champs variables ou des unions

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

51 / 57

Dfauts Typiques Examiner

Rfrence aux donnes : confusion entre donne et pointeur vers la donne drfrence de pointeurs nuls pointeurs sur des donnes dsalloues ou pas encore alloues pointeurs sur des donnes devenues inutiles mais non libres

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

52 / 57

Dfauts Typiques Examiner

Calculs : conversions de type (implicites et explicites) underow/overow (dpassement de capacit du type) division par zro prcdence des oprateurs - dans le doute (pour la lisibilit), toujours parenthser

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

53 / 57

Dfauts Typiques Examiner

Comparaisons : incohrence des types - mlanges dentiers et de booleens inclusion ou non des bornes incorrecte - < au lieu de <=, >= au lieu de >, ... inversion du test - == au lieu de !=, > au lieu de <, ... confusion en egalite (==) et aectation (=) - if (x = y) ... au lieu de if (x == y) ...

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

54 / 57

Dfauts Typiques Examiner

Comparaisons : confusion entre operateurs binaires (bits) et logiques - et (&, &&, and), ou (|, ||, or) negation incorrecte dune condition logique !(x ==1 && (y < 2 || !z)) equiv. x !=1 || (y >= 2 && z) prcdence des oprateurs booleens x || y && z equiv. x || (y && z)

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

55 / 57

Dfauts Typiques Examiner

Contrle : ensemble de case incomplet cas default manquant break 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. */

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

56 / 57

Dfauts Typiques Examiner

Contrle : terminaison du programme - boucles et rcursions sans n boucles - conditions initiales (indices, ...) incorrectes - itrations en plus ou en moins - incohrences aprs une sortie de boucle anticipe - incohrences aprs une sortie de boucles emboites procdures et fonctions - incohrences aprs une sortie anticipe exceptions non rattrapes

Ssame (Ssame)

Assurance Qualit Logicielle

Janvier 2013

57 / 57