Présentation par l'éditeur
Le test des logiciels est le premier ouvrage en
francais a traiter exhaustivement toutes les methodes,
strategies, techniques et outils de test et de controle. Il
situe ces activites parmi l'ensemble des dispositions
prises tout au long des differentes phases de fabrication
d'un logiciel pour assurer sa qualite. Il insiste sur
l'integration des tests au sein des projets de logiciels.
Il presente ensuite les differents aspects des tests
fonctionnels et structurels (statiques et dynamiques).
Leurs techniques et outils sont decrits de maniere
pratique.
Issu de la longue experience des auteurs dans le domaine,
cet ouvrage constitue une reference pour les pedagogues,
les industriels, les chefs de projet, etc., dans ce domaine
important et mal connu (et trop souvent mal gere) du genie
logiciel. Il leur permettra de comprendre et de maitriser
le processus de test qui est la discipline la plus complexe
et la plus onereuse dans les etapes de production des
logiciels.
Table des matieres
Chapitre 1. Introduction au
test du logiciel
Introduction
1.2. Definition du test
1.3. Difficultes du test
1.3.1. Difficultes associees
au processus d?introduction des defauts
1.3.2. Difficultes d?ordre psychologique ou < culturel
>
1.3.3. Difficultes formelles
1.4. Presentation des concepts fondamentaux
1.5. Notions de strategie de test
1.6. Conclusion
Chapitre 2. Le test dans un projet logiciel
2.1. Le probleme du test pour
l?industriel du logiciel
2.1.1. Le necessaire recours
au test
2.1.2. Apport et limites du test pour le developpeur de
logiciels
2.1.3. La notion de strategie de test
2.2. Panorama des techniques de test
2.2.1. Classification des
techniques de test
2.2.2. Efficacite des techniques de test
2.2.3. Objectifs associes aux techniques
fonctionnelles
2.2.4. Objectifs associes aux techniques
structurelles
2.2.5. Quel objectif pour quel niveau de confiance
2.2.6. Une autre approche : la qualimetrie
2.3. Les phases de test dans le projet logiciel
2.3.1. Generalites
2.3.2. Les phases de tests dans les principaux cycles de
vie du logiciel
2.3.3. La preparation des dossiers de tests
2.3.4. Les tests unitaires
2.3.5. Les tests d?integration
2.3.6. Les tests de validation
2.3.7. Les tests de non regression
2.4. Concevoir pour la testabilite
2.5. Perspectives
2.6. Conclusion
Chapitre 3. Le test fonctionnel
3.1. Analyse partitionnelle
3.2. Test aux limites
3.3. Graphes Cause-Effet
3.4. Tests syntaxiques
3.5. Tests aleatoires
3.6. Techniques de couverture du graphe
fonctionnel
3.7. L?Algorithmique Qualitative
3.8. Analyse transactionnelle
3.9. Conclusion
Chapitre 4. Le test structurel statique
4.1. Revues de code
4.2. Estimation de la complexite
4.2.1. Le modele de Mc
Cabe
4.2.2. Le modele de Halstead
4.2.3. Autres modeles de complexite structurelle
4.2.4. Complexite d?un logiciel temps-reel
4.3. Preuve formelle
4.3.1. Methode
inductive
4.3.2. Methode logique
4.4. Execution symbolique 4.5. Interpretation abstraite 4.6. Analyse du flot des donnees 4.7. Conclusion
Chapitre 5. Techniques de
couverture du graphe de controle
5.1 Chemins dans un graphe de
controle
5.1.1. Expressions des
chemins de controle
5.1.2. Chemins executables et non executables
5.1.3. Hierarchie des techniques de test structurel
5.2 Couvertures basees sur le
flot de controle
5.2.1. Couverture de
tous-les-n?uds
5.2.2. Couverture de tous-les-arcs
5.2.3. Couverture de tous les chemins independants
5.2.4. Couverture des PLCS
5.2.5. Les chemins limites et interieurs
5.2.6. Les chemins d?-ordre-i (level-i-paths)
5.2.7. Le critere MCDC
5.3 Couvertures basees sur le flot des
donnees
5.4 Discussion sur les methodes de couvertures
5.5. Conclusion
Chapitre 6. Autres techniques
de test structurel dynamique
6.1 Tests mutationnels
6.2. Tests mutationnels faibles
6.2.1. Expressions
arithmetiques
6.2.2. Instructions If
6.2.3. Instructions While
6.3. Analyse de sensibilite
6.4. Analyse dynamique du flot des donnees
6.5. Execution abstraite
6.5.1. Anomalies du Flot des
Donnees Dynamiques
6.5.2. Verification de la coherence des dimensions des
calculs
6.5.3. Un modele de test aux limites
6.6. Analyse des domaines finis
6.7. Le test evolutionniste
6.7.1. Sensibilisation des
chemins de controle
6.7.2. Principes generaux des Algorithmes Genetiques
6.7.3. Le principe de test evolutionniste
6.8. Conclusion
Chapitre 7. Prevention, estimation et correction de
defauts
7.1. Introduction
7.2. Theorie de la tolerance aux erreurs
7.3. Surete de fonctionnement et fiabilite du
logiciel
7.3.1. Introduction a la
fiabilite
7.3.2. Prevision des defauts et mesure de fiabilite
7.3.3. Evaluation de la fiabilite
7.4. Techniques de debogage
7.5. Conclusion
Chapitre 8. Les outils de test
8.1. Introduction
8.2. Les analyseurs statiques
8.2.1. Analyseurs de
complexite
8.2.2. Outils de gestion et de documentation
8.2.3. Analyseurs du flot des donnees
8.2.4. Visualisation du graphe de controle
8.2.5. Outils d'execution symbolique
8.2.6. Demonstrateurs d'exactitude
8.2.7. Outils d?interpretation abstraite
8.2.8. Comparateurs conception/source
8.2.9. Correcteurs intelligents de programmes
8.3. Les analyseurs
dynamiques
8.3.1. Les evaluateurs de
couverture
8.3.2. Evaluateurs d'assertions locales
8.3.3. Analyseurs dynamiques du flot des donnees
8.3.4. Generateurs automatiques de Donnees de Test
structurel
8.3.5. Generateurs de Tests Fonctionnels
8.3.6. Simulateurs d'environnement
8.3.7. Compilateurs et debogueurs
8.3.8. Un panorama des outils de test
8.3.8.1. Outils de generation
de tests bases sur les specifications
8.3.8.2. Outils d?execution et de gestion des tests
8.3.8.3. Outils d?evaluation des tests
8.4. Conclusion