PARTIE 1 – L'évolution continue du logiciel (21 heures)
1. L'ingénieur de maintenance/support et les tests (4 heures)
- La structure et le modèle du cours LOG240
- Les laboratoires
- Les normes utilisées dans ce cours
- La maintenance et l'agileté
- Introduction
- Modeèle de cycle de vie agile
- Quelle organisation effectue la maintenance du logiciel
- La maintenance dans un cadre agile
2. Les connaissances fondamentales en maintenance du logiciel (4 heures)
- La définition de la maintenance du logiciel
- La différence entre opérations, développement et maintenance
- Les normes et les processus de la maintenance du logiciel
- L'activité de maintenance continue du logiciel
3. Les problématiques de la maintenance continue du logiciel (4 heures)
- 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
- Le modèle de mesure
- La mesure du processus de la maintenance
- La mesure du produit logiciel maintenu
- 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)
- Introduction
- 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
- Le mainteneur et ses besoins d'information:
- le gestionnaire, les analystes, les concepteurs et les programmeurs
- Les modèles de compréhension du logiciel et la notion de modèle mental
- Les stratégies de compréhension
- stratégie descendante, ascendante et opportuniste
- Les techniques de lecture du logiciel
- 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)
- Introduction
- Les niveaux d'abstraction du logiciel
- l'abstraction des fonctionalités, des données et des processus
- Les buts et objectifs de la réingénierie du logiciel
- 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
- 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)
- Introduction
- Vue d'ensemble du contrôle de la qualité du logiciel (incluant le SWEBOK)
- 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
- Buts et objectifs de tests
- le but du test
- l'objectif de test
- 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
- Les mesures de tests
- Tests applicatifs et domaines d'applications spécifiques
- Survol des outils de test
- 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.