From 3998722c7fc1c102f982ed883ae9bb599a4378a8 Mon Sep 17 00:00:00 2001 From: William Petit Date: Tue, 20 Feb 2018 09:03:38 +0100 Subject: [PATCH] Logomotion: Base des slides pour la formation sur la qualification --- .../img/pyramidetestsapplicatifs.png | Bin 0 -> 24811 bytes .../ressources/qualification.epgz | Bin 0 -> 11855 bytes qualification/presentation/slides.md | 266 ++++++++++++++++++ 3 files changed, 266 insertions(+) create mode 100644 qualification/presentation/img/pyramidetestsapplicatifs.png create mode 100644 qualification/presentation/ressources/qualification.epgz create mode 100644 qualification/presentation/slides.md diff --git a/qualification/presentation/img/pyramidetestsapplicatifs.png b/qualification/presentation/img/pyramidetestsapplicatifs.png new file mode 100644 index 0000000000000000000000000000000000000000..cf818a05a3892fa3d2010be09d30049f7b306471 GIT binary patch literal 24811 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 literal 0 HcmV?d00001 diff --git a/qualification/presentation/ressources/qualification.epgz b/qualification/presentation/ressources/qualification.epgz new file mode 100644 index 0000000000000000000000000000000000000000..4fdaf5117521315d5c5484fdb75233a824bee695 GIT binary patch literal 11855 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 JRVx5g004FEcy9mz literal 0 HcmV?d00001 diff --git a/qualification/presentation/slides.md b/qualification/presentation/slides.md new file mode 100644 index 0000000..ac09541 --- /dev/null +++ b/qualification/presentation/slides.md @@ -0,0 +1,266 @@ + + +# Qualification et intégration continue + +William Petit - S.C.O.P. Cadoles + +--- + + +## Qu'est ce que la qualification ? + +--- + +## Qu'est ce que l'intégration continue ? + +--- + +## Les tests applicatifs + +Les tests applicatifs ont pour objectif de valider le bon fonctionnement de l'application d'un point de vue métier, c'est à dire de vérifier que celle ci répond aux attentes et aux contraintes du client d'un point de vue fonctionnel. + +--- + +## La pyramide des tests applicatifs + +![center 70%](./img/pyramidetestsapplicatifs.png) + +--- + +## Tests unitaires + +--- + +## Objectifs + +Tester le bon fonctionnement des plus petites unités logiques/fonctionnelles de l'application: les fonctions/méthodes d'objets. + +--- + +## Cycle de vie + +1. Définir le comportement attendu de la classe/fonction à implémenter. +2. Créer le cas de test validant ce comportement. +3. Exécuter le test. Il ne devrait pas être passant, l'implémentation étant incomplète à ce stade. +4. Implémenter la fonction/classe pour que le test soit passant. + +--- + +## Caractéristiques clés + +- Ils sont nombreux. +- Ils sont mis en place dès le début de l'implémentation, voir avant. +- Ils sont rapides à exécuter. +- Ils permettent de détecter rapidement les régressions. +- Ils permettent de rassurer le développeur qui doit apporter des évolutions à une base de code existante. +- Ils s'exécutent en continu sur le poste du développeur et à chaque changement sur le serveur de gestion des sources. +- Ils ne devraient pas nécessiter de dépendances externes. + +--- + +## Exemple: Tests unitaires en Javascript (Mocha) + +TODO + +--- + +## Exemple: Tests unitaires en PHP (Symfony3) + +TODO + +--- + +## Exercice: Tests unitaires d'une fonction de validation d'un numéro de carte bancaire en Javascript + +Soit un numéro de carte bancaire donné, implémenter un test pour la fonction validant le code de celle ci PUIS implémenter la fonction qui permet de valider ce code. + +**Ressources** + +- [La formule de Luhn](https://fr.wikipedia.org/wiki/Formule_de_Luhn) + + +--- + +## Tests d'intégration + +--- + +## Objectifs + +Tester la bonne communication des différents "modules" composant une application. + +--- + +## Caractéristiques clés + +- Ils sont moins nombreux que les tests unitaires. +- Ils peuvent prendre un peu de temps à s'exécuter. +- Ils sont mis en place au cours de l'implémentation initiale et maintenus au fur et à mesure de l'évolution de l'application. +- Ils peuvent nécessiter des dépendances externes, mais généralement pas l'ensemble de l'infrastructure. +- Ils peuvent nécessiter des données d'amorçage. +- Ils impliquent souvent la mise en place de composants "factices" pour simuler une partie de l'application. +- Ils s'exécutent à la demande sur le poste du développeur et sur le serveur d'intégration continue à intervalles réguliers. + +--- + +## Cycle de vie + +Les tests d'intégration devraient être abordés (en général) en seconde moitiée d'itération, au moment de la finalisation des modules applicatifs prêts à être livrés. + +Ils devraient cibler en premier les modules critiques de l'application, notamment ceux ayant pour rôle de contrôler/valider le cycle de vie des données métiers. + +Les tests d'intégration peuvent être un bon témoin/validateur de l'état de réussite d'une itération. + +--- + +## Exemple: Test de la soumission d'un formulaire (Symfony3) + +TODO + +--- + +## Tests fonctionnels + +--- + +## Objectif + +Tester le bon fonctionnement de l'application d'un point de vue utilisateur. + +--- + +## Caractéristiques clés + +- Ils devraient être les moins nombreux de l'ensemble des tests applicatifs. +- Ils devraient être représentatifs des cinématiques d'action des utilisateurs. +- Ils devraient s'exécuter sur un environnement identique à la production. +- Ils sont souvent complexes à mettre en place/maintenir. +- Ils ont une couverture fonctionnelle très large mais ne permettent pas d'identifier directement les sources de dysfonctionnement. +- Ils devraient couvrir les procédures faisant intervenir les dépendances externes de l'application (serveur de courriel, API externes, base de données...). + +--- + +## Cycle de vie + +Les tests fonctionnels devraient être implémentés une fois que l'itération a été validée par le client. + +Ils ne devraient être modifiés que lorsque le client demande une évolution de l'interface utilisateur et/ou des cinématiques d'action. + +--- + +## Exemple: Tests fonctionnels Web avec NightmareJS + +TODO + +--- + +## Exercice: Tester une procédure d'authentification d'un utilisateur + +TODO + +--- + +## Les tests "techniques" + +Les tests techniques ont pour objectif de valider le bon fonctionnement de l'infrastructure exécutant l'application, c'est à dire que l'application et son infrastructure seront capables de répondre au contexte d'usage en production. + +--- + +## Tests de charge + +--- + +## Objectif + +Les tests de charge doivent permettre de valider le niveau de stabilité de l'infrastructure et de l'application par rapport à la volumétrie d'utilisateurs en production et son contexte technique d'utilisation. + +Pour ce faire, la mise en place d'une stratégie concrète de métrologie est **obligatoire**. + +--- + +## Caractéristiques clés + +- Ils nécessitent la mise en place d'une infrastructure identique (ou au plus proche) à la production. +- Les données produites sont souvent peu fiables car les tests de charge véritablement représentatifs d'un comportement d'un utilisateur sont complexes à mettre en place. +- Ils doivent couvrir toutes les briques techniques de l'infrastructure et de l'application: disques, réseau, mémoire vive, CPU, serveur HTTPS, serveur applicatif, base de données... + +--- + +## Cycle de vie + +Les tests de charge devraient être effectués avant tout primo déploiement d'une application et réactualisés lorsque le contexte d'usage de celle ci change (exemple: bascule d'un usage local à un usage national). + +Les tests de charge devraient être exécutés régulièrement afin de vérifier qu'aucun "goulot d'étranglement" n'a été introduit dans l'itération en cours. + +--- + +## Exemple: Utilisation d'Apache Benchmark pour vérifier le temps de réponse d'une application Web + +--- + +## Tests de sécurité + +--- + +## Objectif + +Valider la conformité de l'infrastructure et de l'application d'un point de vue sécurité. Découvrir des vulnérabilités dans la conception de l'application. + +--- + +## Caractéristiques clés + +- Ils sont complexes à mettre en place +- Ils doivent fonctionner sur un environnement identique à la production. +- Ils ne peuvent remplacer un audit de sécurité "manuel". +- Ils sont souvent peu efficaces pour détecter les failles qui nécessites un premier niveau d'accréditation. + +--- + +## Cycle de vie + +Ils doivent être mis en place au plus tôt dans le cycle de développement. + +Suivant le type de cible, ils peuvent être exécutés de différentes manières: à chaque fin d'itération, de manière règulière, etc... + +Ils doivent être réactualisés lors de tout changement d'infrastructure et de socle technologique de l'application. + +--- + +## Exemple: Vérification de sécurité pour les dépendances PHP + +TODO https://github.com/sensiolabs/security-checker + +--- + +## Exemple: Tests d'attaques automatisées sur les applications Web avec w3af + +TODO https://tools.kali.org/web-applications/w3af + +--- + +## Les serveurs d'intégration continue + +--- + +## Technologies de conteneurisation + +--- + +## Présentation de Docker + +--- + +## Exemple: Gitlab et Gitlab Runner + +--- + +## Exercice: Mise en application générale + +--- + +# Licence + +## CC BY-NC-SA 3.0 FR + +[Creative Commons - Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France](https://creativecommons.org/licenses/by-nc-sa/3.0/fr/)