ECTS
2 crédits
Composante
Faculté des sciences
Description
L’objectif de ce cours est de présenter les concepts et méthodes fondamentaux permettant de bien tester un logiciel ainsi que les concepts associés tels que la qualité de logiciel, la validation et la vérification de logiciel.
- Rappel des cycles de vie du développement de logiciel et de l’assurance qualité du logiciel
- Classification des tests (test unitaire, test d’intégration, test de non-régression)
- Méthodes de test (boite noire, boite blanche, boite grise)
- Stratégies de test (bottom-up, top-down, Sandwich)
- Méthodes de tests formels
Nous ouvrirons le cours à des notions pour la génération automatique de tests logiciels (e.g., génération de tests basée sur des modèles), et l’utilisation de l’apprentissage pour la compréhension et la certification des comportements des systèmes complexes (e.g., rétro-ingénierie logicielle dynamique, méthodes adverses, exploration de l’espace d’entrée, détection de cas pathologiques, apprentissage par renforcement robuste, etc.).
Objectifs
— Connaître les concepts et les méthodes de validation et vérification.
— Connaître les techniques de test.
— Savoir réaliser des tests unitaires, d’intégration, système et de non-régression.
— Savoir préparer des jeux de test.
— Concevoir des méthodes de test basées sur l’apprentissage statistique / symbolique.
Heures d'enseignement
- CMCours magistral9h
- TPTravaux pratique9h