Cours Qualité et Tests Chapitre 2 : Modèles de cycle de Vie et Test

45
Cours Qualité et Tests Chapitre 2 : Modèles de cycle de Vie et Test Responsables du cours : Héla Hachicha Hatem Ben Sta Inès Ben Jaâfar Année Universitaire : 2012 - 2013

description

Cours Qualité et Tests Chapitre 2 : Modèles de cycle de Vie et Test. Responsables du cours : Héla Hachicha Hatem Ben Sta Inès Ben Jaâfar Année Universitaire : 2012 - 2013. Sommaire. Modèles de processus de développement du logiciel Les activités de ces processus. - PowerPoint PPT Presentation

Transcript of Cours Qualité et Tests Chapitre 2 : Modèles de cycle de Vie et Test

Page 1: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

Cours Qualité et Tests Chapitre 2 : Modèles de cycle de Vie

et Test

Responsables du cours : Héla HachichaHatem Ben Sta

Inès Ben Jaâfar

Année Universitaire : 2012 - 2013

Page 2: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

2

Sommaire• Modèles de processus de développement du

logiciel• Les activités de ces processus

Page 3: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

3

Les facteurs clés en génie logiciel

•Trois facteurs clés en génie logiciel▫ Personnel : nombre, habiletés, moral▫ Processus: procédures d’accomplissement de

travail▫ Technologie: plateforme et domaine

• Les bons processus aident le personnel à appliquer la technologie▫ De façon efficiente : sans perte de temps, ni

effort, ni ressources▫ De façon efficace : tout en obtenant le résultat

désiré

Page 4: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

4

Qu’est-ce qu’un processus?

•Un processus est une suite d’étapes impliquant des activités, des acteurs, des ressources, et des contraintes pour produire un résultat escompté

Page 5: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

5

Le processus de développementde logiciel

• Un ensemble structuré d’activités nécessaires pour développer un logiciel

• Un modèle de développement de logiciel est une représentation abstraite d’un processus

• De nombreux modèles différents mais pour tous :▫ Spécification : on définit ce que le système devra faire▫ Conception et implémentation : on définit l’organisation du

système et on l’implémente▫ Validation : on vérifie que le système fait bien ce que veut le

client▫ Evolution : on modifie le système en réponse aux

changements des besoins du client

Page 6: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

6

Modèles de processus de développement logiciel

•Un modèle de processus de développement logiciels met en relief :▫ les activités de travail à accomplir pour

produire le produit logiciel,▫ l'ordre dans lequel les activités de travail et

les tâches doivent être effectuées,▫ les façons dont les activités de travail et les

tâches peuvent être superposées et réitérées, et

▫ les produits de travail résultants, et les flux entre diverses activités de travail.

Page 7: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

7

Les modèles de processus

•Chaque élément d'un modèle de processus a▫ Inputs nécessaires▫ Procédures pour l'accomplissement du

processus▫ Produits de travail à produire▫ Critères d'acceptation pour les produits

des travaux de sortie

Page 8: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

8

Quelques terminologies

•Un processus est une description de la façon d'accomplir une activité de travail

• Une procédure est un ensemble d'étapes pour l'accomplissement des tâches d'un processus

• Une technique est la manière dont un individu accomplit une procédure

Un processus inclut les procédures pour conduire les activités de travail

Page 9: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

9

Un Exemple-- Procédures de réparation de défaut-

Correction d'un défaut signalés par les clients implique les procédures suivantes :

• 1. reproduire la défaillance• 2. trouver le défaut• 3. corriger l'erreur• 4. modifier la suite de tests• 5. accomplir le test de régression• 6. documenter le correctif• 7. mettre à jour d'autres produits de travail, si nécessaires• 8. vérifier le code modifié et les documents• 9. distribuer le code modifié• 10. clôturer le rapport de problème

Page 10: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

10

Problèmes techniques dans les projets logiciels

•Le développement de produits comprend :▫L'ingénierie du système▫ L'ingénierie des exigences logicielles▫ Le design du logiciel▫ L’implantation du logiciel▫ La vérification et la validation du logiciel▫ L'intégration et la validation du système

Page 11: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

11

Quelques terminologie

• La vérification du cycle de vie est le processus de détermination qu'un produit de travail satisfait aux conditions imposées par d'autres produits de travail et processus de travail▫ i.e., est-ce que le produit de travail est complété, correct et

cohérent avec les autres produits de travail et processus de travail ?

☛ Sommes-nous en train de faire le bon produit ?• La validation du cycle de vie est le processus de

détermination qu'un produit de travail satisfait aux besoins prévus de son utilisation lorsqu'il est utilisé par ses utilisateurs dans l'environnement prévu▫ i.e., est-ce que le produit de travail est approprié pour son

utilisation ?

☛ Est-ce que nous faisons le produit correctement ?

En pratique• souvent confondus, ou pris l'un pour l'autre• on parle de « V&V » (validation et vérification)

Page 12: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

12

Techniques de vérification

•Les techniques de vérification incluent :▫ La traçabilité,▫ les révisions,▫ le prototypage,▫ l’analyse, et▫ les tests fonctionnels.

Page 13: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

13

Techniques de validation

•Les techniques de validation incluent:▫Les révisons,▫le test du système,▫les tests opérationnels, et▫les démonstrations.

Page 14: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

14

Cycle de vie et Tests Différents modèles de développement logiciel :

• Le modèle en cascade• Modèle en V• Développement incrémental (prototypage)• Le modèle évolutif• Modèle orienté réutilisation• Le modèle en spirale• Méthode Agile : Extreme Programming (XP)• ...

Page 15: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

15

Cycle de vie - Modèle en cascade

Page 16: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

16

Caractéristiques du modèleen cascade

• Séquentiel• Importance du contrôle du processus

▫rétro-actions▫validation, vérification, tests

(date des années 70)(mais reste pertinent)

• Vérification : Le système est conforme à la spécification• Validation : Le système répond aux exigences du client Inspections et tests• Tests

• On exécute le système avec des cas de tests issus de la spécification de données réelles du système futur

Page 17: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

17

Les phases de test

•Tests unitaires▫Les composants sont testés

individuellement•Tests d’intégration

▫Test du système global•Tests de recette

▫Test avec des données clients pour vérifier que le système répond aux exigences du client

Page 18: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

18

Critique du modèle en cascade que peut-on lui reprocher ?

•Modèle trop séquentiel– dure trop longtemps

•Validation trop tardive : les tests sont prévus tardivement

et remise en question coûteuse des phases précédentes

•Sensibilité à l'arrivée de nouvelles exigences– refaire toutes les étapes

Page 19: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

19

Le modèle linéaire en Cascade avec des révisions de jalons

Page 20: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

20

Avantages de l’approche en Cascade

•Le modèle en Cascade nécessite :▫ Le développement des exigences avant le

design▫ Le design avant l'écriture du code▫ L’écriture du code avant de l'intégrer▫ Le test des programmes après leur

intégration▫ Les révisions de jalons

Page 21: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

21

Cycle de vie - modèle en V

Page 22: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

22

Caractéristiques du modèle en V

•Tâches effectuées en parallèle– horizontalement : préparation de la vérification▫Ex. : dès que la spécification fonctionnelle est faite

: (↑) plan de tests de qualification plan d'évaluation des performances documentation utilisateur

– verticalement : développement des modules▫Ex. : dès que la conception globale est validée :

(↑) conception détaillée des modules programmation et tests unitaires

Page 23: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

23

Cycle de vie - modèle en V

Page 24: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

24

Le modèle en VLe modèle en V illustre un problème du modèle en Cascade : Si l’on se base sur les tests en cascade seuls, les défauts créés en premier seront détectés en dernier lieu

Page 25: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

25

Les coûts relatifs à la correction d’un défaut logiciel

Page 26: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

26

Certaines réalités sur le développement logiciel• 1. Les exigences changent toujours en raison de:

▫ Changement des attentes des clients et des besoins des utilisateurs

▫ Analyse initiale inadéquate des exigences▫ Compréhension et aperçu deviennent plus clairs par

l'expérience▫ Évolution de la technologie▫ Évolution de la situation compétitive▫ Rotation du personnel : ingénierie, gestion, marketing,

clientèle

• 2. Le design n'est jamais correct dès le premier coup▫ Le design est un processus créatif, de résolution de

problèmes

• 3. Les démonstrations fréquentes de la progression et d'alerte précoce des problèmes sont souhaitables

Page 27: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

27

Développement itératif

• L'itération est le processus par lequel le résultat souhaité est développé par des cycles répétés

• En génie logiciel, une approche itérative permet la révision et l’ajout, étape par étape, des produits de travail

• Différents types de modèles itératifs supportent :▫ La révision et l’ajout des exigences▫ La révision et l’ajout de design▫ La révision et l’ajout du code▫ Le test d’une partie du système▫ et ainsi de suite

Page 28: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

28

Développement itératif

• Les objectifs de développement itératif sont les suivants :▫ fréquentes démonstrations de la progression▫ alerte précoce des problèmes▫ capacité d’intégrer les changements de façon élégante

• Quatre types de modèles de développement itératif :

▫1. Construction-incrémentale : code-test-demo itératif▫2. agile : satisfaire aux exigences opérationnelles

itérativement▫3. évolutif : le développement exploratoire▫4. spirale : la gestion des risques

Page 29: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

29

Le processus de construction-incrémentale

Page 30: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

30

L’approche de construction-incrémentale

•Le design est partitionné en une série de construits par priorité▫chaque construit ajoute des capacités à la

base existante par ordre de priorité▫ chaque construit produit une version

démontrables généralement sur une base hebdomadaire

•Les parties les plus critiques sont construites en premier▫ et, testées/démontrées le plus souvent

Page 31: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

31

Critères de partitionnement

•Critique-de-sûreté: caractéristiques de sûreté en premier lieu

• Critique-de-sécurité : les couches de sécurité en premier lieu

• Usage intensif des données: schéma des données en premier lieu

• Usage intensif de l'utilisateur : interface utilisateur en premier lieu

• Autres?

Page 32: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

32

Page 33: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

33

Techniques de validation

•Révision par les pairs• Test• Démonstration• Analyse

Page 34: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

34

Directives pour le développement incrémental des construits

• Construire une version "officielle" de démonstration chaque semaine▫ les développeurs peuvent réaliser des construits "sandbox" le

plus fréquemment• Construire des versions du produit en fonction de la priorité

des exigences▫ construire et tester les parties les plus critiques en premier

• Accomplir des révisions et des tests indépendants de chaque version

• Intégrer les changements des exigences dans des construits subséquents

• Reconcevoir si le travail à refaire dépasse 20% de l'effort lorsqu’on développe deux construits successifs du produit▫ Re-travail évolutif excessif : changement des exigences▫ Re-travail rétrospectif excessif : partitionnement mauvais de

design▫ Re-travail correctifs excessif : mauvais codage

Page 35: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

35

Exemple d’un construit incrémentalImplanter un compilateur

Page 36: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

36

Avantages de développement incrémental des construits

• Permettre des démonstrations précoces et continues de la progression

• Les composants construits en premier sont les plus testés• Possibilité d’intégrer certains changements aux exigences dans

des versions ultérieures• Fournir un avertissement précoce des problèmes

▫ calendrier, techniques, etc.• Permettre des compromis sur les caractéristiques et le calendrier

▫ pendant le développement▫ au moment de la livraison

• Autoriser une meilleure allocation des ressources en personnel que

la cascade• Fournir des livraisons par incrément aux clients, s’il est

souhaitable

Page 37: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

37

Livraison incrémentale des construits

• Livrer des versions au début nous permet d’obtenir très tôt un feedback des utilisateurs

• Permet de livrer le produit dans les délais▫ avec la plupart des fonctionnalités▫ avec une planification systématique pour les versions

ultérieures• Au moment de la livraison, il est préférable d'être

▫ à 100% complété avec 80% de la plupart des fonctionnalités importantes du produit

que d'être▫ à 80% complété avec 100% des fonctionnalités

et ne rien offrir

Page 38: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

38

Gérer le développement incrémental des construits

• La gestion est plus complexe que celle dans l'approche en cascade:

• Plus de « parties » à diverses étapes de développement

• Plus de communication et de coordination• Un système automatisé de contrôle de versions

est essentiel• Décision de façon au quelle la validation

incrémentale va être traitée

Page 39: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

39

Le modèle évolutif

•Utilisé dans la cas où il est (presque) impossible

•de spécifier à l’avance une première version stable des exigences

•Détails de chaque cycle:

Page 40: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

40

Directives pour le développement évolutif

•Utilisé lorsque les exigences ne peuvent pas être spécifiées à l'avance la plupart du temps

• Cycles évolutifs se termine lorsque▫ Le projet est converti en une approche

incrémentale▫ ou, le projet est annulé parce qu'il est

infaisable▫ ou, le produit est livré

• Utiliser une approche évolutive indique que le projet a un risque très élevé

Page 41: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

41

L’approche spirale

• Le processus de développement en spirale est un modèle de méta-niveau pour les modèles de développement itératif▫ Des activités antérieures sont revisitées, révisées, et raffinées

à chaque passage de la spirale• Chaque cycle d'un modèle en spirale comporte

quatre étapes:▫ Etape 1 - déterminer les objectifs, les alternatives, et des

contraintes▫ Étape 2 - identifier les risques pour chaque alternative et

choisir l'une des alternatives▫ Étape 3 - mettre en œuvre la solution (l’alternative) choisie▫ Étape 4 - évaluer les résultats et le plan pour le prochain cycle

de la spirale

• Les cycles continuent jusqu’à ce que les objectifs souhaités soient atteints (ou jusqu'à ce que le temps et les ressources sont utilisées)

Page 42: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

42

Un modèle évolutif en spirale

Page 43: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

43

Un modèle incrémental en spirale

Page 44: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

44

Leçons apprises• Un cadre du processus de développement est un modèle de

processus générique qui peut être ajusté et adapté pour répondre aux besoins des différents projets.

• Le processus de développement pour chaque projet logiciel doivent être conçus avec le même soin utilisé pour la conception du produit.

• Le design du processus se fait mieux en ajustant et en adaptant des modèles de processus de développement et des cadres de processus bien-connus , tout comme le design des produits qui se fait mieux en ajustant et en adaptant des styles architecturaux et des cadres architecturaux bien connus.

• Il ya plusieurs modèles de processus de développement de logiciels bien connus et largement utilisés, incluant le modèle en cascade, incrémental, évolutif, agile, et le modèle spiral.

• Il ya différentes façons d'obtenir les composants logiciels nécessaires; différentes façons pour obtenir les composants logiciels nécessitent un mécanisme différent de la planification, de mesure et de contrôle.

• Les phases de développement d'un projet logiciel peuvent être entrelacées et réitérées de diverses manières.

Page 45: Cours Qualité et Tests  Chapitre 2 : Modèles de cycle de  Vie et  Test

45

Leçons apprises

• Les processus de développement itératif offrent les avantages• suivants:

▫ L'intégration continue,▫ La vérification et la validation itérative d’un produit évolutif,▫ Des démonstrations fréquentes de la progression,▫ La détection précoce des défauts,▫ L'alerte précoce des problèmes de processus,▫ L’incorporation systématique d’un travail inévitable qui se

produit dans le développement du logiciel, et▫ La livraison anticipée des sous-ensembles de capacités (si

désiré).• Selon le processus de développement itératif utilisé, la durée

de l’itération s’étend de 1 jour à 1 mois.• Le prototypage est une technique pour acquérir des

connaissances, ce n'est pas un processus de développement.