Vous êtes sur la page 1sur 5

Plan du cours TQL

1. Qualité de logiciel
2. Introduction aux tests logiciels
3. Tests structurels

1. Qualité du logiciel

1- Introduction

A la fin des années soixante, est apparue ce que l’on a appelé la crise du logiciel.
Alors que les ordinateurs devenaient de plus en plus puissants et de moins en
coûteux, la construction de logiciels restait dans le domaine de l’artisanat.
• La construction de logiciels coûtait très chère.
• Les délais n’étaient pas respectés.
• Les logiciels n’étaient pas évolutifs (parfois écrits en assembleur pour un
type de machine, ce qui les rendait rapidement obsolètes).
• Les performances étaient très souvent médiocres (temps de réponse trop
lents).
• Les logiciels n’étaient pas très fiables.
• Une convivialité discutable (des interfaces homme / machine inexistantes).

Cet ensemble de problèmes a conduit à l’idée que des approches de construction de


logiciels étaient la solution.

2- Qualité logiciel
« Il n'y a pas de bons et de mauvais projets. Il y a des projets qui aboutissent et
d'autres pas. »

La qualité logicielle est définit comme un ensemble de règles et de principes à


suivre au cours du développement d’une application afin de concevoir un logiciel
répondant à ces attentes.

La norme ISO 9126 définit six groupes d'indicateurs de qualité des logiciels :
• la capacité fonctionnelle. c'est-à-dire la capacité qu'ont les fonctionnalités
d'un logiciel à répondre aux exigences et besoins explicites ou implicites des
usagers. En font partie la précision, l'interopérabilité, la conformité aux
normes et la sécurité ;
• la facilité d'utilisation, qui porte sur l'effort nécessaire pour apprendre à
manipuler le logiciel. En font partie la facilité de compréhension,
d'apprentissage et d'exploitation et la robustesse - une utilisation incorrecte
n'entraîne pas de dysfonctionnement ;
• la fiabilité, c'est-à-dire la capacité d'un logiciel de rendre des résultats
corrects quelles que soient les conditions d'exploitation. En font partie la
tolérance aux pannes - la capacité d'un logiciel de fonctionner même en étant
handicapé par la panne d'un composant (logiciel ou matériel) ;
• la performance, c'est-à-dire le rapport entre la quantité de ressources
utilisées (moyens matériels, temps, personnel), et la quantité de résultats
délivrés. En font partie le temps de réponse, le débit et l'extensibilité -
capacité à maintenir la performance même en cas d'utilisation intensive ;
• la maintenabilité, qui mesure l'effort nécessaire à corriger ou transformer le
logiciel. En font partie l'extensibilité, c'est-à-dire le peu d'effort nécessaire
pour y ajouter de nouvelles fonctions ;
• la portabilité, c'est-à-dire l'aptitude d'un logiciel de fonctionner dans un
environnement matériel ou logiciel différent de son environnement initial.
En font partie la facilité d'installation et de configuration dans le nouvel
environnement.

2.1 Démarche qualité

La démarche qualité peut se définir comme l’engagement du producteur envers le


consommateur) lui garantissant la fiabilité du produit (le service) par la mise en
œuvre de procédures validées.

Une "démarche qualité" est mis en œuvre d’un projet pour maîtriser, assurer,
planifier la qualité et/ou améliorer les produits et services, les processus, les
procédés de production, la satisfaction client. Elle prend en compte :
- La qualité du processus de développement du logiciel (coûts, délais, méthodes,
organisation, personnel, techniques, outils),
- La qualité intrinsèque du logiciel (modularité, simplicité, ...) :
- La qualité du service fourni par le logiciel en exploitation.
-
2.2 Assurance qualité
L’expression «"assurance-qualité"» vise les stratégies, les procédures, les actions et
les attitudes nécessaires pour garantir un maintien et une amélioration de la qualité.
(David Woodhouse, OCDE, 1999).

Assurance Qualité est un ensemble de dispositions qui vont être prises tout au long
des différentes phases de fabrication d’un logiciel pour accroître les chances
d’obtenir un logiciel qui corresponde à ses objectifs (son cahier des charges).
Exemple : décrit un système d’assurance qualité pour un logiciel qui permet de
résoudre une équation de 2 degré.
Le but de projet : résoudre une équation de 2nd degré,
L’organisation : définir la structuration de projet et fixé les responsabilités,
Les documents : décrit les documents qui seront produit au cours de ce projet
Les standard : les méthodes à utilisés les normes et les procédures à suivre
La qualité : définir les moyens qui ont mise en place pour mesurer la qualité de
logiciel (métrologie de logiciel)
Validation et test
Suivie des problèmes : les demandes d’actions correctives.

2.3 Métrologie du logiciel

Métrologie (Science de la Mesure) : La métrologie du logiciel est Processus formel de


collecte d’informations pour mesurer (évaluer) la qualité du logiciel.

Le Modèle de McCall:
• Facteurs Critères Métriques (FCM).
• Identifie cinquante facteurs dont onze principaux sont sélectionnés (
représentant une vision externe globale de la qualité).
• Ces facteurs sont caractérisés par vingt-trois critères qui représentent la
vision interne de la qualité : le point de vue du programmeur.

Bien que complet, ce modèle est difficile à mettre en œuvre du fait des 300
métriques qui le composent
Elle a pour objet :
- de définir un ensemble de caractéristiques mesurables du logiciel,
- de définir des méthodes d'évaluation,
- de définir des outils d'évaluation (analyseurs, jeux de tests….).

La pyramide du modèle Squale.


Définit par trois niveaux allant du plus général (les caractéristiques) au plus détaillé
(les mesures).
• Les caractéristiques de Squale ont été déterminées à partir d’un modèle générique
du cycle de vie d’un logiciel.
• Elles sont représentées selon un modèle en couche qui implique que chaque
caractéristique doit être validée pour passer à la suivante.

Exemple
La norme ISO 9126 : définit la sous-caractéritique, facilité de modification comme
"la capacité d’un logiciel à intégrer de nouvelles implémentations". Pour mesurer
cette propriété, les métriques telles que le nombre de lignes de code (SLOC), la
complexité cyclomatique, le nombre de méthodes par classe, la profondeur
d’héritage (DIT) [LK94,FP96,Mar97,BDW98] sont combinées de manière à
déterminer à partir de toutes ces mesures une seule et unique note pour cette
caractéristique.

2.3 Facteur
Un facteur représente le niveau le plus élevé du modèle de qualité. Chaque facteur
donne une vue globale de la qualité du projet pour un secteur précis (capacité
fonctionnelle ou fiabilité par exemple) et reflète les exigences attendues par les clients.

Les facteurs agrègent les critères. La note d’un facteur correspond à la moyenne simple
des notes des critères qu’il agrège.
Le facteur possède les propriétés suivantes :
- orienté utilisateur : être relié à un coût par l'intermédiaire des activités qu'il
engendre
- maintenabilité : effort pour localiser et corriger une anomalie

Exemple
Les six facteurs utilisés dans l’instance du modèle Squale déployée chez PSA
PeugeotCitroen et Air France-KLM sont inspirés des facteurs de la norme ISO 9126
mais redéfinis pour correspondre aux exigences et aux attentes de ces entreprises. Par
exemple, les critères suivants : • Compréhension •Homogénéité • Capacité d’intégration
• Simplicité.
3 Mesure de qualité globale
3.1 Critère qualité
Un principe de la qualité d’une application (sécurité, simplicité, ou modularité par
exemple)
Il s’adresse aux managers et leur propose une vue détaillée de la qualité du logiciel,
sans toutefois être technique.

Un critère agrège un certain nombre de pratiques. La note d’un critère correspond à une
moyenne simple des pratiques qui la composent. Actuellement le modèle Squale est
composé d’une quinzaine de critères.

Exemple: les métriques suivantes :


• Profondeur d’héritage,
• Standards de documentation (respect des conventions de documentation),
• Qualité de la Documentation (audit manuel qui qualifie la documentation en respect
avec les exigences du projet),
• Spécialisation de la Classe, Taux de commentaires du code source (par méthode …)
définissent le critère Compréhension

3.2 Facteur de qualité : aptitude du logiciel à


- Adaptabilité : minimiser l'effort nécessaire pour le modifier par suite d'évolution
des spécifications Conformité : contenir un minimum d'erreurs, à satisfaire aux
spécifications et à remplir ses missions dans les situations opérationnelles
définies.
- Efficacité : se limiter à l'utilisation des ressources strictement nécessaires à
l'accomplissement de ses fonctions.
- Maintenabilité : minimiser l’effort pour localiser et corriger les fautes.
- Maniabilité : minimiser l'effort nécessaire pour l'apprentissage, la mise en œuvre
des entrées et l'exploitation des sorties.
- Réutilisabilité : être partiellement ou totalement utilisé dans une autre
application.
- Sécurité : surveiller, recenser, protéger et contrôler les accès au code et aux
données ou fichiers.
- Robustesse : accomplir sans défaillance l'ensemble des fonctionnalités
spécifiées, dans un environnement opérationnel de référence et pour une durée
d'utilisation donnée.
- Testabilité : faciliter les procédures de test permettant de s'assurer de
l'adéquation des fonctionnalités Interopérabilité : s'interconnecter à d'autres
systèmes.
- Portabilité : minimiser l’effort pour se faire transporter dans un autre
environnement matériel et/ou logiciel.
4. Tests et assurance qualité
Plusieurs méthodes et outils permettent d’effectuer des mesures sur la qualité :
• d’un logiciel,
• de son processus de développement
• ou du service rendu.
Les principales méthodes sont :
• les audits ; les essais.
Les principaux outils sont : des outils de scrutation de programmes ou de réseaux.
Pour détecter les défauts, on peut faire:
• des analyses statiques :
• relecture de code,
• examen de la documentation (audits, inspection, revues)
• ou des analyses dynamiques :
• tests et essais des programmes.
• Le principe est de disposer d’un outil permettant une évaluation quantifiée.

5. Conséquences de la non qualité


Quelle sont les conséquences de la non qualité ?

Vous aimerez peut-être aussi