![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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050313/5f75245bbb64073b393b2444/html5/thumbnails/31.jpg)
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