Je recommande ce livre.
AnonymeTestez votre application web avec Cypress
1 avis
Ce livre sur Cypress s'adresse à tous ceux qui travaillent dans le développement web, qu'ils soient développeurs, testeurs, managers ou simplement intéressés par l'amélioration de la qualité de leur application en réalisant les tests nécessaires. Il permet à un débutant de mettre en place son environnement et des tests de base, mais offre également à un lecteur plus expérimenté la possibilité de mettre en place des tests avancés ou des tests de sécurité. Le livre commence par...
Consulter des extraits du livre en ligne
Aperçu du livre papier
- Niveau Initié à Confirmé
- Nombre de pages 332 pages
- Parution août 2024
- Niveau Initié à Confirmé
- Parution août 2024
Ce livre sur Cypress s'adresse à tous ceux qui travaillent dans le développement web, qu'ils soient développeurs, testeurs, managers ou simplement intéressés par l'amélioration de la qualité de leur application en réalisant les tests nécessaires. Il permet à un débutant de mettre en place son environnement et des tests de base, mais offre également à un lecteur plus expérimenté la possibilité de mettre en place des tests avancés ou des tests de sécurité.
Le livre commence par une présentation des conséquences des failles de sécurité sur une application web et de l'importance de s'en protéger. Il présente ensuite Cypress, ses avantages et inconvénients, et explique comment le mettre en place et le configurer. Les chapitres suivants se concentrent sur l'exploration de l'interface graphique de Cypress, la rédaction des plans de test et les tests de différents éléments, tels que les formulaires de contact, le respect du RGPD, les failles CSS ou les injections SQL.
La suite du livre explore la gestion des variables d'environnement et des tests de sécurité plus avancés, tels que l'authentification à deux facteurs, les tests de sécurité des API et les sessions. Enfin, vous découvrirez comment automatiser l'exécution de vos tests dans un pipeline CI/CD et/ou dans l'environnement Cypress Cloud, et étudierez les plugins à utiliser pour améliorer la couverture des tests de sécurité avec Cypress.
Un projet d'exemple avec des failles et quelques tests illustratifs dans un environnement Docker est disponible en téléchargement pour vous accompagner dans la lecture de cet ouvrage.
Le livre commence par une présentation des conséquences des failles de sécurité sur une application web et de l'importance de s'en protéger. Il présente ensuite Cypress, ses avantages et inconvénients, et explique comment le mettre en place et le configurer. Les chapitres suivants se concentrent sur l'exploration de l'interface graphique de Cypress, la rédaction des plans de test et les tests de différents éléments, tels que les formulaires de contact, le respect du RGPD, les failles CSS ou les injections SQL.
La suite du livre explore la gestion des variables d'environnement et des tests de sécurité plus avancés, tels que l'authentification à deux facteurs, les tests de sécurité des API et les sessions. Enfin, vous découvrirez comment automatiser l'exécution de vos tests dans un pipeline CI/CD et/ou dans l'environnement Cypress Cloud, et étudierez les plugins à utiliser pour améliorer la couverture des tests de sécurité avec Cypress.
Un projet d'exemple avec des failles et quelques tests illustratifs dans un environnement Docker est disponible en téléchargement pour vous accompagner dans la lecture de cet ouvrage.
Avant-propos
- Introduction
Introduction à la sécurité
- Importance de la sécurité des applications web
- 1. Les conséquences des failles de sécurité
- a. Vol de données sensibles
- b. Utilisation abusive des comptes d’utilisateurs
- c. Altération ou destruction de données
- d. Impact sur la disponibilité du système
- e. Responsabilité légale et réglementaire
- 1. Les conséquences des failles de sécurité
- 2. L’importance de la protection des donnéessensibles
- a. Confidentialité des informations personnelles
- b. Respect des réglementations
- c. Préservation de la confiance des clients
- d. Protection des secrets commerciaux et de la propriété intellectuelle
- e. Prévention des pertes financières
- 1. Les développeurs
- a. Connaissance des vulnérabilités
- b. Utilisation de bonnes pratiques de codage sécurisé
- c. Tests de sécurité
- d. Sensibilisation à la sécurité
- e. Collaboration avec les équipes de sécurité
- f. Suivi des mises à jour de sécurité
- a. Tests d’intrusion
- b. Analyses de vulnérabilités
- c. Tests de conformité
- d. Collaboration avec les développeurs
- e. Documentation des résultats
- f. Veille technologique
- a. Évaluation de la sécurité
- b. Conformité réglementaire
- c. Analyse des politiques de sécurité
- d. Tests d’intrusion avancés
- e. Rapports d’audit
- f. Suivi des recommandations
- 1. Confidentialité des données
- 2. Intégrité des données
- 1. ISO 27001 : un des standards de sécurité
- 2. Les attaques par injection
- 3. Les attaques par force brute
- 4. Les attaques par contournement d’authentification
- 5. Les attaques par déni de service
- 6. Les attaques par manipulation de session
- 7. Les attaques par falsification de requêtesintersite (CSRF)
- 1. Le principe du moindre privilège
- 2. Le principe de la défense en profondeur
- 3. Le principe de la validation des entrées
Introduction à Cypress
- Les avantages de Cypress
- 1. Définition d’un test flaky (instable)
- 2. Cypress : la clé d’une meilleure qualité logicielle
- 3. Cypress vs. d’autres outils : les avantages indéniables
- a. Selenium
- b. Playwright
- 1. Configuration requise
- a. Node.js
- b. Matériel requis
- c. Prérequis Linux
- d. Docker
- a. Installation avec npm
- b. Installation avec yarn add
- c. Installer une autre version
- d. Installation avec pnpm add
- e. Téléchargement direct
Configuration de Cypress
- Configurez Cypress
- 1. Exécution de Cypress
- 2. Avant Cypress 10
- 3. À partir de Cypress 10
- 4. Paramètres du fichier de configuration
- 5. Exécution en ligne de commande
- 6. Cypress Studio
- 7. Intégration avec des outils de CI/CD
- Gérez des dépendances
- Mettez à jour Cypress
- 1. Vérifiez les mises à jour disponibles
- 2. Mettez à jour la version de Cypress
- 3. Testez votre suite de tests
- 4. Communiquez avec votre équipe
- 5. Planifiez des mises à jour régulières
- Dépannez vos problèmes d'installation
- 1. Problèmes de réseau
- 2. Problèmes de dépendances de systèmed’exploitation
- 3. Problèmes de permissions
- 4. Espace disque insuffisant
- 5. Conflits de version de Node.js
- 6. Corruption du cache de Cypress
- 7. Incompatibilité avec le systèmed’exploitation
- 8. Erreurs de script d’installation post-installation
Maîtrisez la sélection des éléments avec Cypress
- Fondamentaux de la sélection des éléments
- 1. Comprendre le DOM (Document Object Model)
- 2. Importance de la sélection précisedes éléments
- Sélecteurs CSS
- Recommandation de Cypress
- Pièges courants et comment les éviter
- Utilisation des commandes de Cypress pour la sélection des éléments
- 1. Les tests avec Chai
- 2. Interaction avec un champ input
- 3. Interaction avec un bouton
- 4. Interaction avec une checkbox
- 5. Interaction avec un menu déroulant
- 6. Enchaînez les commandes
- 7. Interaction avec l’interface UI
- 8. Interaction avec le réseau
- Gérer les éléments dynamiques et asynchrones
- 1. Attente explicite et implicite
- 2. Surveiller les changements d’état
- 3. Utilisation des callbacks pour les élémentsdynamiques
- 4. Assertions conditionnelles
- 5. Tests de régression visuelle
- Meilleures pratiques pour interagir avec les éléments
Premiers pas avec Cypress
- Introduction à l'interface de Cypress
- Cypress selector playground
- Écrivez votre premier test Cypress
- Déboguez vos tests
- 1. Types de messages d’erreur
- 2. Utilisez les captures d’écrans
- 3. Utilisez les vidéos
- 4. Utilisez la commande cy.debug()
- 5. Utilisez la commande cy.pause()
- Appliquez les bonnes pratiques recommandées par Cypress
Qu'est-ce qu'un plan de test ?
- Planification de vos tests de sécurité
- Analysez et évaluez les exigences de test
- 1. Compréhension des exigences
- 2. Évaluation des risques
- Établissez la stratégie de test
- Identifiez les niveaux de test
- Déterminez les types de test
- Élaborez les techniques de test
- Planifiez l'allocation des ressources
- Définissez le calendrier de test
- Créez les cas de test
- Déterminez les livrables de tests
- Gérez les risques et les problèmes
- Assurez la communication et la coordination
- Révisez et ajustez le plan de test
Tests de sécurité avec Cypress
- Testez votre formulaire de contact
- Vérifiez que les éléments du formulaire sont présents
- Utilisez des hooks Cypress
- Vérifiez que le formulaire peut être envoyé si les champs sont remplis correctement
- Vérifiez que le formulaire vide ne peut pas être envoyé
- Vérifiez s'il y a bien une erreur quand un champ est manquant dans un formulaire
- Vérifiez que les champs ont des tailles minimales ou maximales
- Vérifiez le respect du RGPD
- Vérifiez que le formulaire ne contient pas de faille XSS
- Vérifiez que le formulaire ne contient pas de faille d'injection SQL
- Simulez une attaque DDoS sur votre formulaire
Gestion des variables d'environnement
- Introduction aux variables d'environnement
- Configuration des variables d'environnement
- 1. Configurez vos variables dans le fichier de configuration cypress.conf.js
- 2. Configurez vos variables dans des fichiers de configurationsspécifiques à votre environnement
- 3. Configurez vos variables en ligne de commande
- Stockage des secrets dans AWS Secrets Manager
- 1. Premier exemple avec l’accès direct aux secretsAWS
- 2. Deuxième exemple : SOPS
- Bonnes pratiques
- Débogage et dépannage
- 1. Vérification des variables d’environnement
- 2. Gestion des variables d’environnement spécifiques à l’environnement
- 3. Problèmes de valeurs de variables d’environnementinattendues
Tests de sécurité avancés avec Cypress
- Tests d'authentification
- 1. Tester l’authentification à deux facteurs
- a. Stratégies de test pour le MFA
- b. Tester les flux MFA
- c. Automatisation des tests de MFA
- d. Gestion des sessions et des cookies
- 1. Tester l’authentification à deux facteurs
- 1. Stubs
- 2. Spy
- 3. Clock
- 1. Test isolation activé dans la configurationde Cypress
- 2. Test isolation désactivé dans laconfiguration de Cypress
Intégration de l’outil dans votre CI/CD
- Importance des tests continus
- Configuration de Cypress avec Jenkins
- 1. Job Jenkins
- a. Image Docker personnalisée
- b. Mochawesome
- c. Screenshot + videos
- d. Images Docker fournies par Cypress
- 1. Job Jenkins
- 2. Pipeline Jenkins
Travailler avec des environnements multiples
- Cypress Cloud
- 1. Prix
- 2. Installation
- 3. Ajouter Cypress Cloud dans GitHub
- 4. Intégration de GitHub dans Cypress Cloud
- Tests parallèles et équilibrage de charge
- 1. Dans un job Jenkins
- 2. Dans Gitlab
- Conseils pour les tests basés sur le cloud
Comment améliorer la couverture de vos tests
- Utiliser des plugins Cypress pour la sécurité
- Intégration avec des outils d'analyse de sécurité
- 1. OWASP
- 2. SQLMap
- 3. Autres outils
- TDD (Test Driven Development)
- Utiliser Gherkin et Cucumber
- Comprendre ce que Cypress ne peut pas faire
Conclusion
- Résumé des points clefs
- 1. Importance des tests de sécurité pourles applications web
- 2. Comment Cypress peut-il aider à renforcerla sécurité des applications web ?
- 3. Bugs trouvés dans notre application
- Maintenir une attitude proactive face à la sécurité
- Documentation et audit des processus de sécurité
Fanny VELSIN
Fanny VELSIN est ingénieur QA freelance et enseignante dans le domaine de la qualité, spécialisée dans le test logiciel et web, avec plus de dix ans d'expérience. Elle est experte dans l'amélioration des programmes web et logiciels grâce à ses compétences certifiées et à sa capacité à analyser et résoudre des problèmes complexes. Au quotidien, elle aide diverses entreprises à optimiser la qualité de leurs produits numériques, notamment en utilisant Cypress. Dans ce livre de référence sur Cypress, Fanny Velsin partage son expertise et contribue activement à la formation et à l'évolution du domaine du test logiciel moderne.
En savoir plus