Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Génie logiciel et Vérification et validation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Revue Quelle est la différence entre les tests boîte blanche et noir? Quest-ce que vous donne les outils de couverture?
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Synopsis Génie logiciel (Quest-ce que cest?) Cycle de vie du logiciel Vérification et validation Les tests revisités
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Génie logiciel La discipline du génie logiciel est née quand la demande pour les produits logiciels a augmentée Les premiers programmes ont été écrits par des programmeurs travaillant seuls; pour servir leurs propre utilisations Ces programmes étaient petits et étaient produit et utilisés par des experts La flexibilité rendue possible par le logiciel a rapidement créée une grande demande et le nombre de projets et la grosseur des logiciels ont grandis de façon exponentielle
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Génie logiciel La production de logiciels nest alors plus une affaire pour les programmeurs isolés mais une approche déquipes Avec laugmentation de la grosseur et complexité des projets logiciels, les équipes ont aussi grandis vitement Un nouveau besoin fait surface pour lamélioration de la gestion de ces projets Plusieurs délais coûteux, le déclin de la qualité des produits logiciels et les échecs spectaculaires de certains projets dans les années 1960, ont créés ce qui sest appelé la crise logiciel
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Génie logiciel Le génie logiciel: est un label qui est normalement donné à lensemble des pratiques courantes (meilleurs) pour le développement du logiciel Shaw and Garland 1996 Le terme génie logiciel a été créé comme expression durant une conférence de lOTAN en 1968 La conférence fut créé pour adresser les problèmes amenés par la crise logiciel
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Génie logiciel Les disciplines en ingénierie partage cinq traits communs: Créent des solutions économiques – aspect monétaire Génèrent des solutions à des problèmes pratiques – solutions qui veulent dire quelque chose à la population en générale (client) Appliquent les connaissances scientifiques – science, math, analyse et design Construisent des choses tangibles – produits Travaillent au service de lhumanité – pas seulement le client
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Cycle de vie du logiciel La qualité du logiciel dépend des activités de production: Analyse – Est-ce que mon programme va rencontrer les besoins de lutilisateur (client)? Design – Est-ce que mon design est efficace? Est-ce que jai fait une bonne décomposition et créé une hiérarchie qui est lisible hiérarchie de modules (haut niveau) et fonctions (bas niveau)? Aie-je choisis le bon design Implémentation – Est-ce que le code est solide, bien documenté et complet? Tests – Est-ce que mes tests sont suffisants? Maintenance – Changements avec effets secondaires
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Cycle de vie du logiciel Les 5 phases que nous venons de voir sont souvent représentés graphiquement comme une chute deau; donc le modèle de la chute: Analyse Design Implémentation Tests Maintenance
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Vérification et Validation Il y a des tests qui nont rien à avoir avec le code!… vraiment il y en a. Quand vous vous faite lextraction des requis dans votre analyse du problème, vous devez tester vos requis avec les utilisateurs Ce genre de test sappel Validation La validation peut se produire à plus dun stage du cycle de vie du logiciel
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Vérification et Validation Quand vous avez fini avec votre design, vous voulez vous assurer que vous avez pris tout les requis de lanalyse pour faire le design. Donc vous testez la transition entre les phases du cycle de vie Ceci sapplique à tout le cycle de vie: Chaque fois que vous passez dune phase à une autre, vous faites ce genre de tests pour être sûr que vous navez rien oubliés, et Que chaque phase est complète et est en accord avec la phase précédente Ces tests de transition entre les phases sappellent Vérification
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Vérification et Validation La vérification et la validation (V&V) sont deux activités qui servent à identifier des erreurs potentiels avant darriver au codage et au tests La justification pour exécuter la V&V à touts les stages dun projet, est pour réduire limpacte que des changements pourraient avoir tard dans le cycle de vie La correction dune erreur à la fin dun projet peut demander que nous recommencions une partie de lanalyse!
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Vérification et Validation La vérification assure que chaque phase subséquente ne dévie pas des requis du projet Si une déviation doit se produire pour que le produit fonctionne, alors le processus de vérification doit identifier et tracer cette déviation La vérification assure que le produit est construit pour rencontrer les requis - construit un bon produit
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Vérification et Validation La première chose que vous faites sur un projet est de vous assurer que vous avez le bon ensemble de requis La validation se penche sur construire le bon produit Parfois vous pouvez avoir à construire un prototype ou échafaudage au début dun projet pour faire une validation avec votre client et obtenir des commentaires
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Les tests revisités Léchafaudage que vous construisez pour le prototype peut aussi être utilisé pour des buts de tests Dans la programmation structurée, on utilise une approche de haut-en-bas pour décomposer nos problèmes durant la phase de design Quand on implémente nos designs, nous avons deux choix: implémentation de bas-en-haut implémentation de haut-en-bas
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Les tests revisités Dans limplémentation de bas-en-haut, il est souvent nécessaire de donner des entrées et de recevoir des sorties dun module ou une fonction pour quelle fonctionne Dans ces cas, un pilote peut être utilisé pour simuler les E/S tout comme si la fonction faisait partie dun vrai système. Les pilotes dans les échafaudages peuvent être seulement quelques lignes de code, mais il fournissent tout lenvironnement nécessaire pour que la fonction plus basse fonctionne normalement
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Les tests revisités Dans une approche de haut-en-bas, il peut devenir nécessaire pour les modules ou fonctions supérieurs dans la hiérarchie dobtenir des résultats des fonctions inférieurs Quand ces fonctions ne sont pas disponibles, nous utilisons un substitut dans léchafaudage pour générer les données nécessaires pour la fonction supérieure
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Les tests revisités Plusieurs projets utilisent les deux approches (haut-en-bas et bas-en-haut) en même temps. Dans ces cas, léchafaudage va contenir des pilotes et des substituts Les pilotes et substituts sont de petites fonctions qui forment l échafaudage jusquà ce que le système soit prêt à être intégré Les tests dintégration peuvent utiliser les échafaudages pour faire des tests incrémentaux quand nous intégrons les fonctions une à la fois
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Les tests revisités Les tests dacceptation forment la dernière phase de la validation et sont normalement conduits en avant du client La plus part des producteurs de logiciels ont un département dassurance de la qualité qui représente le client quand il nest pas là Pour le logiciel commercial, le département dAQ est le client
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Quiz Time Quelles sont les cinq phases du cycle de vie du logiciel? Quelle est la différence entre la validation et la vérification? Quelle est la différence entre un pilote et un substitut dans léchafaudage de test?