35
OUTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

Embed Size (px)

Citation preview

Page 1: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

1

OUTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL

Généralités et cas des EJB

Réalisé par: • ElhajAyach Souhail• Ayadi Haifa • Ben Brahim Imen• Hichri Abir

Page 2: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

2

• Définition des tests logiciels• Objectifs des méthodes de test

Introduction: 

• Classification des tests• Les tests de la « boite noire » et « la boite blanche »• Test fonctionnel :

• Test unitaire• Tests d’intégration système

• Test non fonctionnel :• Test de performance• Test de sécurité

Outils et méthodes de test logiciel

• JUnit• Cactus

Outils de test des EJB 

Conclusion:

SO

MM

AIR

E

Page 3: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

3

PROBLÉMATIQUE

La réalisation d’un logiciel demande beaucoup

d’efforts et d’attention.

Le nombre de concepts / d’objets à manipuler peut

vite devenir problématique.

Le besoin du client est devenu plus complexe et

difficile à réaliser.

Page 4: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

4

DÉFINITION

o Le test est l’exécution ou l’évaluation

d’un système ou d’un composant , par des

moyens automatiques ou manuels , pour

vérifier qu’il répond à ses spécifications

ou identifier les différences entre les

résultats attendus et les résultats obtenus.

Page 5: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

5

OBJECTIFS DES TESTS

L'objectif du test est de valider le bon

fonctionnement d'un logiciel par rapport aux

besoins et aux exigences recueillis auprès des

utilisateurs.

Il permet d'assurer un niveau de qualité suffisant

pendant le cycle de développement et de vie

d'un logiciel.

Page 6: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

6

OBJECTIFS DES TESTS

Identifier des dysfonctionnements, des anomalies ou des régressions.

Respecter les exigences du client.

Page 7: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

7

LES TESTS RÉPONDENT AUX QUESTIONS SUIVANTES:

Est-ce que ça marche comme

prévu?

Est-ce que c’est conforme

aux spécifications?

Est-ce que ça correspond aux

attentes du client?

Quels sont les points à

améliorer?

Page 8: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

8

OUTILS ET MÉTHODES DE TEST

Page 9: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

9

CLASSIFICATION DES TESTS

Le concept de la séparation des préoccupations dans le

développement logiciel est également à respecter lors

de l’élaboration des tests qui doivent répondre à une

préoccupations précises.

Il est donc impératif de savoir :

quel est le périmètre du (sous-)système testé

à quel niveau d'abstraction se place-t-on?

Si l'application est divisée en couches (architecture n-tiers),

avec l'API de quelle couche le test est écrit?

quelles sont les suppositions? Si on teste une couche

donnée, on suppose que les couches inférieures

fonctionnent (elles-mêmes seront testées dans d'autres

tests).

Page 10: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

CLASSIFICATION DES TESTS

Différentes classes de tests selon :• les critères de test utilisées • Les entités utilisées (spécification, code source, exécutable…)

Exemples de classes :Les modalités de test : Statique / DynamiqueLes méthodes de test : Structurelle / FonctionnelleLes niveaux de tests : Unitaire / Intégration / Système Les caractéristiques de test : Robustesse / Conformité

/Performance 10

Page 11: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

11

CLASSIFICATION DES TESTS

Page 12: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

12

«  BOITE NOIRE» ET «  BOITE BLANCHE»

On peut parler de tests « boîtes blanches » ou de tests « boîtes noires » selon la visibilité que peut avoir le développeur qui élabore les tests sur le code.

Les tests en boîte blanche sont des tests qui prennent les mécanismes internes en considération .

Les tests en boîte noire s’exécutent en ignorant les mécanismes internes du produit, indépendamment de l’implémentation.

Page 13: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

13

Les Avantages: Avec les tests boîte blanche, l'accès au

code testé permet de voir les différentes branches et de couvrir les différents cas d'erreurs possibles.

Les tests en boite noire garantissent qu’une fois écrits, l'implémentation de la classe testée peut changer sans mise à jour du test. Ainsi, en Java, un test « boîte noire » écrit en faisant appel aux méthodes d'une interface peut permettre de tester toutes les classes qui réalisent cette interface.

«  BOITE NOIRE» ET «  BOITE BLANCHE»

Page 14: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

14

TESTS FONCTIONNELS ET TESTS NON FONCTIONNELS

TESTS FONCTIONNELS

Page 15: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

15

TEST FONCTIONNEL

On parle de tests fonctionnels quand il s'agit de vérifier qu'une classe permet bien de remplir avec succès l'objectif fixé par un cas d'utilisation donné.

Un test fonctionnel permet ,par exemple, de répondre aux questions:

« Est-ce que le code permet de faire ça ? »

« Est-ce que cette fonctionnalité attendue est bien réalisée ? ».

Page 16: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

16

TEST FONCTIONNEL: TEST UNITAIRE

Un test unitaire, au sens Agile, est un court programme, écrit et maintenu par les développeurs, servant à vérifier de manière très étroite le bon fonctionnement d'une partie restreinte du programme principal.

Son résultat est binaire: il "passe" si le comportement du programme est celui attendu et "échoue" dans le cas contraire

Page 17: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

17

Test du type boîte noire canalisé sur la vérification des requêtes de l’application.

S'assurer que les interfaces des composants sont cohérentes entre elles et que le résultat de leur intégration permet de réaliser les fonctionnalités prévues

L'application doit fonctionner dans son environnement de production, avec les autres applications présentes sur la plateforme et avec le système d'exploitation.

TEST FONCTIONNEL: TEST D’INTÉGRATION

Page 18: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

18

On teste ici par la méthode boîte noire la fiabilité et la performance de l'ensemble du système, tant au niveau fonctionnel que structurel, plutôt que de ses composants.

S'assure que le système complet, matériel et logiciel, correspond bien à la définition des besoins tels qu'ils avaient été exprimés.

TEST FONCTIONNEL: TEST SYSTÈME

Page 19: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

19

TESTS FONCTIONNELS ET TESTS NON FONCTIONNELS

TEST NON FONCTIONNEL

Page 20: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

20

Les tests non-fonctionnels vérifient des propriétés qui ne sont pas directement liées à une utilisation du code.

Il s'agit de vérifier des caractéristiques telles que la sécurité ou la capacité à monter en charge. Les tests non-fonctionnels permettent plutôt de répondre à des questions telles que:

TEST NON FONCTIONNEL

« Est-ce que cette classe peut être utilisée par 1000 threads en même temps sans erreur ? ».

Page 21: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

21

Permet d'évaluer la capacité du programme à fonctionner correctement par rapport aux critères de flux de données et de temps d'exécution.

Ces tests doivent être précédés tout au long du cycle de développement du logiciel d'une analyse de performance, ce qui signifie que les problèmes de performances doivent être pris en compte dès les spécifications.

TEST NON FONCTIONNEL: TEST DE PERFORMANCE

Page 22: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

22

Les tests de sécurité et de contrôle d’accès portent sur deux domaines clés de la sécurité : La sécurité au niveau de l’application

incluant l’accès aux fonctions de traitement de données.

La sécurité au niveau du système, incluant la connexion à distance au système.

Teste la manière avec laquelle le système protège contre les accès interne ou externes pas autorisés.

TEST NON FONCTIONNEL: TEST DE SÉCURITÉ

Page 23: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

23OUTILS DE TEST DES EJB

Page 24: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

24

JUnit est un Framework de test unitaire pour le langage de programmation Java. Créée par Kent Beck et Erich Gamma.

JUnit définit deux types de fichiers de tests :

Les TestCase sont des classes contenant un certain nombre de méthodes de tests.

Une TestSuite permet d'exécuter un certain nombre de TestCase déjà définis.

JUNIT (1)

Page 25: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

25

JUNIT (2)

Page 26: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

26

import java.io.*; import junit.framework.*; public class FileTest extends TestCase { public void testIsDirectory() {

File dir = new File("/etc"); assertTrue(dir.isDirectory());

} }

JUNIT (3)

Page 27: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

27

public class VectorTest extends TestCase { public void testClone() { Vector v1 = new Vector(2); v1.add("Test"); v1.add("Case") Vector v2 = (Vector) v1.clone(); assertNotSame(v1,v2); assertEquals(v1,v2); } }

JUNIT (4)

Page 28: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

28

public class FileTest { private File dir; protected void setUp() { dir = new File("/etc"); } public void testIsDirectory() { assertTrue(dir.isDirectory()); } }

JUNIT (5)

Page 29: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

29

TestCase tc = new VectorTest("testClone"); tc.runTest();

TestSuite mysuite = suite(); TestResult result = new TestResult();

mysuite.run(result);

JUNIT : EXÉCUTION TEST

Page 30: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

30

CACTUS

Framework de test pour servlet,JSP,EJB

Fonctionne avec conteneur JBSoss et WebLogic pour EJB

Page 31: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

31Test d'intégration avec Cactus

Page 32: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

32

CACTUS

Page 33: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

33

CACTUS

Page 34: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

34

CONCLUSION

Le test vise à mettre en évidence les erreurs d’un logiciel

Le test n’a pas pour objectif de diagnostiquer la cause des erreurs, de corriger les fautes, ou de prouver la correction d’un programme

Pour un logiciel critique, le coût du test peut représenter plus de 40% du coût du développement

Page 35: O UTILS DE TEST FONCTIONNEL ET NON FONCTIONNEL Généralités et cas des EJB Réalisé par: ElhajAyach Souhail Ayadi Haifa Ben Brahim Imen Hichri Abir 1

MERCI