2018_2019:s3:concprogobjet:td:td5
This is an old revision of the document!
Table of Contents
Tests d'intégration et conception en autonomie
Ce TD vise
- à vous apprendre à mettre en place des tests d'intégration
- à concevoir une petite application à plusieurs en prévoyant les tests d'intégration.
4h c'est à dire 2 séances seront consacrées à ce TD.
Vous ne parviendrez peut etre pas à tout faire.
- Soyez itératif, faîtes en sorte de toujours avoir un code qui tourne.
- Ne trainez pas non plus !
Partie 1 : Tutoriel EasyMock (1/2h grand maximum)
Si vous dépassez le temps passez à la suite et revenez dessus plus tard.
- Suivez le “getting started” de easyMock Mais au lieu d'utiliser maven utilisez directement le fichier jar ci-joint 1). Pour cela, sur le nom du projet > Properties > Java Build Path > Puis ajouter le .jar ci dessus.
- Vérifiez que tout fonctionne et comprenez évidemment.
Partie 2 : Un jeu de Quizz
Vous devez réaliser en groupe de 2 étudiants un jeu de quizz dont voici la spécification.
Spécifications
- V0 : Version de base
- En tant que joueur, je veux répondre à une question du quizz TRES FORTE PRIORITE
- Si j'ai la bonne réponse je gagne 1pt
- Si je n'ai pas la bonne réponse, la bonne réponse m'est donnée.
- La vérification de la réponse ne dépend pas des minuscules ou majuscules
- ex :
- “Quelle est la capitale de la France”, je réponds PARIS, le jeu me félicite et m'annonce que j'ai gagné 1 pt
- “Quelle est la capitale de l'Espagne”, je réponds madrid … j'ai gagné 1 pt
- “Quelle est la capitale de l'Érythrée”, je réponds Assab, le jeu m'annonce que la bonne réponse est Asmara, je n'ai pas gagné de points
- En tant que joueur, je veux jouer une partie de quizz, de façon à m'amuser en vérifiant mes connaissances. FORTE PRIORITE
- 10 questions sont posées au joueur
- Seules des questions auxquelles le joueur n'a jamais répondu juste lui sont posées.
- S'il n'y a plus assez de questions “nouvelles”, le joueur est invité à charger d'autres questions.
- La partie est enregistrée à la fin de la partie, i.e. que si on interrompt la partie en cours de jeu, elle n'est pas enregistrée.
- ex :
- Je lance une partie à mon nom
- 10 questions me sont posées et je réponds juste à 4 questions
- A la fin de la partie le système me signale que j'ai gagné 4 points et que la partie est enregistrée sous mon nom.
- En tant que joueur, je veux consulter les différentes parties que j'ai réalisées, de façon à vérifier ma progression PRIORITE FAIBLE
- Je peux voir les dates de parties, le nombre de points marqués par partie.
- ex.
- Etant donné que J'ai joué 5 parties….
- Je visualise les 5 parties avec leur date et le nombre de points marqués.
- Je peux en savoir plus sur une partie : durée de la partie, et juste, juste, fausse, ….
- En tant que producteur de questions, je veux pouvoir ajouter des questions à la base de questions PRIORITE MOYENNE
- Une question est composée d'une question et d'une réponse.
- On ne vérifie pas si la question existe déjà, on suppose que le producteur sait ce qu'il fait.
- ex.
- Etant donné que dans ma base, il y a déjà 3 questions.
- J'ajoute la question “Praia est la capitale de quel pays?” réponse Capt Vert
- Il y a 4 questions dans la base à présent dont ma nouvelle question.
- En tant que joueur, je veux pouvoir charger de nouvelles questions PRIORITE MOYENNE
- ex.
- Etant donné que j'ai déjà 3 questions dans ma base.
- Je charge la nouvelle série de questions datée du 27/10
- J'ai maintenant toutes les questions que j'avais avant plus les nouvelles questions.
- Attention les références aux questions ne sont pas perdues, i.e. que si j'ai déjà répondu à la question sur “la capitale de Paris”, la question ne me sera pas reposée.
- V1A : Plusieurs joueurs
- V1B : Des catégories de questions.
- V1C : Des difficultés de questions.
- V1D : Persistance : les questions sont stockées dans un fichier, de même pour les paties. vous pouvez utiliser si vous en avez envie la partie sur la mémoire du TD X
A faire
- Conception : V0 (Environ 1/2 heure intense)
- Conseils
- Concevez l'application V0 à deux (i.e. UC, Classes a minima, un diagramme de séquence pour analyser le déroulement d'une partie est conseillé)
- Partagez le travail à réaliser
- Prévoyez les tests à réaliser pour chacune des histoires, vous pouvez même faire du TDD
- Enrichissez les histoires si besoin pour être sûrs de savoir les tester.
- Vous pouvez à partir de là choisir de focaliser sur une histoire ou de traiter plusieurs histoires en même temps.
- Développement : V0
- Développez le jeu en testant chacun individuellement vos classes et en utilisant les mocks pour les interactions.
- Intégration : V0
- Mettez vos codes en commun
- Testez une histoire et vérifier que vous pouvez dire qu'elle est terminée, c'est à dire que tous les tests passent.
- Faîtes les tests sur toutes les histoires, soyez itératif.
- V1 : Choisissez une extension, complétez les histoires et allez jusqu'au code correspondant.
- Si vous êtes ici et que vous en avez envie ajoutez une autre extension.
Quelques trucs utiles
Pour Interroger vous pouvez utiliser:
import javax.swing.JOptionPane; .... String m = JOptionPane.showInputDialog("Anyone there?"); System.out.println(m); // juste pour expliquer ici JOptionPane.showMessageDialog(null, "A oui, il y a quelqu'un");
A RENDRE
1)
Si vous êtes à l'aise avec maven pas de souci pour l'utiliser mais sinon ne perdez pas du temps là dessus
2018_2019/s3/concprogobjet/td/td5.1541230038.txt.gz · Last modified: 2018/11/03 07:27 by blay