Вы находитесь на странице: 1из 21

Master MME

CUnit
Encadre par : Ralise par : Youssef baddaz Abdelfateh el-ouadiki

ANOUAR DRISSI ELBOUZAIDI

1/16

Plan
Les

tests en gnral Cunit Exemple Registres suites et tests Lancement des tests Conclusion
2/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.

3/16

Les tests
On peut distinguer les tests en fonction de leur :

objectif :
scnario : vrifier que le comportement fonctionnel est bien celui attendu non-regression : ce qui fonctionnait dans les version prcdentes du code fonctionne toujours dans la nouvelle version performance (bench) ou charge (load) : les temps de rponse une requte sont conformes aux attentes intgration/fonctionnels : le code s'intgre bien avec les autres lments du systme.

cible :
scnarios : tester un cas d'utilisation unitaires : tester un composant du systme

technologie :
Web : envoyer des requtes Web simulant le comportement d'utilisateur(s)

4/16

Quels sont les outils?


Plusieurs framework suivant le language java : Junit c++ :Cunit,cppUnit,... Delphi Dunit .Net : Nunit

5/16

parties centrales

6/16

CUnit

Le test unitaire est un procd permettant de s'assurer du fonctionnement correct d'une partie dtermine d'un logiciel ou d'une portion d'un programme.

CUnit dsigne un framework de rdaction et d'excutions de tests unitaires de programmes crits en C.

7/16

CUnit
Il utilise une plateforme permettant de construire des structures de test et fournissant un ensemble daffirmations (assertion) riche pour le test des types de donnes communes.

Il offre diffrentes interfaces, statiques et dynamiques, pour lancer les tests et reporter les rsultats

8/16

utilisation de base du cadre

9/16

Utilisation gnrale
1. criture des fonctions pour les tests et les suites (initialisation et dsallocation) si ncessaire 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 linterface adquoite, e.g. CU_console_run_tests


6. Effacer le registre de test CU cleanup registry
10/16

CUnit
fonction d'assertion
Une assertion est un lment de spcification plac au sein du code. Une assertion est caractrise par une condition boolenne qui doit tre vraie. Dans le cas d'un test, une assertion fausse entrane l'chec du test. En gnral, on associe chaque assertion un message d'erreur. Si l'assertion est fausse, le message d'erreur est affich.
11/16

CUnit
Fonction test

Void <Nom_fonc_test> (void)


Il ny a aucune restriction sur le contenu de la fonction test, sauf quelle ne doit pas modifier les paramtres de la plateforme CUnit. Par exemple, elle ne doit pas ajouter des tests, modifier le registre de test ou initialiser un test. Elle peut appeler dautres fonctions.

12/16

Exemple
Soit la fonction maxi qui retourne le max de deux entiers :

int maxi (int i1, int i2) { return (i1 > i2)? i1: i2; }
13/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); }

14/16

Registres suites et tests


15/16

Gestion des registres


#include <CUnit/TestDB.h>
Initialisation et libration des registres CU_ErrorCode CU_initialize_registry (void) void CU_cleanup_registry (void)

16/16

Gestion des suites


Ajout de suites
CU_pSuite CU_add_suite (const char *
strName,CU_InitializeFunc Pinit, CU_CleanupFunc pClean)
17/16

Gestion des tests


Ajout de tests

CU_pTest CU_add_test (CU_pSuite pSuite, const char * strName,CU_TestFunc pTestFunc)

18/16

Lancement des tests


CUnit peut lancer aussi bien le test des toutes les suites enregistres, ainsi que des tests ou suites spcifiques. Durant lexcution du test, la plate-forme enregistre le nombre des suites, des tests et des assertions en excution, russis ou non

Remarque
Les rsultats sont effacs chaque nouveau lancement.

Diffrents modes de lancement


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

19/16

Non interactif
CU_ErrorCode CU_basic_run_tests (void) CU_ErrorCode CU_basic_run_suite (CU_pSuite pSuite)

interactif
vide CU_curses_run_tests (void)

20/16

conclusion
Les interfaces prsentent les rsultats des tests. Cependant, le code du testeur pourrait avoir besoin de rsultats intermdiaires. Ces rsultats peuvent inclure le nombre de lancements

Cunit est un logiciel, il prsente ainsi plusieurs erreurs permettant de reprer son comportement. Par exemple, erreur dinitialisation de registre, duplication du nom dune suite de test, erreur douverture de fichier, etc
Par dfaut, si une erreur plate-forme survient, son code est enregistr et le scnario de test est pour suivit. Parfois, le testeur a besoin darrter le test afin dviter la corrlation des fautes. (Ignorer, le test arrt ou lapplication exit)
21/16

Вам также может понравиться