IFT-1111 / Automne 2026 / ION/Algosys — Christian Desrosiers : TDD et évolution du logiciel
Mini-test — ION/Algosys — Christian Desrosiers : TDD et évolution du logiciel
Exercices d’entraînement créés pour le portail. Aucun questionnaire officiel. Banque v4.
11 questions. Un point par réponse automatique correcte; aucun crédit partiel. Les autoévaluations sont comptées séparément. Les corrigés apparaissent après chaque réponse; ce mini-test sert à apprendre.
Aucune tentative commencée.
1. Une équipe invente un service de location de voitures dont les besoins restent incertains. En quoi une preuve de concept limitée peut-elle être plus utile qu’un plan exhaustif, dans l’analogie pont/logiciel de la conférence?
Application · version 3
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Corrigé — question 1
Une expérience avec peu d’options permet de confronter des hypothèses de besoin et de solution à un résultat concret. Le pont représente dans l’analogie une décomposition plus connue; le service innovant apprend en avançant. Cela justifie petits pas et rétroaction, sans prétendre que toute construction est prévisible ou que tout logiciel échappe à la planification.
- Tester des hypothèses par une expérience limitée.
- Distinguer compliqué et complexe dans la portée de cette analogie.
Variantes : Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Revoir la matière — 2. Pourquoi l’agilité a besoin d’un code modifiable2. Dans la démonstration DitBonjour, quelles attentes distinguent le nom null de la chaîne vide?
Application · version 1
Hypothèses et règle de réponse
- Entraînement personnel; les propos et règles administratives sont ceux des conférences à leur date, sans validation d’un dossier réel.
Une seule réponse.
Corrigé — question 2
Le premier scénario demande ArgumentNullException pour null. Le second ajoute ArgumentException pour la chaîne vide et doit conserver la réussite du premier. Les deux entrées ne sont donc pas traitées comme une salutation vide. La démonstration n’étend pas cette preuve aux noms atypiques seulement évoqués.
Variantes : Une seule réponse.
Revoir la matière — 8.2 Rejeter le nom nulRevoir la matière — 8.3 Rejeter la chaîne vide sans perdre le cas nul3. Vous écrivez le test d’un comportement censé manquer, mais il passe déjà. Que faut-il vérifier avant d’ajouter du code? Décrivez ensuite le cycle si le test révèle bien le comportement absent.
Application · version 4
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Corrigé — question 3
Vérifier la cible appelée, les données et l’assertion, puis déterminer si le comportement existe déjà. Un échec significatif établit ce qui manque : écrire le minimum pour le vert, refactorer si une amélioration est utile et rejouer la suite. Le refactoring n’est pas une transformation obligatoire à chaque tour; un rouge réel ne garantit pas non plus la richesse des données. Un bogue de production reproductible peut aussi devenir un test rouge avant correction, puis une protection automatique contre son retour.
- Diagnostiquer le vert prématuré plutôt qu’ajouter du code sans besoin.
- Rouge significatif → minimum au vert → refactoring utile et vérification.
Variantes : Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Revoir la matière — 4. Faire des tests le moteur du développement4. Dans le récit Algosys, à quoi le gain direct de 2025 par configuration est-il attribué?
Compréhension · version 2
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Une seule réponse. Comparer le raisonnement au corrigé après avoir répondu.
Corrigé — question 4
La productisation permet de configurer des besoins auparavant programmés pour chaque client. Écrire ces personnalisations plus vite ne décrit pas ce changement de mode; une réduction de périmètre n’est pas l’explication donnée. Le TDD a soutenu l’évolution dans le récit, sans être la cause directe unique de ce gain.
Variantes : Une seule réponse. Comparer le raisonnement au corrigé après avoir répondu.
Revoir la matière — 6.3 Mesurer la durée jusqu’à une implantation stable5. Un test généré depuis un ancien calcul faux attend exactement ce résultat faux et passe. Que démontre ce vert?
Application · version 2
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Une seule réponse. Comparer le raisonnement au corrigé après avoir répondu.
Corrigé — question 5
L’automatisation ne fournit pas l’exigence qui manque. Le test caractérise ce que fait le code; un attendu copié d’un bogue peut protéger ce bogue. Il faut une référence au besoin pour décider si un changement est une correction ou une régression.
Variantes : Une seule réponse. Comparer le raisonnement au corrigé après avoir répondu.
Revoir la matière — 7.4 Caractériser le comportement actuel ne prouve pas sa justesse6. Une usine fonctionne en continu avec une installation locale. La CI est verte et une fonction dispose d’un switch. L’équipe peut-elle en déduire une installation et une activation immédiates chez ce client?
Application · version 3
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Corrigé — question 6
La CI apporte une information sur l’intégration; la capacité de livraison et le contrôle d’activation sont d’autres étapes. L’usine conserve ses contraintes de disponibilité, de réseau et d’installation. Il faut organiser la mise en service selon ce contexte : un switch ne livre pas lui-même une version et un vert ne décide pas du calendrier client.
- Distinguer intégration, livraison/installation et activation.
- Prendre en compte les contraintes opérationnelles du client.
Variantes : Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Revoir la matière — 9. Des tests unitaires à la fonctionnalité livrée7. Classez ces trois exemples de la conférence : A) synthétiser les courriels du matin; B) aider à écrire une fonctionnalité; C) offrir une fonction IA à l’intérieur du logiciel vendu. Quelle association convient?
Application · version 1
Hypothèses et règle de réponse
- Entraînement personnel; les propos et règles administratives sont ceux des conférences à leur date, sans validation d’un dossier réel.
Une seule réponse.
Corrigé — question 7
Les catégories décrivent l’usage et son destinataire : organiser son propre travail, construire le logiciel, ou fournir une capacité au client dans le produit. Elles ne constituent ni un inventaire des fonctions déjà livrées ni une mesure de gains. Les propos professionnels de la conférence ne modifient pas la règle d’IA du cours.
Variantes : Une seule réponse.
Revoir la matière — 10.2 Trois usages de l’IA à distinguer8. Une dépendance simulée reçoit 28 et renvoie 45. Le test de la composante qui l’utilise passe. L’équipe conclut que les objets réels sont tous correctement branchés. Évaluez cette conclusion et indiquez le contrôle manquant.
Application · version 2
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Corrigé — question 8
Le mock impose un résultat contrôlé pour observer la composante cible. Le test ne visite ni le calcul réel de la dépendance ni tous les branchements réels. Un contrôle d’intégration pertinent doit exercer cette collaboration; remplacer encore plus de dépendances par des mocks ne fournit pas cette preuve.
- Limiter la conclusion au comportement isolé testé.
- Vérifier la collaboration des composants réels par intégration.
Variantes : Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Revoir la matière — 5.5 Interfaces et objets simulés9. Une instance Toto unique est partagée par toute la suite et modifiée par un premier test. Le suivant dépend de ce changement. Comment utiliser le Setup/TestInitialize montré dans la démonstration pour supprimer cette dépendance?
Application · version 2
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Corrigé — question 9
Le Setup factorise la construction, mais TestInitialize doit créer une nouvelle instance avant chaque test. Cela garde un point de modification du constructeur tout en évitant de partager l’état mutable entre scénarios. Initialiser une fois pour toute la suite ne procure pas cette indépendance.
- Créer une nouvelle instance avant chaque test.
- Factoriser la préparation sans partager l’état mutable.
Variantes : Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Revoir la matière — 8.5 Refactorer aussi la préparation des tests10. Deux DataRow contiennent Gontrand puis Joseph, mais le corps du test appelle toujours DitBonjour("Gontrand") et attend toujours « Bonjour Gontrand! ». Pourquoi ce vert est-il trompeur et que faut-il changer?
Application · version 2
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Corrigé — question 10
Les lignes de données ne changent ici ni l’action ni l’attendu : le test répète Gontrand. Passer le paramètre à DitBonjour et construire l’attendu correspondant fait réellement exercer Joseph. Une réponse constante doit alors échouer pour Joseph; le nombre de lignes seul ne prouve pas la diversité testée.
- Faire alimenter l’appel par chaque DataRow.
- Faire varier l’attendu avec l’entrée pour détecter la constante.
Variantes : Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Revoir la matière — 8.7 Deux noms dans un test paramétré11. Les composants d’une fonctionnalité passent leurs tests unitaires, mais le résultat métier de bout en bout échoue. Quel rôle jouent la boucle d’acceptation extérieure et les cycles unitaires intérieurs du TDD?
Application · version 2
Hypothèses et règle de réponse
- Entraînement personnel à partir de la séance du 2026-10-07; propos attribués dans la lecture référencée.
- Les faits administratifs restent datés; aucune action ou maîtrise personnelle n’est attestée.
Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Corrigé — question 11
L’acceptation exprime le résultat fonctionnel recherché. Les cycles unitaires construisent et diagnostiquent les composants, mais il reste à les intégrer jusqu’à satisfaire ce résultat extérieur. Un vert local n’est donc pas un motif pour supprimer le test d’acceptation en échec; les deux niveaux apportent des informations différentes.
- Acceptation : résultat métier extérieur.
- Cycles unitaires : construction des composants, puis intégration jusqu’au résultat attendu.
Variantes : Répondre avant d’ouvrir le corrigé; comparer ensuite les critères essentiels à votre raisonnement. Aucun score automatique sur le texte.
Revoir la matière — 9.1 La boucle extérieure et les boucles intérieuresRécupérer manuellement les données locales
Copier séparément les données ci-dessous dans des fichiers texte avant de fermer la page ou de modifier le stockage. Une valeur illisible ou incompatible reste en place. Aucun effacement ni rétablissement écrasant n’est effectué automatiquement. L’export/import JSON est disponible sur la page Progression du cours. Cette récupération séparée reste utile pour une valeur brute ou un conflit.
Clé de ce cours : . Format v1 porté par cette clé; dates UTC et identifiants durables.
Si l’accès est refusé, la valeur persistée peut rester inaccessible. Réautoriser le stockage dans le navigateur puis rouvrir ce cours permet de la relire. Une réinitialisation exige une décision explicite après récupération; aucune commande de suppression n’est proposée ici. Les données restent sur cette origine et cet appareil, sans transfert automatique.