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

Testes des logiciels

Ralise par:

Ettalbi Ramzi Hadfi Skander Menjli Chaouki Weslati Wassim

05/11/2007

test des logiciels

Sommaire:
Definition Classification des tests
oClassification selon le niveau de dtail Tests unitaires(TDD) Tests dintgrations Tests de non rgression oclassification selon le niveau daccessibilit classification Bote noire Bote blanche

oClassification selon la caractristique


Tests de performance Test fonctionnel Test de robustesse

Recapitulatif
05/11/2007 test des logiciels 2

Dfinitions
Le test est lexcution ou lvaluation dun systme ou dun composant, par des moyens automatiques ou manuels, pour vrifier quil rpond ses spcifications ou identifier des diffrences entre les rsultats attendus et ceux obtenus

Xanthakis et al.

05/11/2007

test des logiciels

Cycle de dveloppement de test

05/11/2007

test des logiciels

Mise au point Inductive

05/11/2007

test des logiciels

Mise au point Dductive

05/11/2007

test des logiciels

Tests unitaires
Test de composants isols. Ce test permet de dmontrer que chaque module effectue toute la fonction prvue et seulement cette fonction. On peut distinguer dans ces tests unitaires :
Les tests de logique (recherche d'erreur, vrification de l'enchanement correct des branches parcourues) Les tests de calcul (vrification des rsultats des calculs, des performances, de l'exactitude des algorithmes).

05/11/2007

test des logiciels

Exemple de test unitaire


Imaginons que nous devions crire une classe Java qui manipule des chemins Unix crits sous forme de chanes de caractres, par exemple "/usr/include/stdlib.h". Cette classe doit permettre d'extraire des parties d'un chemin, d'ajouter des chemins, etc. Imaginons que la premire fonctionnalit dont nous ayons besoin soit l'extraction du dernier composant du chemin. Nous crivons les tests de cette fonctionnalit avant mme d'entamer l'criture de la classe.

05/11/2007

test des logiciels

Path p = new Path("/usr/include/stdlib.h"); assertEquals("stdlib.h", p.getLastComponent()); ou encore : Path p = new Path("/"); assertEquals("", p.getLastComponent()); En crivant ces quelques tests, nous avons implicitement commenc dfinir l'interface de notre classe. Nous pouvons d'ailleurs en crire une premire version : public class Path { public Path(String pathName) { //... } public String getLastComponent() { //... }}

05/11/2007

test des logiciels

Prsentation de JUnit
JUnit dfinit trois notions principales : Un TestCase est typiquement une classe de test. Chacune de nos classes de test drive de cette classe, qui elle-mme drive de la classe Test. Une TestSuite est un ensemble de tests. Elle drive galement de la classe Test et contient des instances de la classe Test (suivant le Design Pattern "Composite"), ce qui lui permet de contenir indiffremment des TestCase ou d'autres TestSuite :

Un TestRunner permet de lancer l'excution d'une liste de Test.

05/11/2007

test des logiciels

10

TDD: Test Driven Development


Dfinition: Le Test Driven Development (TDD) ou en Franais dveloppement pilot par les tests est une mthode de dveloppement des logiciels qui prconise d'crire les tests unitaires avant d'crire le code source d'un logiciel.

05/11/2007

test des logiciels

11

TDD: Test Driven Development


Le Cycle de TDD: Le cycle prconis par TDD comporte cinq tapes : crire un premier test. vrifier qu'il choue (car le code qu'il teste n'existe pas). crire le minimum de code suffisant pour faire passer le test. vrifier que le test passe. puis refactoriser le code.

05/11/2007

test des logiciels

12

TDD: Test Driven Development


Intrt: Assurer que le code produit est testable unitairement. Eviter les erreurs de conception. Augmenter la confiance en soi du programmeur. Construction conjointe du programme et dune suite de tests de non rgression.

05/11/2007

test des logiciels

13

Test dintgration
Dfinition: Un test d'intgration est un test qui se droule dans une phase d'un projet informatique suivant les tests unitaires. Il consiste, une fois que les dveloppeurs ont chacun valid leurs dveloppements ou leurs correctifs, regrouper leurs modifications ensemble dans le cadre d'une livraison.

05/11/2007

test des logiciels

14

Test dintgration
Caractristiques: L'intgration a pour but de valider le fait que toutes les parties dveloppes indpendamment fonctionnent bien ensemble. L'intgration fait appel en gnral un systme de contrle de versions, et ventuellement des programmes d'installation. Pour les applications utilisant les nouvelles technologies et donc des ateliers de gnie logiciel (Eclipse - Visual Studio - JBuilder - JDeveloper...), les tests dintgration ont volu vers de lintgration continue.

05/11/2007

test des logiciels

15

Test de non rgression


Dfinition: Les tests de non-rgression ont pour but de vrifier que les volutions apportes par une nouvelle version d'un logiciel n'altre pas les fonctionnalits prexistantes.

05/11/2007

test des logiciels

16

Test de non rgression


Caractristiques: Ces tests sont fastidieux car ils doivent tre le plus exhaustif possible, afin de s'assurer que le logiciel fonctionne de la mme manire. Il existe des programmes informatiques spcialiss qui permettent d'automatiser ces tests. Ces programmes appels souvent robots de tests.

05/11/2007

test des logiciels

17

Classification selon le niveau d'accessibilit


Il sagit de rpartir les techniques de base en deux catgories suivant qu'elles autorisent ou non l'observation du comportement interne du composant logiciel sous tests : Test Fonctionnel (boite noire) Test structurel (boite blanche)

Test Fonctionnel (Boite noire)


Le test bote noire (TBN) consiste tester un composant en ne connaissant de lui que son interface, il vise examiner le comportement fonctionnel du logiciel et sa conformit avec la spcification du logiciel Mthodes du test fonctionnel
Test par classe dquivalence et test aux limites Test dterministe Test combinatoire Algorithmes Pairwise Test alatoire Gnration automatique de tests partir dune spcification

Test Fonctionnel

Test par classe dquivalence et Test aux limites

Le test par classe dquivalence consiste regrouper les valeurs dentre qui devraient produire le mme type de rsultat Le test se fait alors avec un reprsentant de la classe dquivalence pris au hasard
Le test au limite complte le test par classe dquivalence en prfrant choisir un reprsentant de la classe ses limites (quand cela un sens)

Test Fonctionnel

Test combinatoire : approche Pairwise

Tester un fragment des combinaisons de valeurs qui garantissent que chaque combinaison de 2 variables est test Exemple : 4 variables avec 3 valeurs possibles chacune V1 a e i V2 b f j V3 c g k V4 d h l

Les paires (v1, v2) (v1, v3) (v1, v4) (v2, v3) (v2, v4) (v3, v4) Les combinaisons : 6*9=72 Le nombre de tests augmente trs vite dans lapproche de Pairwise avec les triplets , les quadruplets, etc

Test Fonctionnel
Principe du test alatoire

Test alatoire ou statistique

Utilisation dune fonction de calcul pour slectionner les DT Fonction alatoire : choix alatoire dans le domaine de la donne dentre ou utilisation dune loi statistique sur le domaine

Test Fonctionnel : Model-Based Testing


Gnration automatique de tests partir dune spcification: Modliser pour tester (SDL language,UML,B) : Choix de notation Stratgies de gnration: Classes dquivalence et test aux bornes Slection des tests (Focaliser la gnration sur certains comportements) Gnration de cas de test (GOAL language)

Test Boite blanche


Ce test consiste analyser la structure interne du programme en dterminant les chemins minimaux afin d'assurer que: Toutes les conditions d'arrt de boucle ont t vrifies. Toutes les branches d'une instruction conditionnelle ont t tests. Les structures de donne interne ont t testes (pour assurer la validit). Le test structurel ou boite blanche peut tre soit statique ou dynamique

Test structurel
Test structurel statique : pas dexcution relle

Le test statique est appliqu sur une description du programme ou directement sur le texte du programme mais sans excuter ce dernier
Estimation de la complexit Statistiquement, la complexit dun programme est corrle avec le nombre de ses dfauts (complexit cyclomatique ) MacCabe propose de refaire le codage de tout programme dont la complexit cyclomatique est suprieur 10 en exceptant les programmes o ils ont beaucoup dinstruction de branchement

Graphe du flot de contrle (GFC)

Test structurel dynamique

Selon la caractristique
test fonctionnel : vrifie que le programme est conforme aux
spcifications

Selon la caractristique
Mthodes du test fonctionnel Test dterministe Analyse partitionnelle des domaines des donnes dentre et test aux limites Test combinatoire Algorithmes Pairwise Test alatoire Gnration automatique de tests partir dune spcification

Selon la caractristique
Automatisation des tests fonctionnels lorsque des applications doivent fonctionner sur plusieurs plates-formes, la charge des tests manuels crot proportionnellement en multipliant les risques derreurs humaines et dincohrences susceptibles daltrer les rsultats finaux.

Selon la caractristique
Lautomatisation du processus de test optimise la qualit logicielle et lefficience oprationnelle elle prsente les avantages long terme suivants : Remploi Prvisibilit et cohrence Productivit

Selon la caractristique
test de performance (ou benchmark) : mesurer les temps de rponse d'un systme en fonction de sa sollicitation

Test de tenue en charge Test de capacit Test en stress Test aux limites

Selon la caractristique
Outillage ncessaire Comme il s'agit de simuler un nombre d'utilisateurs en gnral important, il est videmment ncessaire d'automatiser ces tests. Une plate-forme de test de performances va gnralement comporter : Un injecteur Des sondes

Classification des tests


Selon la caractristique :
test de robustesse : valider la robustesse du logiciel vis--vis de son environnement.
Donnes invalides pannes des quipements externes Intrusion

Rcapitulatif

TBN : test boite noir ou test fonctionnel TBB : test boite blanche ou test structurel

05/11/2007

test des logiciels

36

Bibliographie
www.testissimo.com http://fr.wikipedia.org/wiki/Test_%28informatique%29 http://fr.wikipedia.org/wiki/Test_unitaire http://fr.wikipedia.org/wiki/Test_d%27int%C3%A9gration http://fr.wikipedia.org/wiki/Non-r%C3%A9gression http://fr.wikipedia.org/wiki/Bo%C3%AEte_noire_%28informatique%29 http://fr.wikipedia.org/wiki/M%C3%A9thode_formelle_%28informatique%29 http://master-info.univ-fcomte.fr/m2.pro/cours/coursTestBL.pdf http://dico.developpez.com/html/1128-Projet-plan-de-test.php http://dico.developpez.com/html/1139-Projet-tests.php http://dico.developpez.com/html/1125-Projet-niveaux-de-test.php

05/11/2007

test des logiciels

37

Merci pour votre coute

05/11/2007

test des logiciels

38