CUnit-présentation

21
1/16 CUnit Master MME ANOUAR DRISSI EL- BOUZAIDI Encadrée par : Réalisée par : Youssef baddaz Abdelfateh el-ouadiki

Transcript of CUnit-présentation

Page 1: CUnit-présentation

1/16

CUnit

Master MME

ANOUAR DRISSI EL-BOUZAIDI

Encadrée par :Réalisée par :

Youssef baddazAbdelfateh el-ouadiki

Page 2: CUnit-présentation

2/16

Plan

Les tests en général Cunit Exemple Registres suites et tests Lancement des tests Conclusion

Page 3: CUnit-présentation

3/16

Les tests

Les logiciels deviennent de plus en plus complexes et importants.

Pas de programme sans bug!

Important de tester avant de distribuer son code.

Page 4: CUnit-présentation

4/16

Les tests

On peut distinguer les tests en fonction de leur :

objectif : – scénario : vérifier que le comportement fonctionnel est bien

celui attendu– non-regression : ce qui fonctionnait dans les version

précédentes du code fonctionne toujours dans la nouvelle version

– performance (bench) ou charge (load) : les temps de réponse à une requête sont conformes aux attentes

– intégration/fonctionnels : le code s'intègre bien avec les autres éléments du système.

cible : – scénarios : tester un cas d'utilisation– unitaires : tester un composant du système

technologie : – Web : envoyer des requêtes Web simulant le comportement

d'utilisateur(s)

Page 5: CUnit-présentation

5/16

Quels sont les outils?

Plusieurs framework suivant le languagejava : Junitc++ :Cunit,cppUnit,...Delphi Dunit.Net : Nunit

Page 6: CUnit-présentation

6/16

parties centrales

Page 7: CUnit-présentation

7/16

CUnit Le test unitaire est un procédé permettant de

s'assurer du fonctionnement correct d'une partie déterminée d'un logiciel ou d'une portion d'un programme.

CUnit désigne un framework de rédaction et d'exécutions de tests unitaires de programmes écrits en C.

Page 8: CUnit-présentation

8/16

CUnit

Il utilise une plateforme permettant de construire des structures de test et fournissant un ensemble d’affirmations (assertion) riche pour le test des types de données communes.

Il offre différentes interfaces, statiques et dynamiques, pour lancer les tests et reporter les résultats

Page 9: CUnit-présentation

9/16

utilisation de base du cadre

Page 10: CUnit-présentation

10/16

Utilisation générale

1. Écriture des fonctions pour les tests et les suites (initialisation et désallocation) si nécessaire

2. Initialisation du registre de test - CU_initialize_registry ()

3. Ajout des suites de test au registre - CU_add_suite ()

4. Ajout des tests aux suites - CU_add_test ()

5. Lancer le test en choisissant l’interface adéquoite, e.g. CU_console_run_tests

6. Effacer le registre de test – CU cleanup registry

Page 11: CUnit-présentation

11/16

CUnitfonction d'assertion

– Une assertion est un élément de spécification placé au sein du code.

– Une assertion est caractérisée par une condition booléenne qui doit être vraie.

– Dans le cas d'un test, une assertion fausse entraîne l'échec du test.

– En général, on associe à chaque assertion un message d'erreur.

– Si l'assertion est fausse, le message d'erreur est affiché.

Page 12: CUnit-présentation

12/16

CUnit

Fonction testVoid <Nom_fonc_test> (void)

Il n’y a aucune restriction sur le contenu de la fonction test, sauf qu’elle ne doit pas modifier les paramètres de la plate-forme CUnit. Par exemple, elle ne doit pas ajouter des tests, modifier le registre de test ou initialiser un test. Elle peut appeler d’autres fonctions.

Page 13: CUnit-présentation

13/16

ExempleSoit la fonction maxi qui retourne le max de deux entiers : 

int maxi (int i1, int i2){return (i1 > i2)? i1: i2;

}

Page 14: CUnit-présentation

14/16

La fonction assurant le test de maxi est :

Void test_maxi (void){CU_ASSERT (maxi(0,2) == 2);CU_ASSERT (maxi (0,-2) == 0);CU_ASSERT (maxi(2,2) == 2);}

Page 15: CUnit-présentation

15/16

Registres suites et tests

Page 16: CUnit-présentation

16/16

Gestion des registres

#include <CUnit/TestDB.h>

Initialisation et libération des registres

CU_ErrorCode CU_initialize_registry (void)

void CU_cleanup_registry (void)

Page 17: CUnit-présentation

17/16

Gestion des suites

Ajout de suites

CU_pSuite CU_add_suite (const char *

strName,CU_InitializeFunc Pinit,

CU_CleanupFunc pClean)

Page 18: CUnit-présentation

18/16

Gestion des tests

Ajout de tests

CU_pTest CU_add_test (CU_pSuite pSuite, const char *

strName,CU_TestFunc pTestFunc)

Page 19: CUnit-présentation

19/16

Lancement des tests CUnit peut lancer aussi bien le test des toutes les suites enregistrées, ainsi que des tests ou suites spécifiques. Durant l’exécution du test, la plate-forme enregistre le nombre des suites, des tests et des assertions en exécution, réussis ou non Remarque

Les résultats sont effacés à chaque nouveau lancement.

Différents modes de lancement

Il existe deux modes possibles pour le lancement du test : Non interactif et interactif

Page 20: CUnit-présentation

20/16

CU_ErrorCode CU_basic_run_tests (void)CU_ErrorCode CU_basic_run_suite (CU_pSuite pSuite)

vide CU_curses_run_tests (void)

Non interactif

interactif

Page 21: CUnit-présentation

21/16

conclusionLes interfaces présentent les résultats des tests. Cependant, le code du testeur pourrait avoir besoin de résultats intermédiaires. Ces résultats peuvent inclure le nombre de lancements

Cunit est un logiciel, il présente ainsi plusieurs erreurs permettant de repérer son comportement. Par exemple, erreur d’initialisation de registre, duplication du nom d’une suite de test, erreur d’ouverture de fichier, etc

Par défaut, si une erreur plate-forme survient, son code est enregistré et le scénario de test est pour suivit. Parfois, le testeur a besoin d’arrêter le test afin d’éviter la corrélation des fautes. (Ignorer, le test arrêté ou l’application exité)