L'objectif de ce module est d'aborder les techniques les plus modernes en cours de déploiement dans l'industrie pour le développement de grands systèmes logiciels. La conception du logiciel consiste à fusionner différents modèles vers du code; et le test permet de valider qu'ils ont été fusionnés correctement. A l'issue de cet enseignement l'élève aura acquis une culture générale du test de logiciel et saura appliquer des techniques de génération de tests efficaces à partir du code, de la spécification ou des modèles de conception.
Après une introduction à l'ingénierie des modèles et à ses multiples déclinaisons dans des initiatives comme Model Driven Architecture (OMG), Model Integrated Computing (Vanderbilt), ou encore Software Factories (Microsoft), le module se concentre plus spécifiquement sur les aspects validation et qualité. Ce volet suit un cycle de vie classique pour le test : test unitaire, d'intégration, système et de recette. On aborde différentes techniques à chaque étape, que ce soit à partir du code (test unitaire avec JUnit, mutation), de modèles (plan d'intégration à partir d'un modèle du système) ou des exigences (use cases et cahier des charges). La qualité est abordée comme une notion transversale pour évaluer les modèles, le code, les tests, les exigences, etc. Plusieurs intervenants extérieurs apporteront une expertise industrielle sur ces thèmes.