Fautes, erreurs et défaillances

Transcription

Fautes, erreurs et défaillances
Fautes, erreurs et défaillances
Luc Trudeau
L’ÉTS est une constituante du réseau
de l'Université du Québec
Département de génie logiciel
et des technologies de
l’information
Montréal, Québec, Canada
Faute, erreur et défaillance
Objectifs d’apprentissage
L Trudeau
•  Distinguer les concepts de faute, d’erreur et
de défaillance
•  Comprendre la notion d’enchainement entre
la défaillance et la faute.
2
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
L Trudeau
Une faute peut provoquer une erreur,
qui peut provoquer une défaillance
3
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
L Trudeau
Faute vs erreur
•  Une faute ne produit pas
toujours une erreur
•  L’erreur est la
manifestation de la faute
dans le système
à Dans cet exemple:
§  Faute – mauvaise configuration des rails
§  Erreur – le chauffeur du train constate le
problème et signale une alarme
§  Défaillance – les passagers du train
n’arrivent pas à leur destination (ou pire,
sont blessés ou sont morts!)
4
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
Source d’une faute de logiciel
L Trudeau
•  Problème algorithmique
à Exemples:
§ 
§ 
§ 
§ 
§ 
à
On a oublié d’initialiser une référence, une variable
On a fait un test dans un « if » sur la mauvaise
condition (‘>’ plutôt que ‘<’)
On appelle une méthode avec la mauvaise instance
d’une classe.
On a utilisé l’assignation (=) plutôt que la
comparaison (==)
etc.
Note: si on n’exécute jamais le code où se trouve la
faute algorithmique, elle ne se manifestera jamais. Il
s’agit d’une faute latente.
5
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
Source d’une faute de logiciel (2)
L Trudeau
•  Problème environnemental
à Exemples:
§ 
§ 
§ 
§ 
§ 
§ 
§ 
§ 
§ 
Absence de mémoire vive (sur le tas (heap))
Stack overflow (plus de mémoire sur la pile)
Division par zéro (une valeur rentrée par un usager de l’extérieur)
Panne d’un sous-système (base de données, système
d’authentification, etc.)
Panne de réseau – signal électrique changé par du bruit
Panne d’électricité
Radiation, champs magnétiques, températures extrêmes qui
changent les bits dans la mémoire !!!
Hacker qui a soumis une requête avec trop d’informations (buffer
overflow) afin de pirater un système.
etc.
6
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
Petit exercice sur ces notions
L Trudeau
Exemples de fautes ?
§  en c, une chaine de caractères sans \0 à la fin
§  un nom de fichier mal orthographié
§  une référence à null
Exemples d’erreurs ?
§  null pointer exception
§  fichier ne peut être ouvert
§  Donnée corrompue dans un buffer (CRC error)
Exemples de défaillances ?
§  Ne peut imprimer/sauvegarder/charger votre document
7
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
Enchainement / Point de vue
L Trudeau
•  Une faute peut provoquer une erreur, qui peut provoquer
une défaillance
•  Vue d’un niveau plus haut, la défaillance peut être aperçue
comme une faute
faute à erreur à défaillance
service
faute à erreur à défaillance
8
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
L Trudeau
Exemple sur l’enchainement / Point de vue
• 
Les rails défectueux et le train:
§ 
§ 
• 
Notion de service
§ 
§ 
§ 
• 
Supposons que l’un des passagers est un chirurgien qui est en route pour faire une opération
critique sur un patient
Si le train est retardé trop, le chirurgien n’arrivera pas à temps pour sauver le patient. L’absence du
chirurgien est vue comme une faute sur un autre niveau. Si on ne trouve pas d’autre chirurgien pour
faire l’opération, le patient pourrait mourir.
le train fournit un service au passager (le chirurgien)
le chirurgien fournit un service au patient
Le sens d’une faute/erreur/défaillance est limité au contexte défini par le service.
Tout service peut échouer et le résultat:
§ 
§ 
Est une défaillance (du point de vue « fournisseur » du service)
Est une faute (du point de vue « client » du service)
9
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
Propagation / Compensation
L Trudeau
•  Propagation:
§  La faute se propage d’un composant à un autre
•  Compensation:
§  Une faute dans un module est compensée
accidentellement par une autre faute dans un autre
module (ou dans le module lui-même)
10
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
•  En matériel
L Trudeau
Source d’une faute?
§  Câblage, équipements de télécommunications
§  Usure du matériel (alimentation, disque dur, mémoire, etc.)
•  En logiciel
§  Jamais à cause de l’usure!
§  Défaut de codage (être humain)
§  Défaut de conception (être humain)
§  Défaut de spécification (être humain)
11
Département de génie logiciel et des technologies de l’informa5on Faute, erreur et défaillance
Cout pour corriger une faute
L Trudeau
Plus tôt une faute est détectée (et corrigée),
moins cher ça coute…
(Voir Technical debt
http://en.wikipedia.org/wiki/Technical_debt)
12
Département de génie logiciel et des technologies de l’informa5on