Ce cours est offert à l'automne 2026. Il est organisé suivant le calendrier ci-dessous.
Avec ce cours, les étudiant(e)s auront acquis les compétences suivantes:
- évaluation automatique de la qualité logicielle
- concepts fondamentaux du test logicel: données, scénarios, oracles
- apprentissage par diverses sources de connaissances
- curiosité et humour pour le logiciel
Les étudiant(e)s sont évalué(e)s sur la base de 4 tâches.
Prérequis: programmation Java, git et github.
Resource utile: travailler avec des forks Git (en anglais).
Le cours a lieu en personne les mardis de 12.30 à 15.30 dans l'amphitéâtre 3110 au Pavillon de la Faculté d'Aménagement. Les séances de travaux pratique ont lieu les jeudis de 8.30 à 10.30, en salle Z-317 au Pavillon Claire-McNicoll.
Vous pouvez contacter les assistantes de cours, Meriem, Yogya et Madjda, à cette adresse: dift3913@iro.umontreal.ca
- présentation du cours et des modalités
- matériel préparatoire: Operational Excellence
- Cas d'études: qualité pour le logiciel open source
- matériel préparatoire: How Developers Engineer Test Cases: An Observational Study
- Démonstration: Github Actions
Semaine #3 mardi 15 septembre: Test unitaire
- Introduction + présentations d'étudiants
- matériel préparatoire: Unit Tests for SQL
Semaine #4 mardi 22 septembre: Couverture de code
- Introduction + présentations d'étudiants
- matériel préparatoire: Code Coverage Best Practices
Semaine #5 mardi 29 septembre: Test unitaire avancé
- Introduction + présentations d'étudiants
- matériel préparatoire: Handling Flaky Unit Tests in Java
Semaine #6 mardi 6 octobre: Test et IA
- Quizz
- Introduction + présentations d'étudiants
- matériel préparatoire: Testing beyond coverage
Semaine #7 mardi 13 octobre: Test et sécurité
- Introduction + présentations d'étudiants
- matériel préparatoire: What is Clean Code?
Semaine #8 mardi 27 octobre: Gestion des dépendances
- Introduction + présentations d'étudiants
- matériel préparatoire: Surviving software dependencies
Semaine #9 mardi 3 novembre: Tester la diversité d'environnements
- Quizz
- Introduction + présentations d'étudiants
- matériel préparatoire: Cross Browser Testing Overview
Semaine #10 mardi 10 novembre: Tester dans un domaine spécifique
- Introduction + présentations d'étudiants
- matériel préparatoire: Mobile Game Testing: Types, Tools, and More
Semaine #11 mardi 17 novembre: Test et humour
- Introduction + présentations d'étudiants
- matériel préparatoire: With Great Humor Comes Great Developer Engagement
Semaine #12 mardi 24 novembre novembre: Test en production
- Quizz
- Introduction + présentations d'étudiants
- matériel préparatoire: I test in prod
- Discussion ouverte sur la qualité logicielle et le déroulé d'IFT3915-A25
- matériel préparatoire: On the Costs and Benefits of Adopting Lifelong Learning for Software Analytics
L'évaluation se fait sur la base des 4 tâches décrites ci-dessous. Les tâches #1 et #4 sont individuelles, les tâches #2 et #3 se font en binôme. Le poids respectif de chaque tâche est indiqué ci-dessous. La correspondance entre les notes de chaque tâche et la note litérale est dynamique.
- tâche #1: présentation individuelle (30%). Les étudiant(e)s choisissent un thème parmi tous ceux abordés chaque semaine et préparent une présentation technique de 7 minutes sur ce thème. Cf.les instructions détaillées et les critères d'évaluation pour la tâche 1.
- date limite: jour du cours
- politique de retard: en cas d'absence au cours, il n'y a qu'une seule opportunité de reporter la présentation à un autre jour, à déterminer avec l'équipe enseignante
- tâche #2: augmentation d'une suite de tests automatique (30%). Les étudiants travaillent en binôme. Chaque binôme augmente la suite de tests de cas d'étude. Cf. les instructions détaillées et les critères d'évaluation.
- date limite: mardi 13 octobre, 17h EDT
- politique de retard: 10% retenus sur la note pour un rendu dans les 24 heures qui suivent la date limite; 50% retenus pour un rendu entre 24 et 48 heures en retard; pas de note pour un rendu plus de 48 heures en retard
- tâche #3: automatisation des tests de sécurité (30%). Les étudiants travaillent en binôme, le même binôme que pour la tâche #2. Chaque binôme modifie le cas d'étude pour le test d'intégration. Cf. les instructions détaillées et les critères d'évaluation.
- date limite: mardi 17 novembre, 17h EST
- politique de retard: 10% retenus sur la note pour un rendu dans les 24 heures qui suivent la date limite; 50% retenus pour un rendu entre 24 et 48 heures en retard; pas de note pour un rendu plus de 48 heures en retard
- tâche #4: répondre à 3 quizz (10%). Vous recevrez 3 quizz au cours du semestre qui aborderont des points abordés dans les différentes présentations du cours. Les 3 quizz sont distribués en classe aux dates indiquées plus haut.
- politique de retard: les quizz sont ouverts pendant 15 minutes, en classe. Aucun quizz ne pourra être fait en-dehors de cette période.
Pour les tâches 2 et 3, vous choisirez des classes à tester et à analyser parmi les modules suivants du projets Tika: tika-parser-ocr-module, tika-parser-pdf-module, tika-core, tika-serialization et tika-parser-microsoft-module
Vous êtes autorisés à utiliser l'IA. Si vous l'utilisez, vous devez le documenter en suivant les instructions de l'Université: Intelligence artificielle générative: Citer, signaler, déclarer et documenter.