Tests Logiciels et Modèles de Développement
39 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quelle est la première étape du cycle de vie d'un logiciel?

  • Les tests
  • La programmation (correct)
  • La maintenance
  • L'analyse des besoins

Quel est le but principal des tests logiciels?

  • Modifier le code pour optimiser les performances
  • Vérifier que le logiciel répond aux spécifications (correct)
  • Documenter le processus de développement
  • Créer de nouvelles fonctionnalités

Selon la terminologie de l'IEEE, quel élément est à l'origine d'une panne dans le logiciel?

  • Le protocole
  • L'erreur
  • La faute (correct)
  • L'anomalie

Quel est un des aspects à considérer lors des tests d'un logiciel?

<p>L'identification d'erreurs (D)</p> Signup and view all the answers

Quelles sont les étapes d'interaction dans les tests logiciels?

<p>Essayer, analyser, modéliser (B)</p> Signup and view all the answers

Quelle étape suit immédiatement l'analyse des risques dans le modèle en spirale de Boehm ?

<p>Prototypage (A)</p> Signup and view all the answers

Dans le modèle itératif, quelle phase est répétée jusqu'à obtenir une validation satisfaisante ?

<p>Expression des besoins et validation (C)</p> Signup and view all the answers

Quel est l'objectif principal de la phase de prototypage dans le modèle en spirale de Boehm ?

<p>Définir un prototype fonctionnel (C)</p> Signup and view all the answers

Quel élément n'est pas typiquement associé au modèle en spirale de Boehm ?

<p>Documentation exhaustive (B)</p> Signup and view all the answers

Quelle description correspond à la première phase du modèle en spirale ?

<p>Identification des risques potentiels (C)</p> Signup and view all the answers

Qu'est-ce que la maintenance adaptative ?

<p>Ajout de petites fonctionnalités sans modifier l'architecture. (C)</p> Signup and view all the answers

Quel document décrit les obligations d'un prestataire dans un contrat ?

<p>Cahier des charges (A)</p> Signup and view all the answers

Les besoins non fonctionnels dans un cahier des charges se réfèrent aux :

<p>Contraintes opérationnelles imposées au logiciel. (C)</p> Signup and view all the answers

Quelle caractéristique décrit la maintenance perfective ?

<p>Ajout de fonctionnalités qui modifient profondément l'architecture. (D)</p> Signup and view all the answers

Quel élément n'est pas typiquement inclus dans un cahier des charges ?

<p>Besoins en ressources humaines (D)</p> Signup and view all the answers

Quelle propriété garantit que le logiciel fonctionne comme prévu et n'a pas de bugs?

<p>Fonctionnalité (B)</p> Signup and view all the answers

Quels types de tests sont effectués lorsque le client teste le produit sur le site de production?

<p>Tests Bêta (A)</p> Signup and view all the answers

Quel type de maintenance est centré sur la correction des anomalies signalées par les utilisateurs?

<p>Maintenance corrective (B)</p> Signup and view all the answers

Quelle étape est cruciale pour rendre le logiciel opérationnel chez le client?

<p>Installation (D)</p> Signup and view all the answers

Quel type de test implique la comparaison des résultats avec les versions précédentes?

<p>Tests de régression (B)</p> Signup and view all the answers

Quelle propriété se concentre sur l'ergonomie d'utilisation d'un logiciel?

<p>Utilisabilité (A)</p> Signup and view all the answers

Quel test est soumis à une vérification par des développeurs sur des composants individuels?

<p>Tests unitaires (A)</p> Signup and view all the answers

Quel aspect est primordial pour assurer la continuité de service d'un logiciel?

<p>Maintenabilité (D)</p> Signup and view all the answers

Quel est l'objectif principal de la méthode Scrum dans le développement logiciel?

<p>Maximiser la productivité à travers une approche agile (C)</p> Signup and view all the answers

Parmi les outils suivants, lequel est utilisé pour l'analyse dynamique en génie logiciel?

<p>OllyDbg (A)</p> Signup and view all the answers

Quel aspect ne fait pas partie des fonctionnalités principales de Scrum?

<p>Le contrôle des coûts (B)</p> Signup and view all the answers

Dans l'analyse boîte blanche, quelle méthode est utilisée pour étudier le comportement du programme?

<p>Fuzzing (A)</p> Signup and view all the answers

Quels sont les composants fondamentaux de Scrum?

<p>Rôles, processus, artéfacts (A)</p> Signup and view all the answers

Quel est le rôle traditionnellement associé au Scrum Master?

<p>Chef de projet (A)</p> Signup and view all the answers

Quel type d'analyse ne nécessite pas d'accès au programme binaire?

<p>Analyse boîte noire (C)</p> Signup and view all the answers

Quel est l'un des avantages d'utiliser des algorithmes cryptographiques dans le domaine de la sécurité?

<p>Assurer la confidentialité des informations (B)</p> Signup and view all the answers

Quel est le rôle principal du Product Backlog?

<p>Lister les exigences pour un système sous forme hiérarchisée (C)</p> Signup and view all the answers

Qui est responsable de la création et de la gestion du Sprint Backlog?

<p>Les membres de l'équipe sont responsables de sa création (A)</p> Signup and view all the answers

Quelle caractéristique s'applique au Product Backlog?

<p>Il définit la vitesse de l’équipe dans le sprint (A)</p> Signup and view all the answers

Quel est un critère pour les tâches dans le Sprint Backlog?

<p>Si une tâche nécessite plus de 16 heures, elle doit être décomposée (A)</p> Signup and view all the answers

Quel type de tableau est utilisé pour suivre l’avancement du travail dans un sprint?

<p>Un Burn down Chart (C)</p> Signup and view all the answers

Quel élément n'est pas inclus dans le Product Backlog?

<p>La liste des réunions de l’équipe (C)</p> Signup and view all the answers

Quelle pratique doit être suivie lors de l'utilisation du Sprint Backlog?

<p>Les membres de l'équipe doivent mettre à jour le backlog quotidiennement (C)</p> Signup and view all the answers

Quand le Product Backlog est-il généralement créé?

<p>Lors de la réunion de planification du sprint (A)</p> Signup and view all the answers

Flashcards

Programmation

L'étape de la programmation consiste à traduire les données et les algorithmes en un langage de programmation, créant ainsi des modules de code.

Dossier produit

Le dossier produit comprend les documents de réalisation, qui détaillent la construction du logiciel.

Les tests

Les tests logiciels servent à vérifier le fonctionnement du programme en simulant des situations réelles pour identifier des erreurs.

Faute, erreur, anomalie, panne

Une faute est un défaut dans le code source, entraînant une erreur qui se manifeste par une anomalie dans le logiciel. Une anomalie peut provoquer une panne.

Signup and view all the flashcards

Que tester ?

Les tests logiciels visent à identifier des erreurs en vérifiant que le logiciel répond correctement aux besoins définis.

Signup and view all the flashcards

Tests de logiciel

Essayer le logiciel sur des données d'exemple pour s'assurer qu'il fonctionne correctement.

Signup and view all the flashcards

Tests unitaires

Faire tester les parties du logiciel par leurs développeurs.

Signup and view all the flashcards

Tests d'intégration

Tester pendant l'intégration des différentes parties du logiciel.

Signup and view all the flashcards

Tests de validation

Tester pour l'acceptation par l'acheteur du logiciel.

Signup and view all the flashcards

Tests système

Tester dans un environnement proche de l'environnement de production.

Signup and view all the flashcards

Tests Alpha

Faire tester par le client sur le site de développement.

Signup and view all the flashcards

Tests Bêta

Faire tester par le client sur le site de production.

Signup and view all the flashcards

Tests de régression

Enregistrer les résultats des tests et les comparer à ceux des anciennes versions pour vérifier si la nouvelle n’en a pas dégradé d’autres.

Signup and view all the flashcards

Maintenance adaptative

Ce type de maintenance est pour des modifications mineures qui ne changent pas la structure du logiciel. Exemples : adaptation à une nouvelle monnaie, mise à jour de taux de TVA etc.

Signup and view all the flashcards

Maintenance perfective (évolutive)

Ce type de maintenance implique des changements importants qui modifient l'architecture du logiciel et ajoutent de nouvelles fonctionnalités. Exemples : changement de système d'exploitation, mise à jour du système de gestion de base de données.

Signup and view all the flashcards

Cahier des charges

Ce document liste les obligations à respecter pour le développement d'un logiciel. Il est utilisé dans un contrat entre le client et le développeur.

Signup and view all the flashcards

Besoins fonctionnels

Il décrit les services que le logiciel doit offrir à l'utilisateur. Exemples : fonctionnalités, interactions, résultats attendus..

Signup and view all the flashcards

Besoins non fonctionnels

Ils décrivent les contraintes techniques et opérationnelles auxquelles le logiciel doit répondre. Exemples : temps de réponse, sécurité, performances.

Signup and view all the flashcards

Analyse boîte noire

Une analyse qui ne permet pas d'accéder au code source du programme, généralement utilisée pour identifier des failles de sécurité par des méthodes passives ou actives.

Signup and view all the flashcards

Analyse boîte blanche

Une analyse qui permet d'accéder au code source du programme, utilisée pour comprendre son fonctionnement et identifier des erreurs.

Signup and view all the flashcards

Reverse Engineering

Le processus de déconstruction d'un logiciel, d'un système ou d'un appareil pour en comprendre le fonctionnement et la structure.

Signup and view all the flashcards

Scrum

Une méthodologie de développement logiciel agile et itératif qui se concentre sur la collaboration d'équipe, la livraison incrémentielle et l'adaptation aux changements.

Signup and view all the flashcards

Scrum Master

Le Scrum Master est responsable de guider l'équipe Scrum et de garantir que les principes Scrum sont appliqués.

Signup and view all the flashcards

Équipe Scrum

Une équipe autonome, multifonctionnelle composée de développeurs, d'un Scrum Master et d'un Product Owner, responsable de la réalisation de projets.

Signup and view all the flashcards

Product Owner

Personnes qui possèdent la vision du produit. Elles sont responsables de la définition et de la priorisation du backlog du produit et de la communication avec les parties prenantes.

Signup and view all the flashcards

Backlog du produit

Une liste ordonnée des fonctionnalités, des exigences et des améliorations à développer pour un produit.

Signup and view all the flashcards

Modèle en spirale de Boehm

Le modèle en spirale est un modèle itératif et incrémental qui implique une série de cycles, chaque cycle comprenant des phases de planification, d'analyse des risques, d'ingénierie (analyse, conception, codage) et d'évaluation. Les cycles sont organisés en spirale, passant par des niveaux de détails croissants et de risques diminués.

Signup and view all the flashcards

Analyse des risques (modèle en spirale)

Chaque cycle du modèle en spirale commence par une phase d'analyse des risques, qui identifie et évalue les risques potentiels du projet. Ensuite, le cycle se poursuit avec une phase de planification basée sur les risques identifiés.

Signup and view all the flashcards

Phase d'ingénierie (modèle en spirale)

Après la planification, le cycle du modèle en spirale passe par une phase d'ingénierie, qui comprend l'analyse, la conception et le codage du logiciel. Cette phase est suivie d'une phase d'évaluation, où le logiciel est testé et revu.

Signup and view all the flashcards

Gestion des risques (modèle en spirale)

Le modèle en spirale est conçu pour gérer les risques de façon progressive. Chaque cycle du modèle vise à réduire les risques identifiés dans les cycles précédents, améliorant la qualité du logiciel et réduisant les coûts.

Signup and view all the flashcards

Modèle itératif

Le modèle itératif est une approche de développement logiciel qui consiste à répéter toutes les étapes du cycle de vie, de l'expression des besoins à la validation, jusqu'à ce que la validation soit satisfaisante. Chaque cycle peut être considéré comme une mini-version du logiciel, qui est ensuite améliorée et étendue au cycle suivant.

Signup and view all the flashcards

Product Backlog

Liste hiérarchisée des exigences pour un système, gérée par le Product Owner. Elle est généralement créée lors de la réunion de planification du sprint et peut être modifiée avant chaque réunion.

Signup and view all the flashcards

Sprint Backlog

Un sous-ensemble du Product Backlog, définissant le travail d'un sprint. Il est créé et mis à jour par l'équipe, avec un maximum de 300 tâches.

Signup and view all the flashcards

Burn down Chart

Un graphique qui représente la quantité de travail restant à effectuer dans un sprint, mis à jour quotidiennement.

Signup and view all the flashcards

Vitesse de l'équipe

Représente la quantité de travail que l'équipe peut gérer dans un sprint.

Signup and view all the flashcards

Daily Scrum

L'équipe Scrum se réunit quotidiennement pour discuter de l'avancement du sprint et des obstacles rencontrés.

Signup and view all the flashcards

Sprint Planning Meeting

Réunion qui marque le début d'un sprint, où l'équipe sélectionne les tâches du Sprint Backlog.

Signup and view all the flashcards

Sprint Review Meeting

Réunion qui marque la fin d'un sprint, où l'équipe présente le travail réalisé et planifie le prochain sprint.

Signup and view all the flashcards

Sprint Retrospective Meeting

Réunion qui permet à l'équipe de réfléchir à son processus et d'identifier des améliorations.

Signup and view all the flashcards

Study Notes

Introduction au SDLC

  • Le SDLC (Software Development Life Cycle) est le cycle de vie du développement de logiciel.
  • Il s'agit d'un processus itératif organisé qui permet de développer des logiciels et de produits informatiques.
  • Diverses méthodes existent pour structurer le SDLC.

Fondements des Systèmes d'Information

  • Un système est un ensemble d'éléments en interaction dynamique organisés autour d'un but.
  • Un SI (Système d'Information) est une représentation possible de n'importe quel système, incluant les systèmes humains.
  • Un système informatisé est partie intégrante d'un système d'information (SI), mais ne représente pas l'ensemble.
  • Les SI sont constitués par un ensemble de ressources (matériel, logiciel, personnel, données, procédures)
  • Ces ressources permettent l'acquisition, le traitement et le stockage d'informations, dans les organisations.
  • Les systèmes reçoivent des données d'entrée de l'environnement ou d'autres systèmes, qui subissent des transformations en interne.
  • Les sorties sont ensuite envoyées à d'autres systèmes ou à l'environnement.
  • Les systèmes informatiques effectuent des transformations sur les entrées, ce qui caractérise leur fonction.

Exemples de SI

  • Réseau de guichets automatiques de banque.
  • Applications de gestion de stocks dans un supermarché.
  • Site Web de vente en ligne.
  • Bibliothèques numériques.

Fonctions d'un Système d'Information (SI)

  • Collecte et saisie : toutes informations pertinentes pour améliorer la performance de l'organisation.
  • Traitement : effectuer des transformations sur les entrées.
  • Mémorisation/Stockage : archivage et structuration judicieuses des informations.
  • Communication/Diffusion : transmission d'informations traitées.

Système d'Information Automatisé

  • Un système d'information automatisé (SIA) combine des moyens et méthodes pour le traitement automatisé des données.
  • Le SIA se base sur la technologie informatique.
  • Les SIA ont leurs composantes dans les logiciels.
  • Le rôle d'un système d'information peut être stratégique, tactique et opérationnel.
  • Les SIA constituent un outil de compétitivité.
  • Les SIA sont des catalyseurs de l'innovation.
  • Les SIA favorisent la prise de décision.

La Crise du Logiciel

  • Années 50 : Petits programmes sur mesure, le client étant souvent le développeur. Naissance de la profession de programmeur.
  • Années 60-70 : Premiers "gros logiciels" commercialisés, avec des produits logiciels vendus à plusieurs milliers de clients. Apparition des bases de données et des logiciels multi-utilisateurs en temps réel.
  • Années 80 : L'industrie du logiciel se développe, le coût des ordinateurs diminue et les réseaux/systèmes répartis apparaissent.
  • Exemples de crises : Mission Venus (erreur de virgule, déplacement erroné de 5.000.000 km). La station Mir (manque d'électricité). Perte de satellites (erreur de programmation). Y2K. Système de réservation de places Socrate à la SNCF. Échec du premier lancement d'Ariane V.
  • Causes : Erreurs de programmation (simples erreurs de code à des erreurs systémiques). Manque d'efficacité des processus de développement.
  • Importance de la méthodologie de développement : éviter les problèmes.

Le Génie Logiciel (GL)

  • Evolution: Comparaisons des processus de développement (logiciels, génie civil, mécanique...). Conférences de l'OTAN. Recherche de modèles. Développement d'outils, méthodes et environnements. Améliorations (Réutilisabilité, interopérabilité).
  • Changement de terminologie: Evolution des rôles et des titres professionnels (codeur, programmeur, ingénieur logiciel).
  • Définitions: Application pratique de la connaissance scientifique pour concevoir, développer, déployer, gérer et entretenir des logiciels. Résoudre des problèmes à l'aide de l'ordinateur avec des programmes et des documents.

Spécificités du Logiciel

  • Logiciel = immatériel. Ses performances ne dépendent pas d'un support matériel physique.
  • Logiciels = objet technique complexe. Ils fonctionnent ou ne fonctionnent pas, ne s'usent pas. La modification est une cause de détérioration.
  • Logiciels = Cycle de production complexe : production unitaire, difficultée d'automatisation. Ils rappellent le génie civil.
  • Raisons de vieillissement d'un logiciel : Maintenance mal gérée (Bug fixes), Érosion architecturale, inflexibilité, documentation insuffisante, duplication de codes, manque de modularité.

Qualités du Logiciel

  • Validité : Capacité du logiciel à remplir ses fonctions selon le cahier des charges.
  • Fiabilité : Capacité du logiciel à fonctionner dans des situations anormales.
  • Extensibilité : Facilité avec laquelle on peut adapter ou étendre les fonctionnalités du logiciel.
  • Réutilisabilité : Possibilité de réutiliser des parties du logiciel dans d'autres applications.
  • Compatibilité : Capacité du logiciel à interagir avec d'autres logiciels.
  • Efficacité : Consommation optimale des ressources.
  • Portabilité : Transfert du logiciel sur différents environnements matériels et logiciels.
  • Vérifiabilité : Facilité de tester le produit.
  • Intégrité : Cohérence des données et du code.
  • Facilité d'emploi : Expérience utilisateur positive, facile à utiliser et à corriger les erreurs.

Programmation vs. Génie Logiciel

  • Programmation = Activité individuelle.
  • Génie Logiciel = Activité d'équipe (plus que le simple codage : 10% ou 30% du coût total).
  • Gestion de projets, méthodologie, qualité, et gestion des problèmes.

Objectifs du Génie Logiciel (GL)

  • Coût (Coût Qualité Fonctionnalités Délai / CQFD).
  • Qualité.
  • Fonctionnalités.
  • Délais : répondent aux besoins.

Démarche du Génie Logiciel

  • Principes : rigueur, séparation des tâches.
  • Techniques : outils, structures.
  • Méthodes : processus.
  • Outils : supports et logiciels d'aide.

Rigueur et Formalisme

  • Implique la créativité, la combinaison de rigueur et de créativité.
  • Le formalisme est crucial pour la maîtrise de la complexité : on divise les problèmes pour les traiter.
  • Ceci permet de rationaliser les efforts de résolution.

Modularité

  • Structuration d'un système complexe en modules.
  • Accès aux fonctions.
  • Amélioration de la maintenance avec séparation des problèmes.

Abstraction

  • Identifier les aspects importants d'un phénomène en ignorant les détails.
  • Accroître la compréhension de l'ensemble et de l'architecture.
  • Simplification et isolation des composantes.

Anticipation du Changement

  • Prévoir et gérer les modifications futures du logiciel.
  • Possibilité au logiciel d'évoluer à moindre coût.

Généricité

  • Trouver une solution générique pour plusieurs problèmes spécifiques.
  • Réutilisation plus facile.

Construction Incrémentale

  • Développement du logiciel par étapes successives.
  • Permet d'atteindre le résultat souhaité graduellement.

Cycle de Vie d'un Logiciel (C.V.L.)

  • Succession d’étapes.
  • Début à la fin de l’exploitation dans une organisation.
  • Contrôle des étapes pour garantir la qualité du produit.

Notions de Cycle de Vie

  • Définition du cycle de vie comme un processus complet.
  • Les phases de création, distribution et disparition d'un produit.
  • Maîtrise des risques, des délais et coûts.
  • Qualité d'un système.
  • Applicabilité aux différents types de produits.

Phases du Cycle de Vie d'un Logiciel

  • Étude de faisabilité : analyse des besoins, caractéristiques de l’application, les ressources techniques, les contraintes.
  • Spécification globale (fonctionnelle) : description de ce que le programme doit faire.
  • Conception architecturale : définir l'architecture globale.
  • Conception détaillée : décrire les données et algorithmes pour chaque composant.
  • Programmation : codage des composants ou modules.
  • Tests : Essais du logiciel pour les erreurs.
  • Livraison : fournir le logiciel au client (installation, formation et assistance).
  • Maintenance : tenir le logiciel à jour et améliorer (corrective, adaptative, perfective).

Documents courants

  • Cahier des charges : spécification des besoins.
  • Calendrier du projet : planification des activités et des ressources.
  • Plan de test : processus et procédure de tests.
  • Plan d'assurance qualité : garantir la qualité du logiciel.
  • Manuel utilisateur : mode d'emploi.
  • Code source : code complet du logiciel.
  • Rapport de test : résultat et interprétation.
  • Rapport de défauts : problèmes rencontrés, actions de correction.

Le modèle en cascade

  • Chaque phase est achevée avant la suivante.
  • Les tests sont souvent repoussés à la fin.
  • Limité aux petits projets.

Modèles itératifs et incrémentaux

  • Répétition des étapes pour garantir de bonnes conditions et des ajustements en cours de développement.
  • Possibilité d'ajouts et de modifications des besoins en cours de développement.

Le modèle en spirale de Boehm

  • Approche itérative et incrémentale qui prend en compte les risques.
  • Analyse, évaluation et maîtrise des risques dès le début.
  • Prototypage.

Les méthodes Agile

  • Approche itérative et incrémentale.
  • Importance du client et des retours en temps réel.
  • Valeurs comme la rapidité, le changement et l’adaptabilité.
  • Méthodes comme XP, Scrum, Kanban.

Le Prototypage

  • Développement d'une version initiale.
  • Les tests avec le client sont possibles dès le début.
  • Idéal pour les applications complexes.

Rapid Application Development (RAD)

  • Méthode itérative qui accorde priorité à l'identification des besoins.
  • Prototypage jetable : prototype réutilisé pour tester les fonctionnalités.

Processus Unifié Rationnel (RUP)

  • Modèle itératif et incrémental.
  • Phases : Inception (études), Elaboration (architecture), Construction (développement) et Transition (livraison).
  • Modèle de gestion des processus avec des spécifications précises.

Méthode de Programmation Extrême (XP)

  • Approche agile mise sur la communication et les retours du client.
  • Programmation par paires, tests unitaires, intégration continue, simplicité de conception.

Planification de projet

  • Diagrammes de Gantt et PERT.
  • Déterminer les tâches, l'ordre des tâches et les ressources.

Méthodes de conception

  • Méthode d'analyse et conception : Merise, OMT, Booch, OOSE, et SADT. - Techniques pour la qualité : 5S, Six Sigma, AMDEC, MRP et Brainstorming.
  • Techniques de gestion et d'évaluation des coûts et des risques.

Reverse Engineering

  • Extraction de connaissances à partir de logiciels existants ou d'autres produits.
  • Analyse logique, cassage de code, solution aux problèmes technologiques et d’efficacité.
  • Démarche d’évaluation de la qualité et de la robustesse des logiciels et en cas de problèmes d’interopérabilité.

Outils de Reverse Engineering

  • Outils comme OllyDbg, IDA Pro, Hex-Rays, JaD, Javasnoop, Tcpdump, Reko, FIDDLER.

Scrum

  • Utilisation de sprint, des rôles dans l’équipe.
  • Procédure de résolution de problèmes.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Genie Logiciel 2021-2022 PDF

Description

Ce quiz aborde les concepts fondamentaux des tests logiciels et des modèles de développement, y compris le modèle en spirale de Boehm. Testez vos connaissances sur les étapes du cycle de vie d'un logiciel et les caractéristiques de la maintenance. Explorez les notions de risques, de prototypage et d'exigences non fonctionnelles.

More Like This

Software Testing Essentials Quiz
10 questions
Testing in Software Development
12 questions
Software Testing II Flashcards
7 questions
Software Testing Fundamentals
48 questions
Use Quizgecko on...
Browser
Browser