Académique Documents
Professionnel Documents
Culture Documents
ET LA VALIDATION
Développement piloté par
les tests – Coût des tests et
qualité FURPSE
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 1
Introduction :
Le problème fondamental du génie
logiciel : le problème de l'erreur
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 2
1
Le problème de l'erreur
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 3
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 4
2
Données statistiques
• Sources :
Classification et fréquence (Source B. Beizer, 1990)
Microsoft (étude M. Cusumano, R. Selby)
Productivité (B. Boehm)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 5
Statistique B.Beizer
Statistique portant sur 6.877 millions de LS (avec des commentaires)
Nombre de défaillances découvertes en exploitation : 16 209
Taux d’erreurs : 2.36 Err/KLS
3
Microsoft
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 7
Statistique B.Boehm
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 8
4
Terminologie
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 9
ACTION
ACTION DANS
DANSLE
LE DANS
DANSLE
LE DE
DELA
LA
HUMAINE
HUMAINE LOGICIEL
LOGICIEL PRODUIT
PRODUIT FONCTION
FONCTION
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 10
5
La chaîne de l’erreur (2/3)
Erreurs humaines
BESOIN
BESOIN INSTALLATION
Introduction des
CONCEPTION INSTALLATION EXPLOITATION
CONCEPTION
PROGRAMMATION
MAINTENANCE
MAINTENANCE
EXPLOITATION défauts dans les
PROGRAMMATION
différentes phases
du cycle
Manifestation Éventualité
Défaut dans le
Erreur humaine d’une d’une panne
logiciel
défaillance ± grave
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 11
Période de très
grand danger pour
Période d'introduction de
Période d'observation
l’intégrité du
défauts d'installation Période d'introduction de
(Actions erronées de défauts d'exploitation
de la défaillance système
l'administrateur) (Actions erronées de l'usager)
Temps de latence
TFin
T0 TDébut T1 T2
nominal
Fault Failure
Installation Démarrage du (exécution du défaut) (constatation de la
du logiciel logiciel défaillance)
(début de session) → Arrêt du logiciel
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 12
6
VALIDATION VÉRIFICATION &
TESTS
Terminologie
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 13
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 14
7
Quelques définitions (2/4)
8
Quelques définitions (4/4)
Tests et systèmes
• Un système
Est constitué d’éléments / composants échangeant de
l’information par des interfaces (cf. découpage
architectural)
Est exécutable à partir de stimuli / données provenant de
l’environnement
• Test d’un système
SYSTEME
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 18
9
Activité de tests
• UN TEST IMPLIQUE UNE EXECUTION SUR
MACHINE
Du système ou d’un composant du système (nœud/feuille de l’arbre produit)
C’est un protocole expérimental au sens fort du terme
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 19
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 20
10
Idées fausses sur les tests (1/2)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 21
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 22
11
Juste un exemple
232
+
232
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 23
• Tests unitaires
On teste chaque fonction de chaque module (tests « boîte
blanche » sur les instructions)
• Tests d’intégration
On teste les interfaces entre modules (tests « boîte blanche » sur
les interfaces, tests « boîte noire » sur les instructions)
• Tests de validation
On teste les fonctionnalités du logiciel (tests « boîte noire »)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 24
12
Positionnement des types de tests
C o n c e p ti o n C o n c e p ti o n
d é ta illé e d u m o d u le p ré li m i n a i r e
T e sts
u n itaire s
M o d ule
te s té
C o n c e p tio n
d é ta illé e d u m o d u l e
T e s ts T e sts
u n ita ire s M o d ule d 'i n t é g r a t i o n
te s té
•
•
• M o d ule
C o n c e p tio n te s té L o g ic ie l
d é ta illé e d u m o d u l e as se m b lé
T e s ts
u n ita ire s
S p é c if ic a tio n s
f o n c tio n n e lle s T e s ts de
v a li d a tio n
S p é c if ic a tio n s
L o g ic ie l
s y s tè m e
v ali dé
A u t re s é lé m e n ts
s y s tè m e T e s ts S y s tè m e o p é r a ti o n n e l
s y s tè m e
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 25
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 26
13
Nature de l'information utilisée pour les tests
x1 y1
x2
y2
x3
•••
•••
yn
xm
Granularité de la description
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 27
Espace générateur : Eg
• CERTAINS CHEMINS convenablement sélectionnés
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 28
14
Construction de l'ensemble générateur
• Critères de construction
Différents niveaux de couvertures selon la fréquence
d'emploi et/ou la criticité de l'élément
Conditions de «bord» (i.e. contraintes) sur les données
des domaines d'entrées et/ou de sorties
Notion de contraintes pertinentes permettant de
déterminer l'ensemble des données qui sont au
voisinage du bord
Conditions d'observation du comportement de l'élément
Résultats intermédiaires intéressants
Consommation des ressources critiques (temps,
mémoire, I/O,…)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 29
Environnement
m Paramètres n Résultats
en entrée
x1 y1
x2 Élément ou y2
x3 Composant à •••
••• Tester yn
xm
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 30
15
Aperçu sur la combinatoire (2/2)
Entrées Résultats
Tests de robustesse
+
+
*
Tests
fonctionnels
*
+ *
*
+
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 32
16
Le cycle système et le cycle de
développement
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 33
Prototype
Expérimentation Compatibilité ascendante des
versions successives
Version N°1 Exploitation
Réalisation de Réalisation de
maquettes prototypes Version N°2 Exploitation
Dominante MCO
Validation fonctionnelle et
comportements exigés en
termes métier de la cible Dominante développement
Projet de migration
Vérification de la bonne prise en compte des règles éventuelle
architecturales au sein des projets (Revues + Inspections)
Grande variété de types de projets selon la nature des activités et « l’age » du système
Durée d’un cycle : > 15-20 ans, mais > 30 pour les grands systèmes technologiques
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 34
17
Détail du cycle de développement (1/3)
RETOUR D’EXPÉRIENCE
Conception Qualification
Axe d’évolution
Documents contractuels : Développement Qualification
• Spécifications techniques de
Intégration
besoin et exigences (fonctionnel
et non fonctionnel, en particulier
contrat de service pour les
Fournitures contractuelles :
usagers en terme d’exigences)
• Kit d’installation, paramétrage Déploiement,
et règle de calibrage, doc pour le Déploiement,
support
supportetetMCO
MCO
support, doc utilisateur, etc.
• Garantie Assurance Qualité et
contrat de service
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 35
• Défauts propagés
EB/EC
Conception • Défauts ajoutés
générale • Défauts détectés
CG
Conception
détaillée
Implémentation
CD Programmation et • Taux d’erreurs résiduelles
tests unitaires acceptable par l’AQ
P/TU Intégration
Processus de conception (VV&T) Mesure de la maturité (i.e. contrat
Recette
de service) en exploitation
Assurance qualité et activités transverses AQ
Nombre de RA/AC
VVT
Exploitation et
support Durée
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 36
18
Détail du cycle de développement (3/3)
Système qualité - Assurance qualité
CG CPTU, DPTU
CAQ/CG
CD Nombre de RA/AC
CVVT, DVVT
CAQ/CD
P/TU
CAQ/PTU Courbe de maturité
VVT
Déléguer
CAQ/VVT Contrôler
AQ globale centralisée Effort Mesurer
Agir
CC
AQ ==CC
AQ/GC ++CC
AQ/CG ++CC
AQ/CD ++CC
AQ/PTU ++CC
AQ/VVT
AQ AQ/GC AQ/CG AQ/CD AQ/PTU AQ/VVT
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 37
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 38
19
Des définitions complémentaires (2/2)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 39
• Modules
• Intégration
Résultats des phases
Pour toutes les phases : collecte des Rapports d’Anomalies (RA) et des Actions Correctrices (AC) ; traçabilité
Cf. ANSI/IEEE Std 1012 Software verification and validation plans ; Std 1059 Guide VVT
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 40
20
Les erreurs humaines et les
sources des défauts logiciel
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 41
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 42
21
Erreurs humaines - Psychologie de la
programmation
Les défaillances du processus psychocognitif
D1 Erreur de perception, manque de discrimination, distinction fond/forme et/ou sémantique/syntaxe
D2 Erreur de codage/décodage
D3 Erreur de représentation et/ou symbologie non adaptée (interopérabilité entre systèmes)
D4 Représentation, compréhension et interprétation erronées de phénomènes dynamiques et/ou combinatoires (plusieurs
flots d’exécution en parallèle qui interfèrent, perception du temps vrai versus temps psychologique, synchronisation) ;
modèle mental erroné du phénomène.
D5 Impasse, non-exhaustivité, oubli pur et simple
D6 Illusions (dans notre cas ce sont surtout les paradoxes de type logique ; non prédicativité)
D7 Acceptation comme vraie d’une hypothèse fausse
D8 Acceptation comme fausse d’une hypothèse vraie
D9 Attribution de propriétés inutiles et/ou erronées
D10 Hypothèse superflue et/ou non appropriée (Exp. : tel événement se produit rarement alors qu’il est fréquent)
D11 Erreur de communication homme - homme, de traduction lors d'un changement de code (contre sens, faux sens, etc.)
D12 Non respect d'une procédure ou d'une règle
D13 Non prise de décision en temps voulu (logiques temporelles)
D14 Action non adaptée au contexte, action contradictoire et/ou antinomique vis à vis d’autres actions
D15 Itération, répétition inutile d’une action (i.e. propriété d’idempotence des actions)
D16 Absence d’information qui entraîne une action par défaut non adaptée (non perception d’un manque ou d’une absence
de quelque chose)
D17 Erreur de raisonnement, raisonnement circulaire
D18 Défaut ou excès de généralité, abstraction mal construite, définition ambiguë (non prédicative)
D19 Confusion langage / métalangage, concept / méta-concept (mélange de types au sens logique, ou équations de
dimensions incohérentes en physique)
D20 Saturation de la bande passante (Exp. : trop de décisions simultanées, interruptions continuelles)
D21 Saturation de la mémoire de travail
D22 Analogies, associations erronées et/ou non adaptées au contexte
D23 Confusion/Interférence proactive et/ou rétroactive
D24 Changement de tâche fréquent, « papillonnage » , toute perturbation qui augmente la probabilité de confusion et
d’interférence
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 43
• Réduction du nombre
Tests de couverture et de de défauts au minimum
contrôle acceptable selon le
Tests fonctionnel à partir contrat de service
des données
• 80 à 100 défauts
par KLS Tests de performance
Tests de pré-intégration
• 5 à 10 défauts
par KLS
INTÉGRATION
Si la stratégie de VVT est correctement conduite
• 1 à 2 défauts
par KLS
Installation
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 44
22
Espace méthodologique et
maturité de l’activité VVT
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 45
• Adéquation des Capacité et facilité • Maturité • Temps de réponse Capacité et facilité Capacité et facilité
fonctions de : • Tolérance aux et comportement de : de :
• Précision et • Compréhension pannes dynamique • Analyse des • Adaptation et
fidélité des • Apprentissage • Remise en état de • Utilisation des défaillances évolution
résultats • Exploitation marche ressources • Modification • Installation des
• Interopérabilité • Ergonomie IHM (mémoire, débit en • Stabilité modifications
• Sécurité du point de vue transactionnel, etc.) (confinement des • Remplacement
+ métier défaillances) • Cohabitation
• Conformité aux • Test
exigences (automaticité, non
fonctionnelles régression, etc.)
+ Conformité aux exigences non fonctionnelles (écart mesuré entre le besoin et ce qui est réalisé)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 46
23
Espace méthodologique VV&T
Optimiser
Optimiser Régulation du processus sur les objectifs
stratégiques de l’entreprise :
• Prévention des défauts
• Intégration des NTI ( architecture ouverte et
testable) dans la stratégie
Piloter
Piloter
• Optimisation CQFD
« laissez faire »
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 48
24
Les acteurs de la VV&T
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 49
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 50
25
Stratégie coopérative MOA – MOE
Nécessité de mise en cohérence des systèmes qualité MOA ET MOE
Organisation Organisation
cible Pilote stratégique cible
MOA
Pilote
Pilote
Pilote
Intégration/
EB/EC Suivi fournisseur Recette
Système qualité MOA
Pilote
Pilote
MOEMOE
Développement
Développement
Système qualité MOE
Système qualité MOE
Méthodes agiles
cycle de vie XP
Software factory
Cas
d’emplois Exploration
Nominale « mort »
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 52
26
Schéma de communication entre les
acteurs SCRUM / XP
Management
SCRUM Master
Product Owner Équipe
Coach/Tracker XP
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 53
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 54
27
Stratégie de tests
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 55
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 56
28
Caractéristiques de l’activité de test
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 57
Le processus de test
Objectif du test
Spécification du programme
et/ou des interfaces à tester
Spécification du test
Résultats et comportements
Chargement du programme Scénario du test attendus
et de son environnement
Résolution du problème
Exécution du test
Analyse inductive
(on vérifie une hypothèse à
Résultats et comportements partir des résultats obtenus)
observés
Diagnostic
Analyse déductive
Comparaison Analyse des résultats (on recherche les causes
Exploitation dans le programme et/ou les
interfaces)
Résultat Résultat Modifications Diagnostic
Correct Incorrect induites
Archivage du test et
Dans le test Dans le programme Gestion des configurations
des résultats
Sources +Tests + Documentation
État d’avancement des Modifs Modifs
N scénarios de tests
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 58
29
Objectif de l’effort de tests
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 59
30
La perception de l’usager
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 61
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 62
31
Équation générale de l’effort
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 63
F
D = (0,5 ± 0,04) × (Een HA ) 0,3±ε
D Rendement de l’effort VVT exprimé en termes de :
• Taux de défauts résiduels
• Disponibilité de l’application ou du système
32
Stratégie de test : les moyens (2/2)
• Architecture testable
Créer les conditions d’observation des états du
système que l’on saura interpréter et reproduire pour améliorer le
diagnostic
• Évaluation des caractéristiques non
fonctionnelles (i.e. réduire le facteur d’incertitude)
Exemples : Déterminer les performances et la fiabilité véritablement
souhaitables ; Valider l’ergonomie avec les usagers REELS ; etc.
• Équilibrage entre :
Techniques AQ : revues, inspections, audits,
Tests Boîte Noire et tests Boîte Blanche
Tests de robustesse et tests d’innocuité/sûreté
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 65
Objectifs de
Équilibrage de l’effort de test
test
Axe de progression de l’intégration
en minimisant les retours arrière
Programmeur
Programmeurindividuel
individuel Test boîte
Tests
Testsunitaires
unitaires blanche
×α1
Équipe
Équipeprojet
projet
×α3 Intégration
Intégrationprojet
projet
Zone grise
×α2
Équipe
Équipesystème
système Test boîte
Intégration
Intégrationsystème
système noire
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 66
33
Maturité de développement d’un système
Défauts résiduels
Fin de Effort
projet
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 67
Techniques de TEST
(Détection des défauts coûteuse)
PERTE
Temps / Effort
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 68
34
La détection précoce des défauts
Injection de
Découverte
défauts
tardive des
consécutive aux
défauts de A par
erreurs des
les acteurs de B
acteurs de A
Processus A Processus B
Livrables de
A pour B
• •
•
Défauts corrigés à l’aide
• de tests
• • Coût élevé
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 70
35
Efficacité des revues et inspections (2/2)
• •
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 71
Nbre de RA-AC
Profil N°3
Profil N°1
Défauts résiduels
Profil N°2
Effort VVT
En relatif, ces profils sont
indiscernables, mais les taux
d ’erreurs résiduelles sont
très différents
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 72
36
Principes de la VVT
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 73
• Principe N°2
Tester correctement un logiciel est une tâche difficile qui
requiert intelligence et créativité
Choix de stratégies, critères d’arrêt + Connaissance indispensable du contexte
d’emploi réel
Pièges :
croire que c’est simple et facile par rapport à la programmation jugée plus « noble »
croire que cela n’exige ni expérience, ni savoir-faire, ni méthodes et qu’il est inutile de
planifier cette activité
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 74
37
Quelques principes VV&T (2/3)
• Principe N°3
L’essence de l’activité de test est la prévention
Elle s’applique à toutes les phases du cycle
Il est futile de concevoir ce que l’on ne saura pas tester
Concept de testabilité à tous les niveaux
• Principe N°4
Le volume et la nature des tests à effectuer (i.e. l’effort VVT en
terme de CQFD) doit s’apprécier en terme de risques que
l’emploi du logiciel fait courir à l’organisation cible
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 75
• Principe N°6
L’évaluation honnête de la qualité exige la présence d’un tiers de
confiance (AQ logiciel) indépendant du développement
Piège : croire que le développement est seul juge
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 76
38
VV&T et QUALITÉ
• Qualité
Conformité aux exigences du contrat de service défini
par l’organisation cible
La qualité est une notion relative (Appréciation du risque
→ Notion de qualité de service QoS)
• VVT
Le but des tests est de rendre la qualité « visible »
Le ratio de l’effort de VVT est un indicateur de la qualité
du logiciel Effort de test Effort de test
r= Efficacité =
Effort total Nbre de défauts découverts
Nbre de défauts découverts
Densité =
Nbre de lignes source ( KLS )
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 77
Maturité
NIVEAU 1 : mise au point et tests ne sont pas
différenciés.
NIVEAU 2 : le but des tests est de montrer que
le système fonctionne.
NIVEAU 3 : le but des tests est de montrer que
le système ne fonctionne pas.
NIVEAU 4 : le but des tests est de réduire le
risque de non fonctionnement tel que perçu par
l’usager à une valeur compatible avec la mission
du système.
NIVEAU 5 : la testabilité du système est
complètement intégrée au processus de
conception.
Il est futile de « concevoir » ce que l'on ne saura
pas tester
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 78
39
Lois de la testabilité
LOI 1 : toute méthode de tests laisse un résidu d'erreurs
contre lesquelles la méthode adoptée est inefficace.
Corollaire : Le potentiel de détection des défauts d’une suite de
test s’épuise → Il faut constamment renouveler les tests en
changeant de point de vue (objectif et stratégie de test).
LOI 2 : l'accroissement de complexité des systèmes
dépasse très facilement le niveau de complexité que l'on
sait raisonnablement valider, vérifier et tester.
LOI 3 : code et données entretiennent des relations de
dualité ; le code se transforme facilement en données.
Les données sont une source d'erreurs aussi
importante que le code.
LOI 4 : la topologie des défauts passe progressivement
de l'état « dense » à l'état « diffus » ; l’analyse locale
devient globale. Les « heisenbugs » deviennent
prépondérants.
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 79
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 80
40
L’analyse des données économiques à
l’aide de métriques et d’indicateurs
• Métriques qualité
• Coût des corrections
• Courbes de maturité
• Facteurs d’amplification des coûts
• Coûts pour l’usager
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 81
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 82
41
Coût moyen des corrections
Ce qui est
refait selon 30% 50% 70%
vade-mecum
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 83
1er Quartile : 8%
% Effort moyen par Effort cumulé
défaut (en heures) (en heures)
25% 2h 50h
50% 5h 250h
20% 10h 200h 2ème-3ème Quartile : 40%
4% 20h 80h
1% 50h 50h
100 erreurs 6.3h/err 630h
Source : Hewlett-Packard
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 84
42
Courbes de maturité - Transfert de coût
entre les processus
Palier de maturité acceptable
(dépend du taux d’erreurs non reproductibles)
1 à 5 Err/KLS
selon exigence
Pente résiduelle
La différence est
supportée par
l’éditeur du
La différence est
logiciel
supportée par l’usager du
1ère mise en service logiciel et le MCO
Temps
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 85
43
Amplification du coût de correction (2/5)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 87
0 6 10 93 47 24
0 0% 4x1,5=6 0% 27x3=81 20% 0 50% 0 50% 0 50%
10 25 25 0 0 0
10 37 93
12
AMPLIFICATION AVEC PROCESSUS DE REVUE ERREURS RÉSIDUELLES
3
3 15 24
0 2 5 24 12 6
0 70% 1x1,5=2 50% 10x3=30 60% 0 50% 0 50% 0 50%
10 25 25 0 0 0
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 88
44
Amplification du coût de correction (3/5)
T
Tâche projet à effectuer
Tâche(s) amont E S Tâche(s) aval
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 89
x1 x2 x3 x4
IVVT IVVT
EB/EC CG CD Codage TU Recette
Modules Système
Y1 Y2 Y3 Y4
Scénarios
de tests
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 90
45
Amplification du coût de correction (5/5)
> × 300
× 150 à 300
× 50 à 150
× 10 à 50
× 4à8
× 2à4
EB/EC
CdCF-1 Conception
Développement
Documents contractuels
Intégration
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 91
• Coûts de gestion
Émission de RA, installation des corrections, re-
livraisons, tests de régression, etc.
• Coûts des interruptions de service
Systèmes « clé en main »
Possibilité d’impact « catastrophique » selon la criticité du système
Exemples : Infrastructures techniques (contrôle aérien,
énergie, communications, réseaux bancaires, défense, etc.)
Progiciels
Existence de contournement selon le niveau de maturité
Systèmes d’exploitation, progiciels système (SGBD, Réseaux,
etc.), progiciels applicatifs, etc.
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 92
46
Coût pour l’usager (2/2)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 93
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 94
47
Définition
• Stratégie de VV&T : le problème
Rentabiliser REVUES et INSPECTIONS
Comment produire et ordonnancer les tests de façon à
Maximiser la probabilité de découverte d’erreurs intéressantes du point de
vue de l’utilisateur
Satisfaire au mieux le contrat de service
Minimiser la composante CQFD de l’ensemble des activités de VV&T sur
l’ensemble du cycle de développement
Garantir la qualité de l’assemblage
En terme de
Disponibilité
Capacity Planning et de System Management
Rendement du système, COST/EFFECTIVENESS du point de vue du contrat de
service
• Techniques de tests
Boite noire
Boite blanche
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 95
e1 s1
e2 s2
Fonction ou ensemble
e3 s3
de fonctions à tester •••
•••
en sm
La nomenclature de cet
Contour flou si il y a des ensemble est FONDAMENTALE
progiciels dont le comportement
est mal connu d1, d2, d3, ••• , dp Ensemble des variables d’état dont
F hérite et qui influent sur F
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 96
48
Les objectifs de tests (1/5)
• N°1 : Couverture du domaine FONCTION
Toutes les fonctions sont exécutées au moins une fois
Toutes les régions de code (selon granularité) sont visitées au moins une
fois
• N°2 : Couverture du domaine données ENTRÉES
Toutes les entrées sont sollicitées au moins une fois, y compris les limites
• N°3 : Couverture du domaine données SORTIE
Toutes les sorties attendues sont produites au moins une fois
• N°4 : Couverture du domaine CONTRÔLE et des
ENCHAÎNEMENTS
Les comportements les plus fréquents sont sollicités au moins une fois
Implique une excellente connaissance du contexte d’emploi du système
Toutes les exceptions et les messages d’erreurs sont levés au moins une
fois
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 97
• FONCTION
Échantillonnage raisonnable de la transformation {ei}→{sj}
Tests de couvertures
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 98
49
Les objectifs de tests (3/5)
• ENTRÉE
Analyse systématique de tous les types possibles en entrée
MCD, états logiques et/ou physiques des données en entrée
Analyse systématique de toutes les bornes des domaines de validité
des données
3 valeurs par borne : =, > et < (y compris les combinaisons)
Analyse systématique de toutes les situations conduisant à un
overflow
Dépassement de capacité des ressources allouées à la fonction compte
tenu des données en entrée
Impact des interruptions possibles
File d ’attente d ’événements pris en compte par la fonction ;
saturation des files, etc.
Effet « cache » ; saturation du cache, etc.
Robustesse (Données incomplètes et/ou fausses)
Innocuité : la réponse fausse ne dégrade pas l’environnement de F
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 99
• SORTIE
Analyse systématique de tous les types possibles en sortie
MCD, états logiques et/ou physiques des données en SORTIE
Non altération des données qui ne font que transiter par la fonction
Non propagation des contaminations (confinement et latence)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 100
50
Les objectifs de tests (5/5)
• CONTRÔLE et ENCHAINEMENTS
Analyse systématique de scénarios d’emploi de la
fonction jugés significatifs pour le contrat de service
Tests de chemins
Analyse raisonnable de scénarios catastrophes
Prévention des risques décrits dans le contrat de service
Non propagation des défaillances
Analyse raisonnable de combinatoires {ei et dk} du point
de vue contrôle
Chemins anormaux devant conduire à une erreur, latence, etc.
Erreurs dues aux conditions d’entrée
Analyse raisonnable de combinatoires {sj et dk} du point
de vue contrôle
Erreurs dues à l’environnement (matérialisée par dk)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 101
51
Logique d’intégration et ingénierie
système (2/2)
• Répertorier les dépendances
fonctionnelles de l’application vis à vis
des COTS et de l’environnement
système
Encapsulation systématique et/ou homologation préalable
des COTS
IHM interactive et/ou disposant d ’un mode commande
Prise en compte des coûts de non régression
Exigences fonctionnelles et
• Documentation de maintenance
non fonctionnelles prises en Est documenté • Documentation d’exploitation
compte (FURPSE) + Traçabilité par :
• Documentation de support
des exigences
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 104
52
Stratégie d’intégration
Construction d’une chaîne d’intégrats
satisfaisant VEST
Initialisation Pré-intégration de I1 et I2 prédécesseurs
de I3, I4 et I5
Stimulus en
entrée Intégrat-I1
Activation de I3
Le système est initialisé I1/I2
Séparation défaut/défaillance
Intégrat-I3
Réponse en
Intégrat-I5
Défaillance sortie
constatée dans I4
Le système fournit les résultats
attendus (nominal ou non nominal)
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 105
A1 A2 A3 ••• Am
S1
Situations
possibles
S2
•••
Sn
L’analyse des situations se fait par rapport au but fixé dans le contrat de
service, en fonction de l’évolution des courbes de maturité
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 106
53
Aperçu sur l’intégration des systèmes
informatisés
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 107
Conformité VEST
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 108
54
Le procédé de construction
Flux d’intégrats
Intégration Système Test de Qualification
et Logicielle et Acceptance
Satisfaisant
les critères VEST
RA et FT
Flux de rapports d’anomalie RA (+ faits
techniques irréfutables) concernant les intégrats sous test
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 109
Intégrat-1
Système satisfaisant aux critères
Intégrat-1.1 qualité spécifiés dans le cahier
... des charges
...
Intégrats de rang 0
Intégrats de rang 1
issu du Étage Étage Étage
issu de l’étage N°1
développement et d’Intégration d’Intégration Intégrat d’Intégration Système
N°1 et satisfaisant les N°2 final
satisfaisant les Intégrat final
critères VEST
critères VEST satisfaisant les
... critères VEST
Scénarios Scénarios Scénarios
... étage N°1 étage N°2 final
Intégrat-1.m
Anomalies Anomalies Anomalies
Intégrat-n
Diagnostic Diagnostic Diagnostic
Retour arrière si les critères ne sont pas satisfaits et/ou découvertes d’anomalies nécessitant une correction
dans un intégrat de rang 0 ; re-examens des différents scénarios qui on laissé passer l’erreur
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 110
55
Construction progressive de la
configuration livrée
Règles de recherche des éléments à intégrer
Livrables des
Éléments complets programmeurs
vérifiés et validés
Génération des
sources
Éléments complets
partiellement vérifiés et
validés par l’intégration Compilation
Édition de liens
Livraisons de l’ingénierie
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 111
Bibliographie
©2012 Reproduction interdite /N. Trèves / CNAM - AISL / VV&T Introduction générale / Vers. 3.0 NFP209 Page N° 112
56