Ce cours est offert à l'automne 2024. Il est organisé suivant le calendrier ci-dessous.
Avec ce cours, les étudiant(e)s auront acquis les compétences suivantes:
Les étudiant(e)s sont évalué(e)s sur la base de 3 tâches, suivant les critères énoncés ci-dessous.
Prérequis: programmation Java, git et github.
Le cours a lieu en personne les jeudis de 8.30 à 11.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 1355 au Pavillon André-Aisenstadt.
Vous pouvez contacter les assistants de cours, Meriem, Yogya et Oussama, à cette adresse: dift3913@iro.umontreal.ca
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 |
élocution | l'orat(rice.eur) parle clairement, avec assurance, et interagit avec l'audience. le sens de l'humour responsable est apprécié |
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 |
La limite de temps est obligatoire. Tous les autres critères comptent pour un point.
critère | description |
---|---|
tests | 10 nouveaux tests qui n'étaient pas présents dans la version initiale du repo |
oracle | chaque test inclut un oracle qui vérifie, automatiquement, que le programme a le comportement attendu |
intention | chaque test a une intention claire documentée dans un commentaire |
structure | les tests sont organisés en suivant le pattern AAA (arrange-act-assert) |
documentation | le repo inclut une page qui documente où se trouvent les méthodes testées et justifie les choix des méthodes testées |
utilité | l'exécution des nouveaux tests augmente la couverture de code |
exécution | les tests, y compris les 10 nouveaux, s'exécutent avec succès dans une Github action |
Chacun des critères compte pour un point.
Il est très fortement conseillé que les tests s'exécutent automatiquement et correctement dans une Github action (dernier critère). Si ce n'est pas le cas, la note maximale pour cette tâche ne pourra pas dépasser 4/10.
Bonus: au moins un test utilise la bibliothèque java-faker.
critère | description |
---|---|
flags | l'action exécute la compilation et les tests avec 5 flags différents de la JVM * |
structure | l'action génère des logs clairs qui documentent quels flags sont exécutés |
documentation | le repo inclut une page qui documente les changements apportés à la Github action pour permettre l'exécution avec cinq flags |
motivation | la documentation inclut une section qui justifie le choix de chaque flag vis-à-vis de son impact possible sur la qualité, la performance, l'observabilité |
qualité | la mesure de la couverture est automatisée et le taux de couverture est mesuré à chaque build avec un flag différent; cinq taux de couverture sont mesurés par l'action |
humour | le repo inclut un élément d'humour responsable et documenté |
* les flags doivent être de différents types (par exemple pas 2 flags de type print ou GC)
Chaque critère compte pour un point.
Si l'action ne s'exécute pas correctement, la note maximale pour cette tâche ne pourra pas dépasser 4/10.
Bonus: les commits pour développer cette action sont documentés avec lolcommits.