Test
Ref: 3IF2070
Description
Le test est une activité de validation qui permet de confronter un logiciel à sa spécification. Ce cours initie au métier de testeur, aux différentes techniques de test et comment les mettre en œuvre tout au long du processus de développement.
Période(s) du cours
SM10
Prérequis
Aucun
Syllabus
12 créneaux d'1h30 (18 HPE) : 6 cours (1h30), 3 bureaux d'étude (3h)
- CM 1 : Introduction, définitions
- Activités de l'ingénieur de validation (Classification de Beizer...)
- Différents critères et types de test
- Automatisation de l'activité de test
- Formalisation de l'activité de test : introduction aux critères de couverture
- Limites des tests
- CM 2 : Test fonctionnel
- Test aléatoire
- Test par partitionnement des données (classes d'équivalence, tests aux limites, tests de robustesse...)
- Test unitaire (principe et mise en oeuvre)
- BE (créneaux 3 & 4)
- Environnement de test unitaire (ex: JUnit, PUnit)
- Environnement de génération automatique de tests et de partitionnement de données (ex : JMLSpecs)
- CM 5 & 6 : Test structurel
- Graphes de contrôle et graphes de données
- Test par couverture code (critères : bloc, décision, condition, MC/DC...)
- Test par mutation (principe, niveaux et types de mutations)
- BE (créneaux 7 & 8)
- Environnement de test par couverture et de régression (ex: Randoop)
- Environnement de test par mutation (ex: PIT)
- CM 9 & 10 : Test par exécution symbolique
- Prédicats de chemins et résolution de contraintes
- Exécution symbolique statique
- Exécution symbolique dynamique (concolique)
- BE (créneaux 11 & 12)
- Environnement d’exécution symbolique et concolique (PathCrawler)
Les 12 HEE restantes sont consacrées à la finalisation des travaux réalisés en bureaux d'étude, ainsi qu'aux révisions.
Composition du cours
- Site web présentant le matériel du cours
- Bureaux d'étude pour mettre en œuvre les concepts avec la réalisation concrète
Ressources
L'apprentissage se basera sur de la pratique. Après les cours magistraux présentant les concepts théoriques et introduisant les différents outils, des bureaux d'étude permettront aux élèves de prendre en main une multitude d'environnements de test et de travailler sur des cas concrets.
Résultats de l'apprentissage couverts par le cours
- Qu'est-ce qu'un cas de test ? Un système sous test ?
- Techniques de conception de tests:
- techniques boîte noire (partitionnement, couverture de données...);
- techniques boîte blanche (couverture du code, mutation...)
- Génération automatique de cas de test:
- méthode aléatoire;
- exécution symbolique;
- exécution concolique;
- génération à base de modèles