Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

TP 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

LSI2

TP : Hadj Abd Allah Mohamed amine


Khalifa Ameni
tests logiciels
Haffar Nafaa

Objectif de TP :

 Comprendre les bases de JUnit, son rôle dans les tests unitaires et
comment l'intégrer dans le processus de développement.
 Apprendre à écrire des tests unitaires simples en utilisant les annotations
JUnit telles que @Test, @Before, et @After.
 Comprendre comment utiliser les différentes type assertions pour vérifier
le comportement attendu du code testé.

Introduction :

Le test logiciel est une étape essentielle du processus de développement logiciel visant
à garantir la qualité, la fiabilité et la performance d'un logiciel. Il s'agit de la vérification
systématique du comportement d'une application pour s'assurer qu'elle répond aux exigences
spécifiées. L'objectif ultime est d'identifier et de corriger les défauts avant que le logiciel ne
soit déployé en production.

Les tests logiciels peuvent être effectués à différentes étapes du cycle de vie du
développement logiciel, de la phase de conception à la maintenance continue. Ils sont conçus
pour valider le bon fonctionnement des différentes composantes du logiciel, garantir la
conformité aux spécifications, et assurer une expérience utilisateur sans erreur.

Il existe plusieurs types de tests logiciels, chacun ayant un objectif spécifique. Certains
des principaux types de tests sont les suivants :

 Test unitaire : Il vise à tester des unités individuelles de code, comme des fonctions ou
des méthodes, afin de s'assurer qu'elles fonctionnent correctement. Les tests unitaires
sont automatisés et sont souvent effectués par les développeurs.
 Test d'intégration : Il vérifie que les différentes parties d'un système interagissent
correctement entre elles. L'objectif est de détecter les problèmes qui pourraient survenir
lors de l'intégration des composants.
 Test fonctionnel : Il s'agit de tester le logiciel du point de vue des fonctionnalités
spécifiées. Les tests fonctionnels valident que le logiciel répond correctement aux
exigences définies.
 Test de performance : Il évalue les performances d'une application, en mesurant sa
réactivité, sa stabilité et sa capacité à gérer un certain volume de données ou
d'utilisateurs simultanés.
 Test de charge : Il teste la capacité d'une application à gérer des charges de travail
élevées. L'objectif est de déterminer le point au-delà duquel le système commence à
montrer des signes de dégradation des performances.

1 ---------------------------- FSM - Faculté des Sciences de Monastir


 Test de sécurité : Il évalue la résistance d'une application aux attaques et aux
vulnérabilités. L'objectif est de s'assurer que le logiciel est sécurisé contre les menaces
potentielles.
 Test de convivialité (usabilité) : Il évalue la facilité d'utilisation de l'interface
utilisateur et s'assure que le logiciel est convivial pour les utilisateurs finaux.
Chaque type de test contribue à assurer la qualité du logiciel d'une manière spécifique, et
leur combinaison offre une couverture complète pour garantir que le logiciel fonctionne de
manière fiable et conforme aux attentes des utilisateurs.

Au cours de cette session, l'accent est principalement mis sur les tests unitaires en langage
de programmation Java en utilisant la bibliothèque JUnit.
JUnit est un Framework de test unitaire pour le langage de programmation Java. Il fournit
un ensemble de bibliothèques et d'annotations qui permettent aux développeurs de créer et
d'exécuter des tests automatisés pour vérifier la validité et le bon fonctionnement de leurs
codes. JUnit facilite la mise en place de suites de tests qui permettent de valider les différentes
parties d'une application de manière automatisée.
L'objectif principal de JUnit est d'automatiser le processus de vérification des unités
individuelles de code, appelées « tests unitaires ». Ces tests isolent une petite partie du code
source et vérifient son comportement en fonction de différentes entrées. Les résultats de ces
tests peuvent indiquer si le code fonctionne correctement ou s'il présente des erreurs.
JUnit utilise des annotations pour définir des méthodes de test, et chaque méthode de test
est responsable de vérifier une condition spécifique. Les annotations telles que @Test,
@Before, @After, @BeforeClass, @AfterClass et @Ignore permettent de spécifier le cycle
de vie des tests et d'effectuer des actions avant ou après l'exécution des tests.

Pour clarifier, il existe des différences entre JUnit version 5 et JUnit version 4 dans leurs
annotations, comme illustré dans le tableau ci-dessous. Ces changements ont été mis en place
pour respecter des conventions de nommage plus descriptives et cohérentes.

JUnit 4 JUnit 5 (Jupiter)


@Test  @Test
@Before  @BeforeEach
@After  @AfterEach
@BeforeClass  @BeforeAll
@AfterClass  @AfterAll
@Ignore or @Ignore("...")  @Disabled

Note : À partir de cette séance, le code sera rédigé par vous.

Exercice 1 :
1) Écrivez une méthode nommée « truncate() » qui supprime la lettre « A » si elle existe
dans les premiers caractères d'une chaîne de caractères donnée par l'utilisateur.

2 ---------------------------- FSM - Faculté des Sciences de Monastir


2) Tester la méthode par exécution de la main ()

3) Créer une fonction test ()


a) Créer une package test dans laquelle une class Test
b) Ajouter l’importation nécessaire pour utiliser JUnit (si nécessaire)

c) Taper la méthode « test() » pour tester la méthode « truncate() »

d) Quelle est le test case dans cette méthode ?


e) Expliquer le but de la méthode assertEquals()

3 ---------------------------- FSM - Faculté des Sciences de Monastir


f) Modifier cette méthode en ajoutant autre test cases
 AD D
 ACD CD
 CDAA  CDAA
 CDEF  CDEF

FSM - Faculté des Sciences de


Monastir

Vous aimerez peut-être aussi