Skip to content

umontreal-diro/IFT3913

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IFT3913 - Qualité du logiciel

Ce cours est offert à l'automne 2025. 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.

Le cours a lieu en personne les vendredi de 12.30 à 15.30, en salle Z-317 au Pavillon Claire-McNicoll. Les séances de travaux pratique ont lieu les mardis de 8.30 à 10.30, en salle Z-310 au Pavillon Claire-McNicoll.

Vous pouvez contacter les assistants de cours, Meriem, Yogya et Imen, à cette adresse: dift3913@iro.umontreal.ca

Semaine #1 vendredi 5 septembre: Introduction

Semaine #2 vendredi 12 septembre: Études de cas

Semaine #3 vendredi 19 septembre: Test unitaire

Semaine #4 vendredi 26 septembre: Couverture de code

Semaine #5 vendredi 3 octobre: Test unitaire avancé

Semaine #6 vendredi 10 octobre: Couverture de code avancée

Semaine #7 vendredi 17 octobre: Test statique

Semaine #8 vendredi 31 octobre: Gestion des dépendances

Semaine #9 vendredi 7 novembre: Tester la diversité d'environnements

Semaine #10 vendredi 14 novembre: Tester dans un domaine spécifique

Semaine #11 vendredi 21 novembre: Test et humour

Semaine #12 vendredi 28 novembre: Test en production

Semaine #13 vendredi 5 décembre: conclusion

Evaluation IFT3913 - A25

Les étudiants sont évalués 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 étudiants 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.
  • 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 Graphhopper sélectionnées pour le cours, ajoute, documente et automatise l'exécution de 10 nouveaux tests unitaires. Cf. les instructions détaillées et les critères pour la tâche 2.
  • tâche #3: automatisation des tests d'intégration (30%). Les étudiants travaillent en binôme, le même binôme que pour la tâche #2. Chaque binôme modifie Graphhopper pour le test d'intégration. Cf. les instructions détaillées et les critères pour la tâche 3.
  • 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 seront répartis sur le semestre à des dates non déterminées (a.k.a quizz surprises). Les quizz seront distribués via Studium.

Critères d'évaluation

Tâche #1: présentation

critère description
temps la présentation dure entre 6.30 min et 7.30 min (limite stricte)
structure la présentation est bien structurée et la structure est annoncée et visible
introduction la présentation inclut une introduction qui motive l'importance du sujet pour la qualité logicielle
contenu la présentation inclut une partie technique avec des extraits de code, lisibles
originalité la présentation inclut un point original
réflection la présentation inclut une partie réflection / recul sur le sujet
conclusion le dernier slide inclut un message clair et pratique pour l'audience
compréhension l'orat(rice.eur) montre une maitrise et compréhension claire du sujet et peut répondre aux questions de l'audience
slides les slides sont lisibles, n'incluent pas trop de texte et contiennent des illustrations
sources la présentation s'appuie sur au moins 3 sources extérieures qui sont citées en bas de page et sont publiquement accessibles
[demo] la présentation inclut une démo interactive de l'outil présenté
[concept] le présentation inclut une définition claire du concept abordé ainsi que des exemples concrets du concept abordé

La limite de temps est obligatoire. Tous les autres critères comptent pour un point. Le 2 derniers critères sont exclusifs, en fonction du type de présentation que vous choisissez de faire.

Tâche #2: tests unitaires automatiques

critère description
tests (25%) 7 nouveaux tests, incluant un oracle, qui augmentent le score de mutation
documentation tests (15%) chaque test est documenté: intention, données de test et oracle sont expliqués et justifiés
mutation (15%) exécuté pitest les classes testées, avec tests originaux puis avec nouveaux tests
documentation mutants (15%) les mutants détectés par les nouveaux tests sont documentés et la raison pour la détection est expliquée
faker (10%) un nouveau cas de test qui utilise java-faker
documentation faker (10%) le choix du faker est justifié et son usage est documenté
exécution (10%) tous les nouveaux tests s'exécutent avec succès dans la Github action

Tâche #3: tests d'intégration

critère description
Github action (GA) (25%) l'action échoue si le score de mutation est plus bas que sur la dernière exécution de l'action
documentation GA (25%) les modifications apportées à l'action ainsi que la validation des modifications sont documentées et justifiées;
mocks (20%) 2 classes sont simulées avec des mockito et les tests sont adaptés pour utiliser les mocks
documentation mocks (20%) le choix des classes, la définition des mocks, les changements dans les tests sont documentés et justifiés
humour (10%) Volkswagen est inclut dans le CI

Tâche #4: quizz

Trois quizz surprises au cours du semestre

  • 10 questions par quizz
  • les quizz sont distribués sur Studium
  • la note globale des quizz compte 10% de la note générale du cours

Releases

No releases published

Packages

No packages published

Languages