Logo ÉTS
Session
Cours
Responsable(s) Sègla Jean-Luc Kpodjedo, Alain April

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Sègla Jean-Luc Kpodjedo, Alain April


PLAN DE COURS

Automne 2024
LOG240 : Tests et maintenance (3 crédits)





Préalables
Programme(s) : 7065,7084,7365
             
  Profils(s) : Tous profils  
             
    LOG100    
             
Unités d'agrément
Total d'unités d'agrément : 58,8 50,0 % 50,0 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours
Ce cours présente et applique les concepts du cycle de vie de la maintenance d'un logiciel, la validation et la vérification d'un logiciel, et les différents types de tests selon les principes du génie logiciel.

Gestion de la configuration, transition d'un logiciel du développement à la maintenance, éléments de maintenance de logiciel, types de maintenance, activités de maintenance, gestion des problèmes et amélioration de la maintenance du logiciel, principes de tests, conception de tests boite noire et boite blanche, niveaux de tests (unitaire, intégration, système, acceptation), développement dirigé par les tests, modèles de maturité et normes de tests.

À la fin de ce cours, l’étudiante ou l'étudiant sera en mesure:
• d’instaurer un processus et un environnement de maintenance du logiciel;
• d'effectuer une analyse d’impact et de gérer les rapports de problèmes et demandes de changements;
• de concevoir, implémenter et exécuter des tests basés sur les principales approches de tests boîte noire et boîte blanche à divers niveaux.



Objectifs du cours

À la fin de ce cours, l’étudiant sera en mesure d’instaurer un processus et un environnement d'évolution continue du logiciel. Il comprendra comment effectuer une analyse d’impact, gérer les rapports de problèmes et demandes de changements, effectuer de la rétro-ingénierie, concevoir et exécuter des tests unitaires, d'intégration, de système, fonctionnels et de régression.




Stratégies pédagogiques

Les objectifs seront atteints par un enseignement hebdomadaire sous la forme d’un cours magistral (exposé formel, exposé informel, exercices) de trois (3) heures et de deux (2) heures de travaux pratiques. L’étudiant devra compléter sa formation par des lectures.

POUR LE GROUPE 2 SEULEMENT : Il est à noter que les séances de cours ainsi que les séances de laboratoire seront tenues virtuellement à distance pour toute la session.

 




Utilisation d’appareils électroniques

Il est interdit de capter le cours ou des portions du cours (enregistrement vidéo, enregistrement audio,  photographie) en salle de classe réelle et/ou virtuelle ou en salle de laboratoire réelle et/ou virtuelle à moins d’avoir obtenu au préalable la permission de l'enseignant.

Utilisation d'ordinateurs, VM et logiciels divers pour effectuer les activités de mise en oeuvre de l'environnement de maintenance et test ainsi qu'effectuer la maintenance et les tests d'un logiciel existant.




Horaire
Groupe Jour Heure Activité
01 Lundi 13:30 - 17:00 Activité de cours
Mercredi 08:30 - 10:30 Laboratoire (Groupe A)
Mercredi 10:30 - 12:30 Laboratoire (Groupe B)
02 Mardi 18:00 - 21:30 Activité de cours
Jeudi 18:00 - 20:00 Laboratoire (Groupe A)
Jeudi 20:00 - 22:00 Laboratoire (Groupe B)



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Francis Cardinal Activité de cours cc-Francis.CARDINAL@etsmtl.ca A-4526 flexible - s.v.p. prendre rendez-vous par courriel
01 Bilal Alchalabi Laboratoire (Groupe A) bilal.alchalabi@lassena.etsmtl.ca
02 Francis Cardinal Activité de cours cc-Francis.CARDINAL@etsmtl.ca A-4526 flexible - s.v.p. prendre rendez-vous par courriel
02 Bilal Alchalabi Laboratoire (Groupe A) bilal.alchalabi@lassena.etsmtl.ca



Cours

PARTIE 1 – L'évolution continue du logiciel (21 heures)

1. L'ingénieur de maintenance/support et les tests (4 heures)

  1.  La structure et le modèle du cours LOG240
  2.  Les laboratoires
  3.  Les normes utilisées dans ce cours
  4. La maintenance et l'agileté
    1. Introduction
    2. Modeèle de cycle de vie agile
    3. Quelle organisation effectue la maintenance du logiciel
    4. La maintenance dans un cadre agile

2. Les connaissances fondamentales en maintenance du logiciel (4 heures)

  1.  La définition de la maintenance du logiciel
  2.  La différence entre opérations, développement et maintenance
  3.  Les normes et les processus de la maintenance du logiciel
  4. L'activité de maintenance continue du logiciel

3. Les problématiques de la maintenance continue du logiciel (4 heures)

  1.  Les problèmes de la maintenance du logiciel
    • Perception externe (c.-à-d. vos utilisateurs et clients) des problèmes de la maintenance du logiciel
    • Perception interve (c.-à-d. vous, les mainteneurs) des problèmes de la maintenance du logiciel
  2.  Le modèle de mesure
    1. La mesure du processus de la maintenance
    2.  La mesure du produit logiciel maintenu
    3.  La mesure du service de maintenance
      • l'entente de service interne (SLA),
      • le contrat de service avec un tiers,
      • l'entente d'impartition, et
      • l'étalonnage (benchmarking) de la maintenance.

4. La compréhension du logiciel (4 heures)

  1. Introduction
  2. Les objectifs de la compréhension du logiciel:
    • la connaissance du domaine d'affaire, l'effet de l'exécution du logiciel et la relation cause à effet, la relation entre le logiciel et son environnement, et le support à la décision
  3. Le mainteneur et ses besoins d'information:
    • le gestionnaire, les analystes, les concepteurs et les programmeurs
  4. Les modèles de compréhension du logiciel et la notion de modèle mental
  5. Les stratégies de compréhension
    • stratégie descendante, ascendante et opportuniste
  6. Les techniques de lecture du logiciel
  7. Les facteurs qui ont un impact sur la compréhension du logiciel
    • l'expertise du domaine,
    • les questions de mise en oeuvre de la programmation,
    • la documentation,
    • l'organisation et la présentation du code source, et
    • les outils mis à la disposition du mainteneur

5. La réingénierie (5 heures)

  1. Introduction
  2. Les niveaux d'abstraction du logiciel
    • l'abstraction des fonctionalités, des données et des processus
  3.  Les buts et objectifs de la réingénierie du logiciel
  4.  Les techniques de la réingénierie du logiciel
    • les fondements de la réingénierie du logiciel, la redocumentation, la rétro-ingénirerie (recouvrement de la conception et des spécifications), la restructuration et l'optimisation
  5.  La stratégie de mise en oeuvre et les bénéfices (étude de cas)

 

PARTIE 2 – Les tests du logiciel (18 heures)

1. Les connaissances fondamentales en tests logiciels (4 heures)

  1. Introduction
  2. Vue d'ensemble du contrôle de la qualité du logiciel (incluant le SWEBOK)
  3.  Les connaissance fondamentales de tests
    • les questions clés que se posent les testeurs
    • les relations entre les tests et les autres activités de développement logiciel
  4.  Buts et objectifs de tests
    • le but du test
    • l'objectif de test
  5. Les techniques de tests
    • Les techniques qui utilisent les spécifications
    • Les techniques qui utilisent la structure du code
    • Les techniques selon l'expérience
    • Les techniques de test de mutation
    • Les techniques selon l'utilisation du logiciel
    • Les techniques combinées
  6. Les mesures de tests
  7. Tests applicatifs et domaines d'applications spécifiques
  8. Survol des outils de test
  9. Sommaire des apprentissages

2. Les tests boîte noire (5 heures)

  •  Tests aléatoires
  •  Séparation en classes d'équivalence
  •  Analyse de valeurs limites
  •  Graphes cause-effet
  •  Tests de transition d'états
  •  Tests boîte noire et produits commerciaux (COTS)

3. Les tests boîte blanche (5 heures)

  • Critères de tests
  • Graphes de flux de commande (contrôle)
  • Tests basés sur le flux de données
  • Tests de mutation
  • Les revues de code et de documents

4.  Développement dirigé par les tests et outils (3 heures)

  •  Introduction aux outils de tests populaires
  •  Introduction au développement dirigé par les tests (de l'anglais Test-Driven Development -TDD)
  • Introduction au langage Gherkin pour la technique BDD
  • Les outils pour les tests automatisés
  • Préoccupations pour bien réussir en tests automatisés
  • Des outils d'évaluation de la qualité du code source

5. Documentation et processus de tests (1 heure)

  • Présentation sommaire du modèle de maturité de tests (TMMi)
  • Centre d'expertise de test
  • Estimation de l'effort de test
  • Processus de classification des défauts
  • Plan de tests et spécification de cas de tests
  • Rapport d'exécution de tests

 

* La matière ne sera pas nécessairement présentée dans cet ordre.




Laboratoires et travaux pratiques

1.   Familiarisation et prise en charge d’un logiciel (VMWARE, GitHub, JIRA, MAVEN, QALab) – (4 heures)

2.   Rétro-ingénierie, Rapports de Problèmes et demandes de changements  (Eclipse Luna UML generators, Java RoundTrip) – (8 heures)

3.   Tests unitaires, d'intégration et système (UIspec4j et Junit) (6 heures)

4.   Réingénierie dirigée par les tests (6 heures)

Les étudiant(e)s effectuent les travaux pratiques en équipe. La composition des équipes sera déterminée au début du trimestre. Un projet de trimestre sera réalisé. Le projet consistera à mettre en œuvre les pratiques de tests et maintenance enseignées en classe.

NOTE : Si vous éprouvez des difficultés techniques avec le matériel des laboratoires du département, s.v.p. communiquez le problème à support-logti@etsmtl.ca. Consultez le site de cours pour les contenus pour chaque cours.




Utilisation d'outils d'ingénierie

Utilisation de divers logiciels dont: IntelliJ IDEA, QALab, Maven, Wiki, Jira, UIspec4j, Junit, Visual Paradigm et Cobertura.




Évaluation
Laboratoires (20 % maintenance et 20 % tests) 40 %

Examen intra * – Maintenance seulement

30 %
Examen final * – Tests seulement 30 %

*L'étudiant(e) doit avoir une moyenne d'au moins 50% dans les travaux individuels (examens intra et final) afin de réussir le cours. Cette condition est nécessaire mais non suffisante.

Examens (GROUPE 1 ET GROUPE 2)

  • L'examen intra et final est à réaliser en présence à l'ÉTS.  Les modalités vous seront mentionnés en cours par votre enseignant.

Laboratoires

  • Les laboratoires sont à faire en équipe.  Toutes les modalités par rapport aux laboratoires en général et par rapport à chacun des laboratoires vous sera expliqué lors des séances de laboratoire par votre chargé de laboratoire.
  • Les séances de laboratoires sont en présence pour le groupe 1
  • Les séances de laboratoires sont virtuelles à distance pour le groupe 2



Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 21 octobre 2024
2 22 octobre 2024



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.



Absence à une évaluation

Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou l’étudiant doit utiliser le formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.

Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS pour se rendre à l’activité.

Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du RÉPC et 6.5.2 du RÉCS) entraînera l’attribution de la note zéro (0).




Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet. À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignante ou l’enseignant du cours.



Documentation obligatoire

Alain April et Alain Abran, L'évolution Contôlée du Logiciel. édition 2023, YuPub. Votre accès à la version électronique est temporaire et se terminera après l'intra.

April, A., Gemmoche, Y, et Abran A., Les Tests Logiciels, édition 2023, YuPub. Votre accès à la version électronique est temporaire et se terminera à la fin de la session.




Ouvrages de références

Grubb, P., Takang, A.A., Software Maintenance: Concepts and Practice. International Thompson Computer Press, 1996.

Amman, P., Offutt, J. Introduction to Software Testing, Cambridge University Press (2nd Ed), 2017

Myers, G. J., The Art of Software Testing. John Wiley & Sons, (2nd Ed.), ISBN 0471469122, 2004, 256 p. (première édition disponible sur ITPro).




Adresse internet du site de cours et autres liens utiles

Site Moodle du cours LOG240 accessible via votre portail MonETS.