Licence 3 Informatique – Génie Logiciel

Programming, Testing, Software Engineering · exam

Voir tous les documents en génie logiciel

Licence 3 Informatique – Génie Logiciel

Tests Unitaires & Structures de données

Objectifs

ü Comprendre le fonctionnement des tests unitaires à travers quelques Katas simples (et

très connus).

ü Pour chaque exercice vous devrez écrire le test AVANT d’écrire le code de la

solution.

ü La priorité pendant la séance de TD sera d’écrire ces tests, le code proprement dit

pourra être écrit et testé lors du prochain TP.

Rappels de commande

Dans le cadre de ce TP vous aurez besoin de relativement peu d’instructions JUnit.

• Les tests d’égalité se font avec assertEquals(expected, value)

• Les tests de condition : assertTrue(condition) ou assertFalse(condition)

Exercice 1 : Fizz Buzz

L’objectif est d’écrire un programme reposant sur une classe FizzBuzz possédant une seule

Publicité

méthode :

ü String getResult(int val)

Cette méthode répond « Fizz », « Buzz » ou « FizzBuzz » en fonction du nombre fourni en

paramètre :

ü « Fizz » si le nombre est divisible par 3

ü « Buzz » si le nombre est divisible par 5

ü « FizzBuzz » si le nombre est divisible par 15

Questions :

ü Ecrivez le test unitaire correspondant à la classe FizzBuzz

ü Ecrivez la classe FizzBuzz avec une méthode principale permettant d’afficher toute

les valeurs comprises entre 0 et 100 à l’écran et respectant les règles précédentes (si le

nombre est divisible par 3 on affiche « Fizz » à la place de ce nombre. Idem pour

« Buzz » et « FizzBuzz »)

Mode avancé pour les plus rapides :

ü « Fizz » si le nombre est divisible par 3 OU est composé d’un 3 (comme 13 par

Publicité

exemple)

ü « Buzz » si le nombre est divisible par 5 OU est composé d’un 5.

Génie Logiciel

Licence 3 Informatique – Génie Logiciel

Exercice 2: Berlin-Uhr

L’horloge berlinoise a été inventée par Dieter Binninger. C’est la première horloge

permettant d’afficher l’heure uniquement à l’aide de lumières. Elle fut installée à

Berlin en 1975.

Fonctionnement de l’horloge

Le fonctionnement est en fait assez simple. Chaque ligne de l’horloge permet de définir une

certaine durée écoulée. La lecture des lignes se fait de haut en bas.

ü Chaque lumière de la première ligne représente une durée de 5h

ü Chaque lumière de la seconde ligne représente une durée de 1h

ü Chaque lumière de la troisième ligne représente une durée de 5min

ü Chaque lumière de la quatrième ligne représente une durée d’1min

Publicité

ü La grosse lumière ronde en haut de l’horloge est allumée lorsque le nombre de

seconde est pair, éteinte sinon

Les couleurs des lampes sont là pour faciliter la lecture. Ainsi, sur la troisième ligne qui

représente les minutes, les lampes 3, 6 et 9 sont rouges et les autres jaunes. Elles représentent

les quarts d’heure.

Les lumières peuvent donc avoir trois valeurs :

ü R : Rouge

ü O : Off

ü J : Jaune

Dans cet exercice nous allons donc faire une conversion d’une heure au format

heures:minutes:secondes (exemple : 12:18:48) en un affichage en ligne de commande

correspondant à l’horloge de Berlin.

Questions

ü Ecrivez le test permettant de vérifier le fonctionnement de la classe BerlinUhr

ü Ecrivez la classe BerlinUhr

Publicité

Exercice 3 : Calculatrice Postfixée ou calculatrice polonaise

Le principe de la notation polonaise repose sur l’idée que l’opérateur doit suivre les

opérandes. Le grand intérêt de cette notation est qu’elle rend inutile l’utilisation de

parenthèses et peut donc s’utiliser de manière interactive :

ü 3 + 4 à 3 4 +

ü (3 + 4) 5 à 3 4 + 5 ou 5 3 4 + *

Questions

ü Quelle est la structure de données qui vous parait la plus adaptée ? Pourquoi ?

ü Comment allez-vous différenciez les chiffres des nombres ?

ü Comment allez-vous gérer les nombres négatifs ?

ü Une fois que vous avez répondu à ces questions, écrivez le test de la calculatrice

ü Ecrivez ensuite la classe CalculatricePolonaise qui permettra d’effectuer les calculs fournis au

clavier par l’utilisateur.

Génie Logiciel