Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| d5:c01 [2025/09/24 09:43] – [Tests manuels ou automatisés ?] dthevenot | d5:c01 [2025/09/26 08:26] (Version actuelle) – [Les différents types de tests] dthevenot | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ~~SLIDESHOW~~ | ~~SLIDESHOW~~ | ||
| + | ====== Tests logiciels et cybersécurité ====== | ||
| + | * Une application de paiement en ligne qui n’a pas testé correctement la validation des entrées -> un pirate injecte du code SQL et accède aux données bancaires. | ||
| + | * Une messagerie qui ne vérifie pas les mots de passe trop faibles, et qui se fait pirater. | ||
| + | “Est-ce que c’est juste un bug ? Ou est-ce une faille de sécurité ?” -> “Un logiciel non testé, ce n’est pas seulement un logiciel qui bug, c’est un logiciel qui met en danger les données et les utilisateurs.” | ||
| + | |||
| + | Tester, ce n’est pas seulement vérifier que ça marche (“le programme renvoie le bon résultat”), | ||
| + | |||
| + | ===== Enjeux pour la cybersécurité ===== | ||
| + | * Prévenir les vulnérabilités connues : injections, buffer overflow, failles XSS… | ||
| + | * Réduire le coût des failles : corriger un bug après mise en production coûte 10 à 100 fois plus cher qu’avant. | ||
| + | * Conformité réglementaire : RGPD, normes ISO, critères ANSSI. | ||
| ====== Les différents types de tests logiciels ====== | ====== Les différents types de tests logiciels ====== | ||
| Ligne 18: | Ligne 29: | ||
| === 1. Tests unitaires === | === 1. Tests unitaires === | ||
| < | < | ||
| + | Testent une partie (une unité) d’un système afin de s’assurer qu’il fonctionne correctement. | ||
| Les tests unitaires sont de très bas niveau, près de la source de votre application. Ils consistent à **tester les méthodes et fonctions individuelles des classes, des composants ou des modules utilisés** par votre logiciel. Les tests unitaires sont en général assez bon marché à automatiser et peuvent être exécutés très rapidement par un serveur d' | Les tests unitaires sont de très bas niveau, près de la source de votre application. Ils consistent à **tester les méthodes et fonctions individuelles des classes, des composants ou des modules utilisés** par votre logiciel. Les tests unitaires sont en général assez bon marché à automatiser et peuvent être exécutés très rapidement par un serveur d' | ||
| ===== ===== | ===== ===== | ||
| === 2. Tests d' | === 2. Tests d' | ||
| + | Testent le système sur une plate-forme proche de la plate-forme cible. | ||
| Les tests d' | Les tests d' | ||
| ===== ===== | ===== ===== | ||
| === 3. Tests fonctionnels === | === 3. Tests fonctionnels === | ||
| - | |||
| Les tests fonctionnels se concentrent sur **les exigences métier d'une application**. Ils vérifient uniquement la sortie d'une action et non les états intermédiaires du système lors de l' | Les tests fonctionnels se concentrent sur **les exigences métier d'une application**. Ils vérifient uniquement la sortie d'une action et non les états intermédiaires du système lors de l' | ||
| Ligne 32: | Ligne 44: | ||
| ===== ===== | ===== ===== | ||
| === 4. Tests de bout en bout === | === 4. Tests de bout en bout === | ||
| - | |||
| Les tests de bout en bout reproduisent **le comportement d'un utilisateur avec le logiciel** dans un **environnement applicatif complet**. Ils vérifient que les différents flux d' | Les tests de bout en bout reproduisent **le comportement d'un utilisateur avec le logiciel** dans un **environnement applicatif complet**. Ils vérifient que les différents flux d' | ||
| ===== ===== | ===== ===== | ||
| Ligne 38: | Ligne 49: | ||
| ===== ===== | ===== ===== | ||
| === 5. Tests d' | === 5. Tests d' | ||
| + | Testent le système afin de s’assurer qu’il est conforme aux besoins. | ||
| Les tests d' | Les tests d' | ||
| ===== ===== | ===== ===== | ||
| - | === 6. Tests de performance === | + | === 6. Tests de performance |
| + | Testent le comportement de l’application au limite des ressources disponibles (mémoire, CPU, …) sur la plate-forme. | ||
| Les tests de performance évaluent **les performances d'un système sous une charge de travail spécifique**. Ces tests permettent de mesurer la fiabilité, la vitesse, l' | Les tests de performance évaluent **les performances d'un système sous une charge de travail spécifique**. Ces tests permettent de mesurer la fiabilité, la vitesse, l' | ||
| ===== ===== | ===== ===== | ||
| === 7. Smoke tests === | === 7. Smoke tests === | ||
| + | Les smoke tests (tests " | ||
| - | Les smoke tests sont des tests simples qui vérifient le fonctionnement de base d'une application. Ils sont conçus pour être rapides à exécuter, et leur but est de vous donner | + | Ils peuvent être utiles juste après la création |
| - | Les « smoke tests » peuvent être utiles juste après la création d'un build afin de décider si vous pouvez exécuter des tests plus coûteux. Ils peuvent également être utiles après un déploiement afin de vous assurer que l' | + | === 8. Tests de sécurité |
| - | ===== ===== | + | |
| + | Testent que l’application ne contient pas de failles de sécurité connues (injection de code, attaque XSS, …) | ||
| + | ===== ===== | ||
| + | [[d5:A02]] | ||