licence professionnelle web et applications mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf ·...

31
Licence Professionnelle Web et Applications Mobiles [email protected]

Upload: others

Post on 26-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Licence Professionnelle Web et Applications Mobiles

[email protected]

Page 2: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Sommaire

Notions de base de l’agilité du projet

Méthode agile XP (Extreme programming)

Planification et releases

Pair-programming

Tests de projet

Intégration continue

Qualité de projet

Modèle Mc Call

Page 3: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Prototype (maquette)

Prototype

L’embryon du produit initial : "Je saurai ce que je veux quand je le verrai."

Viser à livrer rapidement une maquette de la solution à développer avec un minimum de fonctions viables

Clarifier les besoins afin d’y arriver à une meilleure définition des spécifications fonctionnelles et techniques

Eviter l’écart entre les besoins réels, ceux exprimés et ceux interprétés

3

Page 4: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Effet Tunnel : deux types

Effet tunnel Point de départ : connu Point d’arrivée : inconnu

Pour les clients Pendant très longtemps, pas de communication avec

les membres de l’équipe de projet Grand risque d’avoir un résultat non satisfaisant !

Pour les développeurs De grandes phases de refactoring du code

4

Rester dans le

tunnel noir

Page 5: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Développement itératif : principes

Découpler le projet en plusieurs étapes d’une durée courte Les itérations

Pour chaque itération, une version (release) intermédiaire est requise.

Intégration des fonctionnalités au fur et à mesure

Le système s’enrichit progressivement.

Niveau de satisfaction des clients

Niveau de qualité requis

5

Page 6: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Développement itératif : avantages

La communication est de meilleure qualité.

La visibilité est meilleure.

La qualité est évaluée en continu.

Les risques sont détectés très tôt.

L’équipe prend confiance.

Les coûts sont contrôlés.

6

Page 7: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Releases fréquentes et le plus tôt possible

Regrouper les fonctionnalités les plus importantesdans la première release

7

Mois 1 2 3 4 5 6 7

Release 1

Release 1Release 2

$$$$$

$$$ $$$ $$$

$$

$$$

Page 8: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Principes de pair-programming

On s’entraide pour la réussite.

Une approche très puissante : brain storming

Principes de base Deux rôle: « conducteur » et « observateur »

Conducteur : celui qui programme

Observateur, celui qui réfléchit

A quoi réfléchit-t-il l’observateur ? Quelles sont les prochaines étapes (tâches)

Le programme actuel est-il cohérent avec la conception globale du projet ?

8

Page 9: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Astuces pour pair-programming

Utilisez-le pour les programmes à maintenir. Ne pas imposer les binômes. Change de binôme pour « rafraîchir ». Environnement de travail efficace. Production collective du programme. Ne

pas critiquer. Changez de rôle fréquemment.

9

Page 10: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Tests de projet

Pourquoi a-t-on besoin de tester les systèmes informatiques ?

Le système est conçu et réalisé par les humains erreurs humaines !

Etudes des cas où il y a eu des problèmes de tests catastrophe !

10

Page 11: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Cas 1 : Sonde Mariner 1 – 1962

11

Une erreur de trait d'union désastreuse !

130 millions dollars perdus !

Page 12: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Cas 2 : Therac-25 - 1985

12

Erreur informatique : bug logiciel

5 morts !

Page 13: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Cas 3 : Ariane 5 Vol 501 - 1996

13

Explosion à cause d'un dépassement d'entier dans les registres mémoire

370 millions dollars perdus !

Page 14: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Coûts des bugs

14

0

100

200

300

400

500

600

700

800

900

1000

Implémentation Intégration Recette Utilisation

Coût bug

Page 15: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Définition du test

Le test est l'exécution ou l'évaluation d'un système ou d'un composant, par des moyens automatiques ou manuels, pour vérifier qu'il répond à ses spécifications ou identifier les différences entre les résultats attendus et les résultats obtenus

Proverbe connu : Tester peut révéler la présence d'erreurs mais jamais leur absence.

15

Page 16: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Les notions de base

Objectif de test

comportement du système envisagé

Données de test

données en entrée au système de manière à déclencherl'objectif de test

Résultat de test

conséquence ou sortie de l'exécution du test

Case de test (test case)

Objectif + données + résultat de test

16

Page 17: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Test : méthodologies

Test boîte noire

Spécification (Cahier des charges) tester

Sans connaître l'implémentation technique

Test pouvant être prédéfini

Test boîte blanche

Tester en se basant sur le code source

Tester pour du code déjà écrit

17

Page 18: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Les types de tests

Test unitaire

Tester une unité de programme de façon isolée

Sans appel à d'autres fonctions

Test d'intégration

Tester le fonctionnement d'un ensemble de modules (via leur interface)

Test de système

D'un point de vue d'utilisateur

Conformité du produit fini

18

Page 19: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Intégration continue (CI)

TDD (Test Driven Development)

Réduire le risque d'intégration

Détecter les problèmes d'intégration le plus tôt possible

Le test immédiat des modifications

Avoir toujours une version stable et viable

19

Page 20: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Environnement de travail de CI

Un dépôt de source partagée

Logiciel de gestion de version : SVN, Git…

Tout le monde travaille sur la branche principale (trunk) –Intégration des modifications

Chaque développeur fait des commits régulièrement (au moins une fois par jour).

Des builds et des tests automatisés

Serveur de CI (ex. Hudson) : compilation et lancement des tests automatiques (à chaque commit)

20

Page 21: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Environnement de travail de CI

Logiciel de gestion des tâches

Une tâche = un cas (case)

Avant que la tâche soit finie, des tests automatisés correspondant sont déjà écrits par le Q.A.

Tâches finie par le développeur tests activés dans la test suite

Compétence du Q.A.

Prédéfinir les tests n'est pas toujours un travail facile : techniques de mock, complétude …

21

Page 22: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Pour faire un commit

Les conditions strictes Il faut que le code compile …

Il faut que tous les tests qui passaient avant passent encore maintenant

Commit pour une tâche

Lancer manuellement les tests correspondants

Qualité de code

○ Nettoyer les petits « bricolages »

○ Cohérence, convention de codage, design patterns…22

Page 23: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Pour faire un commit …

23

9H – 10H 10H – 11H30 11H30-12H

Test suite failed…12H-13h30 13H30-14H

Test suite failed…

BavardéPause café priseMangéFnac faitQuoi maintenant ?

Page 24: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Integration Test Suite

L'ensemble de tous les tests Une couverture entière

Des tests unitaires + des tests d'intégration entre les modules architecturaux

Des milliers de tests automatisés

Dont l'exécution nécessite des heures !

Bien que idéal, il est impossible de lancer cette test suite avant chaque commit…

24

Page 25: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Submit Test Suite

Un sous-ensemble de Integration Test Suite Le Q.A. choisit soigneusement des tests significatifs

et sensibles pour y mettre dans Submit Test Suite.

Normalement, ceci doit couvrir >95% des cas.

Son exécution doit être de quelques minutes

Il n'y aura plus bavard, pause café, fnac…

25

Page 26: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

A l'entreprise : Jour J du projet

26

Qui a cassé la submit test suite ?!!

Vu le dashboard, c'est lui !

AH Ô… mais ça passait chez moi…

Q A

Page 27: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Build de la nuit et régression

Serveur CI Lancement de Integration Test Suite

Tests échoués (cas) régression Priorité N° 1

27

T'es sur quoi là ?

Ben, je suis sur la tâche X, comme prévu.

Pourquoi tu ne résous pas le cas de régression ?!

Ah, je n'ai pas vérifié mes emails…

Page 28: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Esprit de qualité de projet

Principe de base

On dit ce que l'on fait et on fait ce que l'on a dit.

Une tâche parfois difficile dans un projet

On est souvent réticent à la mise en place d'une politique de qualité

Contrôles parfois perçus comme une surveillance du travail des membres de l'équipe…

Solution envisagée

La qualité est bien l'affaire de tous et toute l'équipe doit être impliquée

28

Page 29: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Assurance de qualité : démarche

PLAN : écrivez ce que vous faites (définissez qui, quoi, où, quand, comment assurer la qualité)

DO : faites ce que vous avez écrit

CHECK : vérifiez ce que vous avez fait est conforme à ce que vous avez écrit

ACT : validez

29

Page 30: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Modèle Mc Call : Exploitation

Conformité par rapport aux besoins (l’application répond-elle aux besoins des utilisateurs ?)

Fiabilité (l’application fonctionne-t-elle correctement dans tous les cas ?)

Efficacité (utilisation minimum des ressources, c’est-à-dire temps, mémoire …)

Intégrité (l’application est-elle bien protégée, le niveau de sécurité est-il suffisant ?)

Facilité d’emploi (mise en œuvre, prise en main)

30

Page 31: Licence Professionnelle Web et Applications Mobiles …tliu/ens/lpwam_gp/lpwam_gp2.pdf · 2016-12-09 · à développer avec un minimum de fonctions viables ... Le test est l'exécution

Modèle Mc Call : Evolution et Adaptabilité

Maintenabilité (est-il facile de localiser et de corriger les erreurs ?)

Souplesse (facilité de modification et d’évolution)

Testabilité (quels efforts à fournir pour tester le système ?)

Portabilité (le système est-il utilisable sur une autre machine ?)

Réutilisabilité (peut-on reprendre certaines parties du projet et les intégrer dans un autre logiciel ?)

Interopérabilité (peut-on interfacer l’application avec un autre système ?)

31