Validation de
logiciel
Le contenu de ce document est mis à disposition selon les termes de la
Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 France.
1cc-by-sa Jean-Paul Carmona
Sommaire
• Pourquoi et comment valider un logiciel
• Déroulement d’une campagne de test
• Types de validation
• Cycle de vie d’une anomalie
• Outils pour la validation
2cc-by-sa Jean-Paul Carmona
Pourquoi valider un
logiciel
• Vérifier le bon fonctionnement
o Avant livraison au client, coté fournisseur ou MOE
o Avant utilisation (ou mise en production), coté client ou MOA
• Connaître techniquement le logiciel
o Combien d’utilisateurs simultanés ?
o Quel temps de réponse ?
o Sur quelle configuration l’installer ? Maitrise d'OuvrAge
ou client
Cahier des
charges
Conception,
Fabrication
Maitrise d'OEuvre
ou fournisseur
ValidationRecette
3cc-by-sa Jean-Paul Carmona
& techniques
Exigences
fonctionnelles
& techniques
Cas de tests
Campagne de
test #1
Anomalies
Cahier des
charges
Campagne de
testCampagnes de
test #3
a
b
c
d
e
f
h
i
v1 aa
bb
cc
dd
ee
ff
gg
hh
v3v3
aa
bb
cc
dd
ee
ff
gg
hh
aa
bb
cc
dd
ee
ff
gg
hh
Analyse du
cahier des charges
Spec. générales
Spec. détaillées
Stratégie de
tests
Comment valider
un logiciel
4cc-by-sa Jean-Paul Carmona
Déroulement d’un projet
a
b
c
d
e
f
g
h
Exigences
a
b
e
V1_rc1 V2_rc1
Dev. v1
v1
Bugfix v1 / Dev. v2
Valid. v1
2 itérations : V1 et V2
2 équipes : dev. & valid.
V1_rc2
bug
Prepa.
valid. v1
Prepa.
valid. v2
Valid. v2
Bugfix v2
V2_rc2
bug
Importance de la gestion de configuration
a
b
c
d
e
f
g
h
5cc-by-sa Jean-Paul Carmona
les responsabilités
du valideur
• Le développeur est responsable du
o développement des fonctionnalités
o du respect des exigences
o de la correction des anomalies
• Le validateur est responsable
o du bon fonctionnement du logiciel
o de la vérification de la correction des anomalies
• C'est le valideur qui est en faute si
le logiciel livré ne fonctionne pas correctement
• Le valideur doit préciser pour chaque version testée
o La liste des fonctionnalités et exigences non vérifiées
o La liste des anomalies connues et non corrigées
o L'infrastructure matérielle et système utilisée pour les tests
6cc-by-sa Jean-Paul Carmona
Exigences
• Définir les exigences à partir de l'expression de besoins
dans le cahier des charges
• Identifier chaque exigence avec un numéro unique.
• Exemple :
o Format “<categorie>_<numero>”
o Exemple de catégories:
• IHM Interface Homme Machine; FON Fonctionel
• PER Performance; DES Design; CU Cas d’Utilisation
• IMP Implementation; LIV Livraison; ORG Organisation projet
7cc-by-sa Jean-Paul Carmona
Une exigence doit être…
• Exprimée en une phrase :
o un sujet + « doit » + verbe + complément,
o avec utilisation de la formulation affirmative plutôt que négative,
• Mesurable : il doit y avoir un moyen de vérifier l'exigence
• Utile : ne porter que sur les éléments nécessaires au système
• Simple : une seule exigence à la fois
• Traçable : ne pas changer de numéro, historiser les modifications
• Non ambiguës : susceptible de n'avoir qu'une seule interprétation
• Cohérente : ne pas contredire une autre exigence, utiliser le
même vocabulaire
• Réalisable : réaliste quant aux moyens mis en œuvre pour le projet
• Justifiée et précisée par un narratif complémentaire
cc-by-sa Jean-Paul Carmona 8
Exemple d'exigences
• [IMP_33210] Le logiciel doit être performant
o Cette exigence n'est pas assez claire : Que veux dire performant ?
o Quel temps de réponse pour quelle fonctionnalité du logiciel ?
o Avec combien d'utilisateurs ? combien d'appels simultanées ?
o Sur quelles machines serveur, client, et quelle bande passante réseau ?
• [FON_33220] L'IHM du logiciel doit être en anglais et en
francais
o Cette exigence n'est pas simple. Elle est à remplacer par plusieurs exigences :
o [FON_33221] L'IHM du logiciel doit être disponible en anglais
o [FON_33222] L'IHM du logiciel doit être disponible en français
o [FON_33223] L'utilisateur peut changer de langue dans l'IHM, par défaut la langue
fournie par le navigateur web est utilisée
9cc-by-sa Jean-Paul Carmona
Description
d’un cas de test
• Titre du test
• Exigence vérifiée
• Etapes du test :
• Moyens nécessaires aux tests
o Compte utilisateur/mot de passe,
o données en base
o Systèmes externes,
o Bouchons ou simulateur
o Machines, réseaux/proxy
# Description Attendu
1
2
3
Au moins un cas de test par exigence
Cas nominal (normal)
Cas particuliers
10
cc-by-sa Jean-Paul Carmona
Préparer une validation
• Définir une stratégie de validation dans le
cadre du projet
o Moyens mis en œuvre (humain, outils, normes),
o Planning de développement du logiciel
o Définir le nombre de campagnes de test avec pour
chacune d’elle
• l’objectif de la campagne de test
• la version testée et son périmètre fonctionnel
• Identifier les moyens nécessaires aux tests
o Equipe de validation, de développement,
o Jeux de données,
o Simulateurs,
o Environnements
11cc-by-sa Jean-Paul Carmona
Environnements d’un
projet
• Développement(s)
• Intégration
• Validation
• Recette fonctionnelle
• Pré-Production
• Production
MOE
MOA
12cc-by-sa Jean-Paul Carmona
Déroulement d’une
campagne de tests
• Préparation
o Définir la liste des cas de tests
o Ordonner les cas de tests : priorités, dépendances
o Préparer l'environnement : serveur, jeux de données, simulateur
o Répartir des cas de tests entre testeurs : validation croisée
• Bilan quotidien
o Nouvelles anomalies trouvées : priorisation,
o Nouvelle version avec correctifs apportés
• Finir la campagne de tests
o Liste des cas de tests OK/KO/non passés
o Liste des anomalies non corrigées
o Décision de fin de campagne de tests
13cc-by-sa Jean-Paul Carmona
Description d’une
anomalie
Versions
• Bloquante : pas de livraison sans correction
• Majeure : fonctionnalité secondaire ou
solution de contournement
• Mineure : autres anomalies
14
cc-by-sa Jean-Paul Carmona
Cycle de vie d’une
anomalie
15
Types de validation
• Tests unitaires
o Plus une anomalie est découverte tard plus elle coute cher
• Validation fonctionnelle
o Vérification de chaque exigence du cahier des charges
o Ne revalider manuellement que les fonctions impactées par une
nouvelle version
• Tests automatiques
o Permet l’amélioration continue sans craindre les régressions
• Exploitabilité
o Arrêt, redémarrage, surveillance, sauvegarde
• Robustesse : purge, mode dégradé
• Sécurité : durcissement, intégrité, confidentialité
• Performances : nombre utilisateur maxi vs processeur/mémoire
• Migrations de données
• Bascule de système
16cc-by-sa Jean-Paul Carmona
Outils pour la validation
• de gestion des tests
o QualityCenter, SquashTM, Excel, Selenium,
• de gestion des anomalies
o JIRA, BugZilla, Mantis, QualityCenter, Trac, Redmine,
• de gestion de configuration
o Git, Subversion, CVS, SourceSafe
• de campagne de performance
o JMeter, the Grinder, commande linux: top, ps, etc.
• d’analyse de code
o qualité : PMD, Qa-C
o exécution : TPTP
17cc-by-sa Jean-Paul Carmona
Questions ?
18cc-by-sa Jean-Paul Carmona

Introduction à la validation de logiciel

  • 1.
    Validation de logiciel Le contenude ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 France. 1cc-by-sa Jean-Paul Carmona
  • 2.
    Sommaire • Pourquoi etcomment valider un logiciel • Déroulement d’une campagne de test • Types de validation • Cycle de vie d’une anomalie • Outils pour la validation 2cc-by-sa Jean-Paul Carmona
  • 3.
    Pourquoi valider un logiciel •Vérifier le bon fonctionnement o Avant livraison au client, coté fournisseur ou MOE o Avant utilisation (ou mise en production), coté client ou MOA • Connaître techniquement le logiciel o Combien d’utilisateurs simultanés ? o Quel temps de réponse ? o Sur quelle configuration l’installer ? Maitrise d'OuvrAge ou client Cahier des charges Conception, Fabrication Maitrise d'OEuvre ou fournisseur ValidationRecette 3cc-by-sa Jean-Paul Carmona
  • 4.
    & techniques Exigences fonctionnelles & techniques Casde tests Campagne de test #1 Anomalies Cahier des charges Campagne de testCampagnes de test #3 a b c d e f h i v1 aa bb cc dd ee ff gg hh v3v3 aa bb cc dd ee ff gg hh aa bb cc dd ee ff gg hh Analyse du cahier des charges Spec. générales Spec. détaillées Stratégie de tests Comment valider un logiciel 4cc-by-sa Jean-Paul Carmona
  • 5.
    Déroulement d’un projet a b c d e f g h Exigences a b e V1_rc1V2_rc1 Dev. v1 v1 Bugfix v1 / Dev. v2 Valid. v1 2 itérations : V1 et V2 2 équipes : dev. & valid. V1_rc2 bug Prepa. valid. v1 Prepa. valid. v2 Valid. v2 Bugfix v2 V2_rc2 bug Importance de la gestion de configuration a b c d e f g h 5cc-by-sa Jean-Paul Carmona
  • 6.
    les responsabilités du valideur •Le développeur est responsable du o développement des fonctionnalités o du respect des exigences o de la correction des anomalies • Le validateur est responsable o du bon fonctionnement du logiciel o de la vérification de la correction des anomalies • C'est le valideur qui est en faute si le logiciel livré ne fonctionne pas correctement • Le valideur doit préciser pour chaque version testée o La liste des fonctionnalités et exigences non vérifiées o La liste des anomalies connues et non corrigées o L'infrastructure matérielle et système utilisée pour les tests 6cc-by-sa Jean-Paul Carmona
  • 7.
    Exigences • Définir lesexigences à partir de l'expression de besoins dans le cahier des charges • Identifier chaque exigence avec un numéro unique. • Exemple : o Format “<categorie>_<numero>” o Exemple de catégories: • IHM Interface Homme Machine; FON Fonctionel • PER Performance; DES Design; CU Cas d’Utilisation • IMP Implementation; LIV Livraison; ORG Organisation projet 7cc-by-sa Jean-Paul Carmona
  • 8.
    Une exigence doitêtre… • Exprimée en une phrase : o un sujet + « doit » + verbe + complément, o avec utilisation de la formulation affirmative plutôt que négative, • Mesurable : il doit y avoir un moyen de vérifier l'exigence • Utile : ne porter que sur les éléments nécessaires au système • Simple : une seule exigence à la fois • Traçable : ne pas changer de numéro, historiser les modifications • Non ambiguës : susceptible de n'avoir qu'une seule interprétation • Cohérente : ne pas contredire une autre exigence, utiliser le même vocabulaire • Réalisable : réaliste quant aux moyens mis en œuvre pour le projet • Justifiée et précisée par un narratif complémentaire cc-by-sa Jean-Paul Carmona 8
  • 9.
    Exemple d'exigences • [IMP_33210]Le logiciel doit être performant o Cette exigence n'est pas assez claire : Que veux dire performant ? o Quel temps de réponse pour quelle fonctionnalité du logiciel ? o Avec combien d'utilisateurs ? combien d'appels simultanées ? o Sur quelles machines serveur, client, et quelle bande passante réseau ? • [FON_33220] L'IHM du logiciel doit être en anglais et en francais o Cette exigence n'est pas simple. Elle est à remplacer par plusieurs exigences : o [FON_33221] L'IHM du logiciel doit être disponible en anglais o [FON_33222] L'IHM du logiciel doit être disponible en français o [FON_33223] L'utilisateur peut changer de langue dans l'IHM, par défaut la langue fournie par le navigateur web est utilisée 9cc-by-sa Jean-Paul Carmona
  • 10.
    Description d’un cas detest • Titre du test • Exigence vérifiée • Etapes du test : • Moyens nécessaires aux tests o Compte utilisateur/mot de passe, o données en base o Systèmes externes, o Bouchons ou simulateur o Machines, réseaux/proxy # Description Attendu 1 2 3 Au moins un cas de test par exigence Cas nominal (normal) Cas particuliers 10 cc-by-sa Jean-Paul Carmona
  • 11.
    Préparer une validation •Définir une stratégie de validation dans le cadre du projet o Moyens mis en œuvre (humain, outils, normes), o Planning de développement du logiciel o Définir le nombre de campagnes de test avec pour chacune d’elle • l’objectif de la campagne de test • la version testée et son périmètre fonctionnel • Identifier les moyens nécessaires aux tests o Equipe de validation, de développement, o Jeux de données, o Simulateurs, o Environnements 11cc-by-sa Jean-Paul Carmona
  • 12.
    Environnements d’un projet • Développement(s) •Intégration • Validation • Recette fonctionnelle • Pré-Production • Production MOE MOA 12cc-by-sa Jean-Paul Carmona
  • 13.
    Déroulement d’une campagne detests • Préparation o Définir la liste des cas de tests o Ordonner les cas de tests : priorités, dépendances o Préparer l'environnement : serveur, jeux de données, simulateur o Répartir des cas de tests entre testeurs : validation croisée • Bilan quotidien o Nouvelles anomalies trouvées : priorisation, o Nouvelle version avec correctifs apportés • Finir la campagne de tests o Liste des cas de tests OK/KO/non passés o Liste des anomalies non corrigées o Décision de fin de campagne de tests 13cc-by-sa Jean-Paul Carmona
  • 14.
    Description d’une anomalie Versions • Bloquante: pas de livraison sans correction • Majeure : fonctionnalité secondaire ou solution de contournement • Mineure : autres anomalies 14 cc-by-sa Jean-Paul Carmona
  • 15.
    Cycle de vied’une anomalie 15
  • 16.
    Types de validation •Tests unitaires o Plus une anomalie est découverte tard plus elle coute cher • Validation fonctionnelle o Vérification de chaque exigence du cahier des charges o Ne revalider manuellement que les fonctions impactées par une nouvelle version • Tests automatiques o Permet l’amélioration continue sans craindre les régressions • Exploitabilité o Arrêt, redémarrage, surveillance, sauvegarde • Robustesse : purge, mode dégradé • Sécurité : durcissement, intégrité, confidentialité • Performances : nombre utilisateur maxi vs processeur/mémoire • Migrations de données • Bascule de système 16cc-by-sa Jean-Paul Carmona
  • 17.
    Outils pour lavalidation • de gestion des tests o QualityCenter, SquashTM, Excel, Selenium, • de gestion des anomalies o JIRA, BugZilla, Mantis, QualityCenter, Trac, Redmine, • de gestion de configuration o Git, Subversion, CVS, SourceSafe • de campagne de performance o JMeter, the Grinder, commande linux: top, ps, etc. • d’analyse de code o qualité : PMD, Qa-C o exécution : TPTP 17cc-by-sa Jean-Paul Carmona
  • 18.