bloc3:testsunitaires
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| bloc3:testsunitaires [2023/04/03 16:19] – [Typologie des tests] admin | bloc3:testsunitaires [2023/04/04 11:40] (Version actuelle) – [Exemples d’environnements de tests unitaires] admin | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| Le concept de tests n'est pas une nouveauté. Depuis toujours, tester le code fait partie intégrante de l' | Le concept de tests n'est pas une nouveauté. Depuis toujours, tester le code fait partie intégrante de l' | ||
| - | Dans un certain nombre de contextes de développement aujourd’hui, | + | Dans un certain nombre de contextes de développement aujourd’hui, |
| * Concevoir le test d'un service, avant même d' | * Concevoir le test d'un service, avant même d' | ||
| * Plus un bogue est détecté tôt, plus facile sera sa correction et moins il coûtera ; | * Plus un bogue est détecté tôt, plus facile sera sa correction et moins il coûtera ; | ||
| Ligne 12: | Ligne 12: | ||
| ===== Typologie des tests ===== | ===== Typologie des tests ===== | ||
| **Tests unitaires** : destinés à vérifier la conformité des unités élémentaires de programme (procédures, | **Tests unitaires** : destinés à vérifier la conformité des unités élémentaires de programme (procédures, | ||
| + | |||
| + | **Tests de non-régression** : lorsqu’on intervient sur un code qui passait positivement une batterie de tests auparavant, il faut nécessairement s’assurer que cette même batterie de tests continue de produire un résultat positif après intervention. C’est ce qu’on appelle des tests de non-régression car, en effet, parfois on pourrait corriger une anomalie ou améliorer une fonctionnalité avec succès mais au prix d’un changement notable dans le comportement de détail. Ce qui ne serait pas tolérable. | ||
| **Tests d’intégration** : destinés à vérifier la conformité de composants distincts que l’on vient d’assembler entre eux. Au préalable, ces composants auront été testés séparément via des tests unitaires. Ici, c’est la bonne communication ou coopération entre ces composants qui est visée, essentiellement. | **Tests d’intégration** : destinés à vérifier la conformité de composants distincts que l’on vient d’assembler entre eux. Au préalable, ces composants auront été testés séparément via des tests unitaires. Ici, c’est la bonne communication ou coopération entre ces composants qui est visée, essentiellement. | ||
| Ligne 21: | Ligne 23: | ||
| **Tests de vulnérabilité** : tests destinés à vérifier le niveau de sécurité d’un composant ou d’une application. | **Tests de vulnérabilité** : tests destinés à vérifier le niveau de sécurité d’un composant ou d’une application. | ||
| - | **Tests de non-régression** : lorsqu’on intervient sur un code qui passait positivement une batterie de tests auparavant, il faut nécessairement s’assurer que cette même batterie de tests continue de produire un résultat positif après intervention. C’est ce qu’on appelle des tests de non-régression car, en effet, parfois on pourrait corriger une anomalie ou améliorer une fonctionnalité avec succès mais au prix d’un changement notable dans le comportement de détail. Ce qui ne serait pas tolérable. | + | ===== Tests unitaires |
| - | Tests unitaires | + | |
| Un test unitaire est un programme qui vérifie le bon fonctionnement d’une unité fonctionnelle élémentaire (une procédure, une fonction ou une méthode) au travers de situations déduites des spécifications de l’unité testée : à partir de données particulières en entrée, le test sollicite l’unité et confronte les données réellement obtenues avec celles théoriquement attendues. Il en déduit alors un état de succès ou d' | Un test unitaire est un programme qui vérifie le bon fonctionnement d’une unité fonctionnelle élémentaire (une procédure, une fonction ou une méthode) au travers de situations déduites des spécifications de l’unité testée : à partir de données particulières en entrée, le test sollicite l’unité et confronte les données réellement obtenues avec celles théoriquement attendues. Il en déduit alors un état de succès ou d' | ||
| - | La « couverture des tests » désigne le rapport entre le nombre de situations testées et le nombre de situations possibles. Par principe, la couverture des tests n'est jamais complète car il n’est pas raisonnable, | + | La **couverture des tests** désigne le rapport entre le nombre de situations testées et le nombre de situations possibles. Par principe, la couverture des tests n'est jamais complète car il n’est pas raisonnable, |
| - | | + | |
| - | Attention ! (Cf. http:// | + | ===== Prudence ===== |
| + | **<color blue>Attention !</ | ||
| On essaye cependant, avec rigueur mais assez empiriquement, | On essaye cependant, avec rigueur mais assez empiriquement, | ||
| - | + | * Couverture en __points | |
| - | • Couverture en points | + | |
| - | • Couverture en chemins | + | |
| - | • Couverture | + | |
| Selon la complexité du logiciel, des séquences de vérification globale peuvent s' | Selon la complexité du logiciel, des séquences de vérification globale peuvent s' | ||
| - | Exemples d’environnements de tests unitaires | + | ===== Exemples d’environnements de tests unitaires |
| - | + | | |
| - | PHP : PHPUnit, Atoum, SimpleTest | + | |
| - | JAVA : JUnit | + | |
| - | .NET : NUnit | + | |
bloc3/testsunitaires.1680531550.txt.gz · Dernière modification : 2023/04/03 16:19 de admin
