Introduction au test des logiciels
- Qu'est-ce que le test ? Le bug et son coût. La testabilité. Les tests et le cycle de vie. Le concept de V&V.
- Test fonctionnel versus test structurel.
- Couverture de test. Les tests de non-régression.
- Le métier de testeur.
- Les référentiels, la maturité des processus (TMMI, TPI).
Travaux pratiques
Découverte d'une étude de cas, application à développer.
La démarche de test
- Les cinq fondements.
- Les processus projet et les tests. L'approche globale.
- Le plan de test et ses déclinaisons. La stratégie de test.
- L'approche par les risques. L'estimation.
- Les plateformes. Tests et bases de données.
Travaux pratiques
Prise en main de l'outil de gestion de tests.
Les tests unitaires
- Le processus de tests unitaires.
- Le Test Driven Development (TDD). Les xUnit.
- Les tests aux limites, de robustesse, aléatoires.
- Analyse dynamique. Couverture structurelle.
- L'analyse statique.
Travaux pratiques
Mesurer la couverture structurelle.
Gestion des tests fonctionnels
- Les gestionnaires d'exigences et de traçabilité.
- Les gestionnaires de référentiels des tests.
- Préparation des plateformes et des données de test.
- Rédaction des cas de test.
- Constitution des plans de tests fonctionnels.
Travaux pratiques
Mise en oeuvre de tests fonctionnels sur une application Web Open Source. Utilisation du référentiel de test Testlink en support.
Automatisation des tests
- Les outils d'automatisation.
- Automatisation par robot de tests, par API fonctionnelle.
- Couche d'abstraction fonctionnelle.
- Techniques de reconnaissance des composants.
- Séparation de la logique et des données des tests automatisés.
Travaux pratiques
Automatisation des tests fonctionnels manuels à l'aide de robots de test (Sélénium...). Pilotage des tests d'une application riche avec une API fonctionnelle.
Pratiques avancées des tests
- Techniques de communication entre outils.
- Modèle de test et tests basés sur les modèles.
- Framework de tests unitaires et test fonctionnel de qualification.
Travaux pratiques
Spécification par l'exemple avec Fitness. Alimentation automatique des données vers le robot. Génération de tests et chaîne d'intégration continue.