Home

Oto, un outil d`aide à la correction de programmes Guide d

image

Contents

1. Interactif donn es et r sultats entrelac s o les E donn es sont indiqu es par Non interactif Interactif Fichiers auxiliaires optionnels Tests Oto2 Labo5 Clavier java Browse J ILabo5 MessagesLabo51 java Browse Champs requis Oto Un outil g n rique et extensible pour corriger les travaux de programmation On remarque qu on doit fournir deux fichiers auxiliaires fichiers mis la disposition des tudiants par l enseignant Clavier java et MessagesLabo51 java ces fichiers sont fournis sous forme non compil e fichiers java mais ils pourraient aussi tre fournis sous forme d j compil e fichiers class Dans ce dernier cas l ex cution de la commande serait plus rapide toutefois c est alors vous de vous assurer que vous fournissez une version jour Les r sultats affich s seront alors semblables ceux pr sent s la figure 8 Comme on peut le con stater ces r sultats sont semblables ceux obtenus pour des ex cutions dela commande v rifier un TP utilisant des valuations d finies par vos enseignants 19 Figure 8 R sultat produit par l ex cution de la commande Tester un programme Filtre Informations oe ge se xe e nee e xe eoe eoe e eoe eee eee eoe xe exeo eoe eee eoe eoe eee eoe eoe eee eee oli oc o ok oke oie ok oi ole se Sle sl ok Rapport complet de correction Oto Nom de l evaluation evalTemporaire En date du 2
2. 6 3 L ex cution des tests Figure 6 Contenu du fichier Labo51 java class Labo51 1 public static void main String args int i 0 System out println MessagesLabo51 MESSAGE SAISIE int n Clavier lireIntLn if gt 0 amp amp n lt 15 for X nr i 0 di X System out print 20 i T for i 0 i lt n i System out print 20 i System out println else System out println MessagesLabo51 MESSAGE ERREUR Une fois les cas de tests sp cifi s on peut alors tester une classe d finissant le programme appropri Dans ce qui suit nous allons supposer que cette classe se nomme Labo51 java et que son contenu est tel que sp cifi la figure 6 18 La figure 7 illustre le formulaire Web qu il faut compl ter une fois le fichier de tests correctement sp cifi pour tester le bon fonctionnement du programme Labo51 java Figure 7 Formulaire pour tester un programme filtre Oto tudiant enue tg Se d connecter Tester un programme Rendre un TP p P Type Filtre M thodes Classe Em Programme v rifier ests Oto2 Labo5 Labo51 java Browse J Tester un Fichier de sp cification des S EE Os tests Oto2 Labo5 tests labo51 txt Browse Mode de comparaison Indulgent Strict Mode de sp cification des tests Non interactif donn es et r sultats s par s par
3. JUnit version 4 5 Time 0 039 OK 4 tests nbtests 4 nberreurs 0 Pourcentage 100 0 32 9 Sed connnecter L ex cution de l op ration Se d connecter termine la session en cours puis retourne la page d accueil Une partie des informations fournies dans les divers formulaires sera alors perdue i e de vra tre explicitement fournie lors d une prochaine session 33
4. crivez une classe Compteur qui permet de g rer un compteur entier e Le constructeur de la classe permettra de sp cifier la valeur initiale int du compteur e Une op ration inc permettra d ajouter une certaine valeur enti re type int donc possiblement n gative la valeur du compteur e Une op ration dec permettra de d cr menter le compteur d une certaine valeur type int donc possiblement n gative e Une op ration val permettra d examiner la valeur du compteur L nonc du probl me que nous utiliserons comme exemple est pr sent la figure 18 8 2 La sp cification des cas de tests Un programme qui d finit une classe peut tre test en v rifiant pour diverses s ries d appels le r sultat produit par un appel aux m thodes qui retournent un r sultat c est dire les m thodes qui d finissent des observateurs Dans le cas pr sent la seule m thode de ce type est val La figure I9 pr sente le contenu d un fichiel cest s labo compteur txt permettant de sp cifier quatre 4 cas de tests pour la classe Compteur Ce fichier de sp cification de jeux d essai pour la classe Compteur contient les l ments suivants e Lignes 1 4 la description des signatures des m thodes export es par le classe Dans chaque cas on doit sp cifier le type du r sultat retourn qui peut tre void le nom de la m thode puis les types des arguments dans le cas du constructeur le type du r sultat
5. 0 et 15 inclusivement 16 17 18 19 20 20 19 18 17 Details du test Test simple Donnees d entree 5 Resultats attendus Entrez un nombre entier entre 0 et 15 inclusivement 15 16 17 18 19 20 19 18 17 16 15 Resultats obtenus Entrez un nombre entier entre 0 et 15 inclusivement 16 17 18 19 20 20 19 18 17 2 Test avec juste un element java Labo51PasOk Differences resultats attendus vs obtenus kk k k k k k k k k k k k k x 1 2 k k Entrez un nombre entier entre 0 et 15 inclusivement 20 cons 1 2 en Entrez un nombre entier entre 0 et 15 inclusivement Details du test Test avec juste un element Donnees d entree 0 Resultats attendus Entrez un nombre entier entre 0 et 15 inclusivement 20 Resultats obtenus Entrez un nombre entier entre 0 et 15 inclusivement xxx Les tests suivants ont produit des differences Test simple Test avec juste un element xxx Sommaire 3 test s execute s 2 erreur s xxx 23 7 Tester un programme M thodes Une classe Java qui exporte uniqu
6. aide de la commande Unix di dont la page man indique ce suit diff display line by line differences between pairs of text files Produces a listing of differences with three lines of context output begins with identification of the files involved and their creation dates then each change is separated by a line with a dozen s The lines removed from file1 are marked with those added to file2 are marked Lines that are changed from one file to the other are marked in both files with Des exemples sont pr sent s plus bas Section 3 2 2 Des v rifications bas es sur le comportement d une classe tel que sp cifi par des tests JUnit 2On parle alors d un programme de type filtre Pour un tel programme les seules interactions avec l environnement consistent lire des donn es sur l entr e standard st din en C Unix Linux System in en Java et mettre des r sultats sur la sortie standard st dout en C Unix Linux System out en Java Figure 1 Exemple de rapport produit par la v rification d un travail Rapport LELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLELLLLLLLLLLLLLLLLLLLLLLLLLLLLEL Rapport complet de correction Oto Non de Ll evaluation EvalAfficherimnpairs En date du 2014 09 18 a 11 10 LLLI 1I MWNANAMTAAMTAMWAMWVARHVATRHAMTAMWAMTAMWATAWATATAWAMTAMWTWAMTAWATAWATAMTVAMTVAMTMAMAMAMTAMTAMAMMTAMAMTAATA TRAVAIL Verification preliminaire fichiers de argv 1411853837 25644 tp o
7. au lieu du 3 attendu le programme a produit un 2 Quant aux autres lignes par ex avec l invite Donnez un nombre positif elles sont identique dans les deux cas donc pas de pr fixe La commande diff utilis e par Oto affiche toujours un certain nombre de lignes de contexte c est dire des lignes qui entourent les extraits compar s 3Signalons que certaines des lignes qui suivent ont t tronqu es ou lid es pour des raisons de mise en page mais tout en s assurant de conserver les parties n cessaires la compr hension e R sultat pour test 3 2 test 3 java cp home tremblay gu public eval oto AfficherImpairs Differences resultats attendus vs obtenus k k k k k k k k k xk k x 1 2 xxxx ws 15 3 Donnez un nombre positif oce 1 Pour cet autre cas test nomm test 3 l ex cution du programme sur les donn es a g n r l aussi des diff rences qui s expliquent comme suit Si on compare les deux premi res lignes de la sortie attendue avec les trois premi res lignes de la sortie obtenue on constate que la sortie obtenue a g n r une ligne additionnelle indiqu e par le signe contenant 1 Signalons que le contenu exact des cas de tests donn es et r sultats attendus ne sont pas rendus publics par Oto C est plut t l enseignant s il le d sire qui doit les rendre publics et ce ind pendamment de l outil Oto 3 3 Quelques cas particulie
8. ce l aide de l op ration Confirmer une remise Si cette op ration s effectue l int rieur d une m me session donc sans que l op ration Se d connecter n ait t ex cut e certains champs du formulaire seront alors automatiquement remplis comme l illustre la figure suivante Se d connecter Rendre un TP tremblay gu Chercher Confirmer une remise Afficherlmpairs EZ Tester un programme TREG05065801 E g V rifier un TP Le r sultat produit par cette commande aura exactement la m me forme que le r sultat produit lors d une op ration Rendre un TP Signalons que c est l identit username utilis e lors de la connexion qui d termine s il s agit ou non d une remise multiple par une m me personne et non pas les identifiants codes permanents du ou des membres de l quipe 15 6 Tester un programme Filtre Un filtre est un programme qui obtient des donn es uniquement partir de l entr e standard System in en Java par d faut le clavier et qui produit des r sultats uniquement sur la sortie standard System out en Java par d faut l cran Dans ce qui suit nous allons illustrer comment tester avec Oto des pro grammes filtres crits en Java Plus pr cis ment de tels programmes peuvent tre test s l aide de scripts de tests bas s sur la comparaison des r sultats textuels produits par le programme et des r sultats attendus et ce l aide de la command
9. de remettre leurs travaux en ligne et en plus de faire v rifier de facon pr liminaire leurs travaux avant de les remettre leur enseignant Oto permet ensuite aux enseignants de corriger les travaux remis Ce guide se veut une introduction l utilisation de l outil Oto par les tudiants Ce document se concentre donc sur la v rification pr liminaire et la remise Les op rations permettant un tudiant de Tester un programme en d finissant ses propres tests pour un programme filtre des m thodes statiques ou une classe ne sont pas d crites Soulignons qu la base Oto est une application fonctionnant sous Unix en mode ligne de comman des Toutefois une interface Web est aussi disponible http oto uqam ca application web connexion C est cette interface Web que nous d crivons dans le pr sent document Pour des informations additionnelles sur Oto on peut aussi consulter le site Web d Oto http oto uqam ca 2 Connexion et menu principal La premi re tape pour utiliser Oto consiste tablir la connexion avec le serveur sur lequel r side Oto La fen tre de connexion est la suivante Ot Systeme de remise v rification et correction de travaux de programmation Pour utiliser Oto vous devez vous connecter avec votre code d acc s du Labunix code MS Identifiant Mot de passe tudiant O Enseignant Noyau Oto r alis par Fr d ric Gu rin et Guy Tremblay D veloppem
10. permanent comme identifiant voir plus bas Dans notre exemple on suppose que l tudiant travaillait seul et que son code permanent est TREG05065801 Oto tudiant Bienvenue tg821310 Se d connecter Membres de l quipe Tester un Codes permanents ES programme V rifier un TP Rendre un TP Nom de l enseignant Itremblay gu Confirmer une remise Identifiant de la boite Afficherimpairs Fichiers remettre Browse Champs requis Oto Un outil g n rique et extensible pour corriger les travaux de programmation 12 Le r sultat affich une fois la remise effectu e l aide du bouton Rendre sera comme suit Oto tudiant Bienvenue tg821310 Se d connecter V rifier un TP Ra pport Confirmer une t9821310 2014 09 17 19 59 56 158020 TREGO5065 801 remise AfficherImpairs java 563 Wed Sep 17 19 59 56 0400 2014 Tester un programme Rendre un TP Remise effectuee dans la boite AfficherlImpairs de tremblay gu Oto un outil g n rique et extensible pour corriger les travaux de programmation Le rapport de remise contient le r sultat produit par l ex cution de la commande 1s sur le serveur Unix o r side Oto et o un r pertoire contenant le fichier remis AfficherImpairs java a t
11. positif 1 2 5 Pour ce cas test nomm test 7 l ex cution du programme sur les donn es du cas de tests a g n r des diff rences un seul endroit on s attendait obtenir 3 comme r sultat sur la ligne indiqu e de la sortie mais c est plut t 2 qui a t produit Les r sultats de programme ne sont donc pas ceux attendus et donc le programme ne fonctionne pas correctement Tel qu indiqu pr c demment les diff rences indiqu es sont celles g n r es par l ex cution de la commande diff plus sp cifiquement ici diff ctibw ce qui signifie que certaines diff rences sont en fait ignor es lors de la comparaison soit les diff rences quant aux espaces blancs en trop en moins aux caract res de tabulation par opposition aux espaces ordinaires et aux minuscules majuscules Dans le cas pr sent les diff rences d crites dans la sortie de ai s expliquent comme suit La comparaison se fait entre les r sultat attendus partie entre les et les et les r sultats obtenus apr s les c est dire mis par le programme sur la sortie standard Dansles r sultats attendus il y a certaines diff rences au niveau d une ligne ligne situ e dans le contexte des quatre premi res lignes xxx 1 4 par rapport aux quatre premi res lignes des r sultats obtenus 1 4 Ces diff rences sont celles indiqu es par la ligne pr fix e par le caract re savoir qu
12. 014 10 16 a 08 51 Ax o xe e he e e he e e e ee eee e ee ee eoe e eee ee ee e eoe e ee eee eee eee ee ee eee eee eoe eee kk eo eoe po pepe p pe pe he e eee eee ode EEE ce neben eee oodd ne ce TRAVAIL mOqz gXyIBF Equipe Depot 2014 10 16 a 08 51 Deposeur Nom tg821310 Courriel RESULTATS Compilation du fichier source reussi stdout Execution des tests avec tester filtre reussi detail OK aucun fichier n a produit de difference Sommaire 3 test s execute s 0 erreur s nbtests 3 nberreurs 0 Pourcentage 100 0 Remarque Divers fichiers et r pertoires g n r s par l ex cution de la commande peuvent avoir t mis dans le r pertoire tmpOtoWeb de votre compte labunix 20 Le mode de comparaison indulgent ou strict Les comparaisons textuelles entre les r sultats attendus et ceux g n r s par le programme sont effectu es l aide de la commande ai d Unix Par d faut les comparaisons se font de facon indulgente c est dire avec les options bitw de diff Plus sp cifiquement ceci signifie e Que lacasse des lettres est ignor e c est dire on ignore les diff rences entre lettres minuscules et majuscules e Que les diff rences au niveau des espaces sont ignor es blancs en trop en fin de ligne diff rences entre tabs et espaces suite de blancs vs blanc unique Si on d sire que les comparaisons se fassent de facon stric
13. Java en utilisant print plut t que println Avertissement caract re NL manquant k k k k k k k k k k k K x 1 2 xxxx Entrez un chiffre romain 10 1 2 Entrez un chiffre romain 10 Verifiez vos fins de ligne print prinln en Java On remarque tout d abord la pr sence de l avertissement concernant le caract re NL manquant la fin du fichier puis finalement la suggestion de v rifier les fins de lignes 10 4 Rendre TP 4 1 Remise d un travail Lorsque l tudiant d sire remettre son programme l enseignant il remplit tout d abord le champ en seignant du formulaire suivant puis presse le bouton Chercher de fa on obtenir via une liste d roulante les bo tes de remise disponibles pour cet enseignant Bienvenue 9821310 Oto Etudiant V rifier un TP Rendre un TP Rendre un TP Nom de l enseignant Itremblay gu Confirmer une remise Identifiant de la boite Afficherimpairs TUE Tester un inician de E queue odes permanents E Fichiers remettre Browse Champs requis Oto Un outil g n rique et extensible pour corriger les travaux de programmation 11 Une fois cela fait il faut alors indiquer un un les diff rents membres de l quipe ayant fait le travail remettre Signalons que la plupart des enseignants vous demanderont ici d utiliser votre code
14. Oto un outil d aide la correction de programmes Guide d utilisation destin aux tudiants G Tremblay et A Pennetier D p d informatique UQAM Octobre 2014 Table des mati res 3 V rifier TP 3 1 V rification pr liminaire d un programme 4 Rendre TP 41 _ R mise d un travail o a RO hd his 30x09 Xo 42 Contraintes de remise gt sa 4 4 sa Q SR pu K RR OE 59 Sb UR te 5 Confirmer Remise 6 Tester un programme Filtre 6 1 L nonc du probl me 6 3 L ex cution des tests 6 4 La sp cification des cas de tests l aide du mode interactif 6 5 La sp cification des noms des cas de tests Tester un programme M thodes 7 1 L nonc du probl me 7 2 La sp cification des cas de tests 7 3 P ex cution des tests 7 8 Tester un programme Classe 8 2 La sp cification des cas de tests 8 3 P ex cution des tests 9 Sed connnecter 3 2 V rification des r sultats textuels 3 3 Quelques cas particuliers de rapports de v rification 8 1 L nonc du probl me 15 16 16 17 18 21 22 24 24 24 25 28 28 28 29 33 1 Introduction Oto est un logiciel qui assiste enseignants et tudiants dans le cadre des travaux de programmation Oto permet aux tudiants
15. cr e nom de ce r pertoire encode diverses informations uniques cette remise nom de l usager ayant effectu la remise date et heure de remise num ro unique d identification et identifiants des membres de l quipe Signalons qu il est possible d effectuer plusieurs remises 2 H Bienvenue tg821310 Oto Etudiant Verrerun TP Rapport Rendre un TP Remises effectuees dans la boite Afficherlmpairs de tremblay gu t9g821310 2014 09 17 20 02 30 3355554 TREG05 065801 AfficherlImpairs java 563 Wed Sep 17 20 02 30 0400 2014 t9g821310 2014 09 17 20 02 18 231512 TREG05 065801 AfficherlImpairs java 563 Wed Sep 17 20 02 18 0400 2014 Tester un t9821310 2014 09 17 19 59 56 158020 TREG05065801 programme AfficherlImpairs java 563 Wed Sep 17 19 59 56 0400 2014 Confirmer une remise to Un outil g n rique et extensible pour corriger les travaux de programmation Chaque travail remis est alors conserv dans la boite de remise de l enseignant dans un r pertoire distinct C est l enseignant qui pourra un moment ult rieur se d barrasser des remises multiples g n ralement en ne conservant que la remise la plus r cente Les remises multiples ainsi limin es sont toutefois conserv es dans un r pertoire auxiliaire Si votre enseignant accepte de le faire il est donc possible de r cup rer une version ant rieure 13 4 2 Contraintes de remise Il est possible pour u
16. e Unix di d crite la section Toutefois la g n ration de ces tests en termes de fichiers n est pas triviale La commande que nous pr sentons ici Tester un programme Filtre permet donc d automatiser la cr ation puis l ex cution de tels tests 6 1 L nonc du probl me Figure 2 nonc du probl me pour un laboratoire Vous devez crire un programme Java qui demande son utilisateur un nombre entier entre 0 et 15 inclusivement Si le nombre entr n est pas entre 0 et 15 inclusivement le programme doit afficher Nombre refuse puis terminer son ex cution autrement dit il n y a pas de boucle de validation pour l entr e de ce nombre Appelons ce nombre n Si le nombre entr est valide le programme doit afficher les n nombres entiers pr c dant le nombre 20 en ordre croissant suivis du nombre 20 puis suivi des n nombres entiers pr c dant le nombre 20 en ordre d croissant Voici quelques exemples Nombren R sultat 5 15 16 17 18 19 20 19 18 17 16 15 12 89 10 11 12 13 14 15 16 17 18 19 20 19 18 17 16 15 14 13 12 11 109 8 1 192019 20 Vous devez utiliser la classe MessagesLabo51 java pour les diff rents messages Par exemple pour faire afficher la constante MESSAGE SAISIE utilisez l instruction System out println MessagesLabo51 MESSAGE SAISIE Voici le format des sorties que vous devez suivre Ex cution 1 Exemple avec donn e non valide Entre
17. ectionnant le fichier contenant la solution faire v rifier l aide du bouton Browse Ensuite il faut presser le bouton v rifier le bouton Ajouter fichier ne doit tre utilis que pour le cas o on d sire sp cifier plusieurs fichiers Un rapport tel que celui pr sent dans la figure I p 7 est alors produit Ce rapport pr sente tout d abord le r sultat sommaire de la v rification Dans le cas pr sent cela indique que l enseignant avait sp cifi sept 7 cas de tests et que le programme soumis pour v rifica tion n a pas fonctionn correctement pour deux 2 d entre eux d o un Resultat sur 100 de 71 43 La partie suivante du rapport pr sente les r sultats d taill s de la v rification La sortie exacte d pend alors du type de v rification En gros deux types de v rification peuvent tre effectu es 1 Des v rifications bas es sur la v rification des r sultats textuels mis par le programme sur la sortie standard Pour une telle v rification chaque cas de test est sp cifi l aide de deux l ments e Les donn es qui seront lues sur le flux d entr e standard st din System in e Les r sultats qui devont tre mis sur le flux de sortie standard stdout System out Pour chacun de ces cas de tests la v rification consiste alors comparer les r sultats attendus avec les r sultats mis par le programme sur la sortie standard Cette comparaison se fait l
18. ement des m thodes m thodes qui sont la fois public et static d finit une biblioth que de routines Dans ce qui suit nous allons illustrer comment tester avec Oto de tels programmes Plus pr cis ment de telles m thodes peuvent tre test es l aide de tests JUnit Toutefois la g n ra tion de ces tests n est pas triviale La commande que nous pr sentons ici Tester un programme M thodes permet donc d automatiser la cr ation puis l ex cution de tels tests Signalons qu une contrainte importante pour que la commande d crite ici puisse s appliquer est que les m thodes n effectuent aucune entr e sortie et qu elles soient n cessairement public et static 71 du probl me Figure 13 nonc initial d un probl me pour un laboratoire avec deux questions 1 crivez en Java une m thode qui prend en param tre trois valeurs de type double a b et c et qui retourne le r sultat du calcul de la formule suivante b Vb 2a 2 crivez une m thode qui permet de calculer le remboursement mensuel d un emprunt hypoth caire Cette m thode devra avoir 3 param tres taux taux d int r t en pourcentage un nombre r el compris entre 0 et 100 valeur type 6 5 montant montant de l emprunt un nombre r el non n gatif periode p riode d amortissement en ann e un nombre entier entre 1 et 50 valeur type 25 La m thode devra retourner comme r sultat le montant du paiement m
19. ensuel versementParMois Dansle cas o l un des param tres n est pas valide exemple taux n gatif p riode gt 50 etc la m thode doit retourner 0 Explications d taill es sur la m thode de calcul omises 1 L nonc initial du probl me que nous utiliserons comme exemple est pr sent la figure 13 Pour permettre de tester le bon fonctionnement d une premi re m thode sans n cessairement avoir compl t l autre m thode nous allons d finir des tests qui porteront uniquement sur la m thode quadra tique La m me d marche avec un fichier de sp cification de tests diff rent pourrait ensuite tre utilis e pour g n rer des tests pour la m thode versementParMois 7 2 La sp cification des cas de tests Un programme qui d finit des m thodes public et static peut tre test en comparant pour une m thode donn e le r sultat retourn par un appel la m thode avec le r sultat attendu pour cet appel Toutefois avant de tenter d ex cuter les diff rents cas de tests 1l est pr f rable de v rifier au pr alable que le programme contient bien une m thode appropri e et ce tant au niveau du type des arguments et du r sultat que des attributs voulant que la m thode soit public et static La figure L4 pr sente le contenu d un fichief tests 1abo7 1 txt permettant de sp cifier trois 3 cas de tests pour la m thode quadratique Ce fichier de sp cification de jeux d essai pour des r sultats de m
20. ent de modules Oto et modifications diverses par Paul Lessard et Anthony Demange Interface Web r alis e par Alexandre Pennetier et Guy Tremblay UQAM Le nom d usager et le mot de passe qui doivent tre fournis sont ceux pour les toutes les machines et serveurs de l UQAM notamment les machines du laboratoire LAMISS Pour plus d informations ce sujet consultez les sites suivants https www codeaccesms uqam ca 8080 application default aspx http www labunix uqam ca public nouvelacces html Une fois la connexion tablie le menu suivant sera alors affich Se d connecter V rifier un TP Rendre un TP Confirmer une remise Tester un programme Oto 3 V rifier TP 3 1 V rification pr liminaire d un programme S il le d sire un enseignant peut mettre la disposition des tudiants un script de v rification pr lim inaire Un tel script permet alors aux tudiants de v rifier l aide de divers jeux d essais fournis par l enseignant s ils sont sur la bonne voie pour r soudre le probl me demand Dans ce qui suit nous allons supposer que l enseignant tremblay gu a mis la disposition des tudiants un tel script de v rification Nous allons aussi supposer qu un tudiant tg821310 a compl t sa solution et qu il s est assur que son programme compile correctement Soulignons que selon le probl me pos par l enseignant cette solution peut tre constitu e par un unique programme u
21. ifier Tests Oto2 Labo7 Labo7 java Browse Tester un Fichier de specification des 2 programme tests s Oto2 Labo7 tests labo71tx Browse Fichiers auxiliaires optionnels Browse Champs requis Oto Un outil g n rique et extensible pour corriger les travaux de programmation On remarque qu il est possible si n cessaire de fournir des fichiers auxiliaires c est dire des fichiers qui peuvent tre requis pour l ex cution correcte du programme fourni dans le fichier principal r gle g n rale ces fichiers seront fournis par votre enseignant et vous devrez les utiliser tels quels Ces fichiers peuvent tre fournis sous leur forme non compil e fichiers java ou d j compil e fichiers class Dans ce dernier cas l ex cution de la commande serait plus rapide toutefois c est alors vous de vous assurer que vous fournissez une version d jour Les r sultats affich s seront alors semblables ceux pr sent s la figure 17 Comme on peut le con stater ces r sultats sont semblables ceux obtenus pour des ex cutions dela commande V rifier un TP utilisant des valuations d finies par vos enseignants 26 Figure 17 R sultat produit par l ex cution de la commande Tester un programme M thodes Informations LEE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E Rapport complet de correctio
22. indique que la ligne qui suit d crit le r sultat attendu pour l appel qui pr c de e Lignes 6 9 idem pour la sp cification d un deuxi me cas de test e Lignes 10 13 idem pour la sp cification d un troisi me cas de test cas o il n existe aucune solution r elle l quation d o un r sultat Double NaN Not a Number Remarque Comme pour Tester un programme Filtre il est possible de donner un nom explicite aux divers tests cf Section 7 3 L ex cution des tests Figure 15 Contenu du fichier Labo7 java public class Labo7 public static double quadratique double a double b double double discriminant x b 4 x a lt c return b Math sqrt discriminant 2 x a Une fois les cas de tests sp cifi s on peut alors tester une classe d finissant la m thode appropri e Dans ce qui suit nous allons supposer que cette classe se nomme Labo7 java et que son contenu est tel que sp cifi la figure I5 La figure I6 illustre le formulaire Web qu il faut compl ter une fois le fichier de tests correctement sp cifi pour tester le bon fonctionnement de la classe Labo7 avec sa m thode quadratique 25 Figure 16 Formulaire pour tester un programme d finissant des m thodes publiques et statiques 27 Bienvenue tg821310 Oto Etudiant V rifier un TP Tester un programme Rendre un TP r lt Type Filtre V M thodes Classe EE Programme v r
23. ment La figure 4 pr sente le contenu d un fichier test s 1abo51 tx permettant de sp cifier trois 3 cas de tests Ce fichier de sp cification de jeux d essai pour comparaisons textuelles contient les l ments suivants e Lignes 1 5 la sp cification d un premier cas de test qui indique que la valeur 123 sera re ue en entr e et qu un message d erreur devra alors tre mis en sortie On remarque qu on sp cifie aussi qu un message de saisie devra tre mis en sortie videmment avant l affichage du r sultat Ici les symboles et ont respectivement la signification suivante indique le d but du cas de test Les lignes comprises entre ce et le qui suit indiquent alors les donn es qui seront fournies en entr e au programme indique le d but des r sultats Les lignes comprises entre et soit le subs quent soit la fin de fichier indiquent alors les r sultats qui devront tre produits par le programme e Lignes 6 10 la sp cification d un deuxi me cas de test qui indique que la valeur 5 sera re ue en entr e et que les nombres mis en sortie seront ceux indiqu s toujours pr c d s du message de saisie e Lignes 11 15 la sp cification d un troisi me cas de test qui indique que la valeur 0 sera re ue en entr e et que le seul nombre mis en sortie sera celui indiqu Signalons qu il n y a aucune limite a priori sur le n
24. ment 123 Nombre refuse Entrez un nombre entier entre 0 et 15 inclusivement 4 32 Nombre refuse Entrez un nombre entier entre 0 et 15 inclusivement 1 19 20 19 21 6 5 La sp cification des noms des cas de tests Il est possible dans le fichier de sp cification des cas de tests de donner un nom explicite chacun des tests Ces noms sont utiles lorsqu un ou plusieurs des tests chouent Par exemple la Figure L1 reprend la sp cification des cas de tests de la Figure 9 mais cette fois avec des noms explicites pour chacun des tests La Figure 12 pr sente les r sultats d ex cution de ces tests sur un programme g n rant deux erreurs Figure 11 Sp cification des cas de tests de la Figure 9 mais avec des noms explicites pour chacun des tests Test avec nombre refuse Entrez un nombr ntier entre 0 et 15 inclusivement 123 Nombre refuse Test simple Entrez un nombr ntier entre 0 et 15 inclusivement 5 15 16 17 18 19 20 19 18 17 16 15 Test avec juste un element Entrez un nombr ntier entre 0 et 15 inclusivement 0 20 22 Figure 12 R sultats pour les tests de la Figure 1 un programme g n rant deux erreurs 1 Test simple java Labo51PasOk Differences resultats attendus vs obtenus k k k k k k k k k k k k x 1 2 k k Entrez un nombre entier entre 0 et 15 inclusivement 15 16 17 18 19 20 19 18 17 16 15 1 2 2e Entrez un nombre entier entre
25. n Oto Nom de l evaluation evalTemporaire En date du 2014 10 16 a 13 35 JH R COCOON OC OC OO OC ON OC OC OO AAA Mc Mc c c xoxooooe xeoxooooe OO OO 09 09 04 OO OO OO OO COCO OO OO OO OO OO OO OO OK TRAVAIL Z2dprvhbZt Equipe Depot 2014 10 16 a 13 35 Deposeur Nom tg821310 Courriel RESULTATS Compilation du fichier source reussi stdout Execution des tests avec junit reussi detail JUnit version 4 5 Time 0 035 OK 3 tests nbtests 3 nberreurs 0 Pourcentage 100 0 27 8 Tester un programme Classe Dans ce qui suit nous allons illustrer comment tester avec Oto une classe d objets i e une classe qui exporte un ou plusieurs constructeurs ainsi que des m thodes d instance Une telle classe et ses m thodes peuvent tre test es l aide de tests JUnit Toutefois la g n ration de ces tests n est pas triviale La commande que nous pr sentons ici Tester un programme Classe permet d automatiser la cr ation puis l ex cution de tels tests Signalons que certaines conditions doivent tre satisfaites pour que la commande Tester un pro gramme Classe puisse tre utilis e tout d abord les m thodes ne devraient effectuer aucune en tr e sortie ensuite les m thodes tester ne peuvent pas tre private ou protected et elles ne peuvent pas tre static 8 1 L nonc du probl me Figure 18 nonc d un probl me pour un laboratoire pour une classe d objets
26. n a videmment pas tre sp cifi e Ici les symboles 888 et ont respectivement la signification suivante Q8 s pare les signatures des m thodes des d clarations des objets utilis s dans les tests voir lignes 6 7 indique le d but d un cas de test Les lignes comprises entre ce et le qui suit indiquent les appels de m thodes qui doivent tre effectu s Le dernier appel de cette s rie d appels doit tre un appel une m thode qui retourne un r sultat indique que la ligne qui suit d crit le r sultat attendu pour l appel qui pr c de 11 Signalons qu il n y a pas de ligne vide la fin du fichier la derni re ligne est bien celle contenant 5 28 Figure 19 Sp cification de cas de tests pour la classe Compteur fichier tests labocompteur txt Compteur int void dec int void inc int int val a new Compteur 3 b new Compteur 5 a val a inc 8 a val 5 b dec 10 b valt 5 e Lignes 6 7 des op rations de cr ation d instances pour des objets de la classe Compteur objets qui seront utilis s dans les tests qui suivent 2 e Lignes 8 11 la sp cification du premier cas de test qui sp cifie que l on doit effectuer un appel la m thode va1 qui devra retourner un r sultat gal 3 e Lignes 12 15 sp cification du deuxi me cas de test e Lignes 16 21 sp cificatio
27. n du troisi me cas de test o on effectue cette fois une s rie d appels des m thodes inc inc et va1 le dernier appel tant une m thode qui retourne un r sultat e Lignes 22 26 sp cification du quatri me cas de test Remarque Comme pour Tester un programme Filtre il est possible de donner un nom explicite aux divers tests cf Section 6 5 8 3 L ex cution des tests Une fois les cas de tests sp cifi s on peut alors tester les m thodes de la classe Dans ce qui suit nous allons supposer que cette classe se nomme Compteur java et que son contenu est tel que sp cifi la figure 20 La figure illustre le formulaire Web qu il compl ter une fois le fichier de tests correctement sp ci fi pour tester le bon fonctionnement de la classe Compteur 12Dans la terminologie JUnit on parle dans ce cas de test fixture 29 Figure 20 Contenu du fichier Compteur java class Compteur private int n Compteur int n this n n void inc int x n x void dec int x n x int val 1 return n Figure 21 Formulaire pour tester une classe Compteur 222 V rifier un TP Rendre un TP e fugi i2 TesterClasse Compteurjava Browse Tester un Jlasse tests labo compteurtxi Browse Browse On remarque qu il est possible si n cessaire de fournir des fichiers auxiliaires c est dire des 30 fichiers
28. n enseignant d associer une boite certaines contraintes de remise Par exemple l enseignant peut sp cifier qu un seul fichier doit tre remis lequel fichier doit absolument se ne nommer AfficherImpairs java Les figures qui suivent illustrent alors deux erreurs possibles un tudiant tente de remettre un fichier n ayant pas le bon nom ou il tente de remettre plusieurs fichiers Rendre un TP REMISE NON EFFECTUEE cause Les fichiers remis ne correspondent pas a la liste exacte Afficherlmpairs java de la boite fichiers a remettre Clavier java Rendre un TP REMISE NON EFFECTUEE cause Les fichiers remis ne correspondent pas a la li exacte AfficherImpairs java de la boite fichiers a remettre AfficherImpairs java Clavier java Dans les deux cas aucune remise n a t effectu e et l tudiant doit donc corriger son erreur avant de r ex cuter la commande Finalement l enseignement peut aussi demander que chaque Membre de 1 quipe soit identifi par son code permanent Si le code fourni n est pas un code permanent lexicalement valideP la remise ne sera pas effectu e non plus Rendre un TP REMISE NON EFFECTUEE raison Code permanent tg821310 invalide 5 Aucune v rification s mantique n est toutefois effectu e 14 5 Confirmer Remise est possible d identifier toutes les remises ayant t effectu es pour un enseignant et une boite de remise et
29. ne seule classe ou plusieurs classes d finis dans un ou plusieurs fichiers Soulignons aussi que bien que le script de v rification comporte g n ralement une tape de compila tion il n est pas appropri d utiliser le script de v rification pour simplement corriger les erreurs de compilation le but de cette v rification pr liminaire est de vous aider v rifier que votre programme produit bien de facon exacte et pr cise les r sultats attendus La fen tre compl ter pour v rifier un travail permet tout d abord de sp cifier le nom de l enseignant puis en pressant le bouton Chercher d obtenir une liste d roulante indiquant les diverses valuations mises la disposition des tudiants par l enseignant tel qu illustr dans la figure suivante Le tudiant Bienvenue tg821310 Se d connecter V rifier un TP V rifier un TP Rendre un TP Nom de l enseignant tremblay_gu Confirmer une remise Identifiant de l valuation EvalAfficherimpairs 2 Tester un programme Fichiers v rifier Browse Champs requis Oto Un outil g n rique et extensible pour corriger les travaux de programmation 1S il s agit d un nouvel appel V rifier un TP mais l int rieur d une m me session alors certaines informations seront d j pr sentes dans le formulaire Une fois cela fait il faut ensuite remplir le champ Fichiers v rifier et ce en s l
30. ombre de lignes pouvant tre utilis es pour sp ci fier les entr es ou les sorties Dans l exemple c est parce qu une ex cution du programme soit termine avec un message d erreur soit g n re une seule s rie de valeurs que chaque cas de test poss de une ligne Laboratoire no 5 question 1 de l automne 2006 dans le cours INF1120 groupe 20 TSignalons qu il n y a pas de ligne vide la fin du fichier la derni re ligne est bien celle contenant 2 0 17 pour les donn es et deux pour les r sultats Par exemple si le programme devait plut t contenir une boucle de validation c est dire r p ter la lecture des donn es jusqu ce que les donn es fournies soient valides alors la sp cification du premier cas de test pourrait plut t avoir l allure indiqu e la figure 5 Figure 5 Cas de test pour un nombre invalide si e programme devait plut t avoir une boucle de validation des donn es 123 32 1 Entrez un nombr ntier entre 0 et 15 inclusivement Nombre refuse Entrez un nombr ntier entre 0 et 15 inclusivement Nombre refuse Entrez un nombr ntier entre 0 et 15 inclusivement 19 20 19 Dans certains cas il est aussi possible que les donn es ou les r sultats soient vides Par exemple si on voulait tester un programme qui lit en entr e une suite de caract res et qui retourne en sortie le nombre de caract res lus l un des cas de tests serait tr s certainement l un des suivants
31. qui peuvent tre requis pour l ex cution correcte du programme fourni dans le fichier principal r gle g n rale ces fichiers seront fournis par votre enseignant et vous devrez les utiliser tels quels Ces fichiers peuvent tre fournis sous leur forme non compil e fichiers java ou d j compil e fichiers class Dans ce dernier cas l ex cution de la commande serait plus rapide toutefois c est alors vous de vous assurer que vous fournissez une version jour Les r sultats affich s seront alors semblables ceux pr sent s la figure 22 Comme on peut le con stater ces r sultats sont semblables ceux obtenus pour des ex cutions dela commande v rifier un TP utilisant des valuations d finies par vos enseignants 31 Figure 22 R sultat produit par l ex cution de la commande Tester un programme Classe Informations LEE EEE E E EE E E E E EEE E EE EE OO OO E E EE E EE E E EE E E OO OK OO OO KO OO A Rapport complet de correction Oto Nom de l evaluation evalTemporaire En date du 2014 10 16 a 13 00 OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO Mc Nic Dc OO OO OC OC OO OH OC OO OC OC OH OC OC OC OO COCO COCO OC OC CC HO OC OC OO OC OC OO OO CCC o 9 TRAVAIL LmgCgOzNRC Equipe Depot 2014 10 16 a 13 00 Deposeur Nom tg821310 Courriel RESULTATS Compilation du fichier source reussi stdout Execution des tests avec junit reussi detail
32. rs de rapports de v rification Temps limite CPU expir ou taille limite de fichier sortie d pass Un cas particulier de rapport de v rification est celui signalant une erreur ayant l allure suivante Cette erreur indique que le d lai d ex cution maximum permis pour un programme a t atteint et ce sans que les r sultats appropri s n aient pu tre produits R gle g n rale une telle erreur est caus e par la pr sence d une boucle infinie dans le programme v rifier Dans ce cas il faut donc relire attentive ment le programme pour d tecter la pr sence d une telle boucle infinie Une erreur de ce type boucle infinie peut aussi prendre la forme d une erreur indiquant Taille limite de fichier sortie depassee plus sp cifiquement caus e par la pr sence d une boucle infinie d critures V rification des r sultats textuels et Caract re NL manquant La v rification sur la base des r sultats textuels se fait l aide de l outil Unix diff Cet outil effectue les comparaisons igne par ligne il est donc sensible la pr sence de sauts de lignes superflus ou l absence de certains sauts de ligne y compris sur la derni re ligne du fichier Voici un exemple de rapport de v rification pour un test o le r sultat mis par le programme est suppos tre termin par un saut de ligne donc en Java produit avec 1 alors que le programme v rifi a omis ce saut de ligne final par exemple en
33. te donc en tenant compte de la casse et des blancs il suffit de cocher l option Strict 6 4 La sp cification des cas de tests l aide du mode interactif Il existe une autre facon de sp cifier les cas de tests Ce mode dit interactif est utile dans le cas d un programme interactif puisqu il permet de pr senter les donn es et les r sultats d un cas de test d une facon semblable ce qu on aurait l cran au cours de l ex cution d un tel programme i e o les donn es et r sultats sont entrelac s Figure 9 Version interactive de la sp cification des cas de tests de la Figure 4 Entrez un nombr ntier entre 0 et 15 inclusivement 123 Nombre refuse Entrez un nombr ntier entre 0 et 15 inclusivement 5 15 16 17 18 19 20 19 18 17 16 15 Entrez un nombr ntier entre 0 et 15 inclusivement 0 20 La Figure 9 pr sente les cas de tests de la Figure 4 mais en utilisant cette fois le mode interactif Ici le caract re est utilis pour indiquer une ligne de donn e ce caract re doit toujours apparaitre en tout d but de ligne Il est videmment possible de sp cifier plusieurs lignes d entr e cons cutives ou non Par exemple l aide du mode interactif de sp cification les cas de tests de la Figure 5 seraient alors tels que pr sent s la Figure 10 Figure 10 Une sp cification interactive pour le cas de tests de la Figure 5 Entrez un nombre entier entre 0 et 15 inclusive
34. thodes contient les l ments suivants e Premi re ligne la description de la signature de la m thode v rifier donc une sp cification de son nom des types de ses arguments et du type du r sultat retourn 8Laboratoire no 7 de l automne 2006 dans le cours INF1120 groupe 20 Signalons qu il n y a pas de ligne vide la fin du fichier la derni re ligne est bien celle contenant Double NaN 10R sultat qui ne doit videmment pas tre void sinon aucune comparaison du r sultat ne pourra tre effectu e 24 Figure 14 Sp cification de cas de tests pour la m thode quadrat ique fichier tests 1abo71 txt double quadratique double double double quadratique 1 0 2 0 1 0 quadratique 1 0 4 0 3 0 quadratique 1 0 1 0 3 0 Double NaN Si l on d sirait tester plusieurs m thodes on pourrait indiquer plusieurs signatures de m thodes Par contre on ne peut pas omettre compl tement les signatures e Lignes 2 5 la sp cification d un premier cas de test qui sp cifie que l on doit effectuer un appel la m thode quadratique avec les arguments 1 0 2 0 et 1 0 auquel cas un r sultat 1 0 devra alors tre retourn en r sultat Ici les symboles et ont respectivement la signification suivante indique le d but d un cas de test La ligne comprise entre ce et le qui suit indique alors l appel la m thode que l on d sire tester
35. to Equipe non disponible Depot 2014 09 18 11 18 Deposeur 9821310 Non 5221310 Courriel 777 RESULTATS Nombre de tests 7 Nombre d erreurs 2 Resultat sur 108 71 43 Resultats detailles des tests 1 test 7 java hone tg8213180 tremblay gu EvalAfficherimpairs publiv c eval oto Afficherimpairs Differences resultats attendus vs obtenus 44444444444 4 1 4 a Donnez un nombre positif 1 13 5 1 4 souu Donnez un nombre positif 1 2 5 2 test 3 java cp hone tg821310 trenblay gu EvalAfficherinpairs publiy c eval oto Afficherimpairs Differences resultats attendus vs obtenus LELLLLLLLLLLLLE en 1 2 see 1 3 sos Donnez un nombre positif 1l 1 Les tests suivants ont produit des differences test 7 test 3 Sommaire 7 test s execute s 2 3 20 V rification des r sultats textuels Dans notre exemple la v rification consiste v rifier que les r sultats textuels mis sur le flux de sortie standard partir du traitement des donn es fournies sur le flux d entr e standard sont bien ceux attendus Examinons quelques uns des l ments du rapport pr sent la page pr c dente e R sultat pour test 7 1 test 7 java cp home tremblay gu public eval oto AfficherImpairs Differences resultats attendus vs obtenus xxx k k k k k k k Kx xxx 1 4 Donnez un nombre positif 1 3 5 1 4 Donnez un nombre
36. z un nombre entier entre 0 et 15 inclusivement T Nombre refuse Ex cution 2 Exemple avec donn e valide Entrez un nombre entier entre 0 et 15 inclusivement 2 18 19 30 19 18 Figure 3 Classe MessagesLabo51 d finissant les diff rents messages pour le laboratoire fichier MessagesLabos5l public class MessagesLabo51 public static final String MESSAGE SAISIE Entrez un nombr ntier entre 0 et 15 inclusivement public static final String MESSAGE ERREUR Nombre refuse 16 qui L nonc du probl me que nous utiliserons comme exemple est pr sent la On remarque e l enseignant fournit aux tudiants une classe MessagesLabo51 java d finissant les diff rents messages possibles pouvant tre affich s 6 2 La sp cification des cas de tests Un programme de type filtre effectue uniquement des entr es sorties textuelles Un tel programme peut donc tre test en comparant les r sultats textuels produits par ce programme partir de certaines donn es textuelles avec les r sultats attendus pour ces donn es Figure 4 Sp cification des cas de tests fichier tests labo51 txt 12 En No 15 20 3 trez un nombr ntier entre 0 et 15 inclusivement mbre refuse trez un nombr ntier entre 0 et 15 inclusivement 16 17 18 19 20 19 18 17 16 15 trez un nombr ntier entre 0 et 15 inclusive

Download Pdf Manuals

image

Related Search

Related Contents

  KD-R521/KD-R423/KD-R422/ KD-R421/KD-R45  Toshiba Satellite U940-02V  

Copyright © All rights reserved.
Failed to retrieve file