User Tools

Site Tools


2018_2019:s3:concprogobjet:td:td5

This is an old revision of the document!


Tests d'intégration et conception en autonomie

Ce TD vise

  1. à vous apprendre à mettre en place des tests d'intégration
  2. à 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.
  1. Soyez itératif, faîtes en sorte de toujours avoir un code qui tourne.
  2. 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.

  1. 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.
  2. 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
    1. En tant que joueur, je veux répondre à une question du quizz TRES FORTE PRIORITE
      1. Si j'ai la bonne réponse je gagne 1pt
      2. Si je n'ai pas la bonne réponse, la bonne réponse m'est donnée.
      3. La vérification de la réponse ne dépend pas des minuscules ou majuscules
      4. ex :
        1. “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
        2. “Quelle est la capitale de l'Espagne”, je réponds madrid … j'ai gagné 1 pt
        3. “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
    2. En tant que joueur, je veux jouer une partie de quizz, de façon à m'amuser en vérifiant mes connaissances. FORTE PRIORITE
      1. 10 questions sont posées au joueur
      2. Seules des questions auxquelles le joueur n'a jamais répondu juste lui sont posées.
      3. S'il n'y a plus assez de questions “nouvelles”, le joueur est invité à charger d'autres questions.
      4. 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.
      5. ex :
        1. Je lance une partie à mon nom
          1. 10 questions me sont posées et je réponds juste à 4 questions
          2. 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.
    3. 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
      1. Je peux voir les dates de parties, le nombre de points marqués par partie.
      2. ex.
        1. Etant donné que J'ai joué 5 parties….
        2. Je visualise les 5 parties avec leur date et le nombre de points marqués.
        3. Je peux en savoir plus sur une partie : durée de la partie, et juste, juste, fausse, ….
    4. En tant que producteur de questions, je veux pouvoir ajouter des questions à la base de questions PRIORITE MOYENNE
      1. Une question est composée d'une question et d'une réponse.
      2. On ne vérifie pas si la question existe déjà, on suppose que le producteur sait ce qu'il fait.
      3. ex.
        1. Etant donné que dans ma base, il y a déjà 3 questions.
        2. J'ajoute la question “Praia est la capitale de quel pays?” réponse Capt Vert
        3. Il y a 4 questions dans la base à présent dont ma nouvelle question.
    5. En tant que joueur, je veux pouvoir charger de nouvelles questions PRIORITE MOYENNE
      1. ex.
        1. Etant donné que j'ai déjà 3 questions dans ma base.
        2. Je charge la nouvelle série de questions datée du 27/10
        3. J'ai maintenant toutes les questions que j'avais avant plus les nouvelles questions.
        4. 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

  1. 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.
  2. Vous pouvez à partir de là choisir de focaliser sur une histoire ou de traiter plusieurs histoires en même temps.
    1. Développement : V0
      • Développez le jeu en testant chacun individuellement vos classes et en utilisant les mocks pour les interactions.
    2. 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.
  3. V1 : Choisissez une extension, complétez les histoires et allez jusqu'au code correspondant.
  4. 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");
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.1541229957.txt.gz · Last modified: 2018/11/03 08:25 by blay