Attention Tests TP4 - Question3

Programmation Avancée

Modérateur : douinj

bouty_g
Messages : 6
Inscription : 02 oct. 2020 17:36

Attention Tests TP4 - Question3

Message par bouty_g » 01 nov. 2020 11:11

Bonjour à tous je partage une petite expérience...
Lorsque j'ai effectué les tests fournis pour IHMCalculette de la question 3, j'ai eu beaucoup de résultats aléatoires et incohérents : des valeurs d'entrée n'étaient pas prises en compte, le champs d'entrée n'était pas effacé, je me retrouvais avec des caractères divers en lieu et place des chiffres... Du coup, en mettant le nez dans les tests, j'ai remarqué plusieurs incohérence (à mon sens):
  • La méthode empiler() du test n'efface pas le champs texte avant que le bot n'écrive le suivant. Un petit reset du champs est donc à faire.
  • La méthode typeLine() qui simule l'écriture s'exécute apparemment trop vite, ce qui entraîne soit des incohérence de saisie de caractères, soit carrément des saisies ignorées. En augmentant le temps de delay entre chaque saisies, on retrouve des résultats cohérents.
Voilà, j'espère que ça pourra en aider. Je ne sais pas si j'ai agis dans le bon sens, mais il me semble qu'un "monkey test" doit reproduire un comportement humain, or, à cette vitesse, on est bien loin du comportement humain... Mais d'un autre côté, ça mets en avant une faiblesse du programme quant à un traitement d'entrées rapide. Et là, je suis incapable de dire si cette faiblesse vient de mon implémentation, de Swing, de Robot, etc. Le débat est ouvert...

Bonne journée à tous.

lavig_p2
Messages : 13
Inscription : 02 oct. 2020 13:53

Re: Attention Tests TP4 - Question3

Message par lavig_p2 » 01 nov. 2020 12:12

Salut,

Je constate comme toi des résultats de tests aléatoires mais je suis incapable de dire pourquoi.
Je vais essayer d'appliquer tes remarques.

Pour le robot.delay(xx), j'ai tout passé à 100 et toi ?
Pour le champ texte non reset je ne sais pas comment faire ? Comment as-tu fait ?

Merci pour ton aide :-)

Pierre

demai_ch
Messages : 1
Inscription : 23 oct. 2020 9:34

Re: Attention Tests TP4 - Question3

Message par demai_ch » 01 nov. 2020 16:08

Bonjour,
J'ai fait le même constat hier en passant les tests plusieurs fois de suite. Je conseille de ne pas faire l'erreur de soumettre à JNews avant d'avoir lancé vraiment PLUSIEURS FOIS les tests pour vérifier.
J'ai aussi cherché du côté des tests pour comprendre d'où venait mon erreur. J'ai fait la même analyse au sujet de la méthode empiler() du test . Mais comme je pense qu'il ne faut pas toucher les tests et qu'il est plus probable que quelque chose m'échappe vis à vis des attendus dans ce que j'ai écrit , je cherche encore... Mon IHM semble fonctionner comme celle qui est présentée.
Un aiguillage serait fort utile s'il vous plaît !

Bonne journée à tous

douinj
Messages : 204
Inscription : 18 mars 2009 15:46

Re: Attention Tests TP4 - Question3

Message par douinj » 01 nov. 2020 17:13

Bonjour, vous pouvez augmenter les délais de façon significative, mettez 1000 par exemple, vos machines sont certainement plus rapide que celle qui m'a permis de mettre au point ces délais, et également plus rapide que le serveur jfod, un auditeur a supprimé le placement aléatoire de la fenêtre de test (l'appel à Random)

à suivre..., ce n'est pas l'essentiel pour ce tp

lavig_p2
Messages : 13
Inscription : 02 oct. 2020 13:53

Re: Attention Tests TP4 - Question3

Message par lavig_p2 » 01 nov. 2020 17:55

Bonjour M Douin,

Même à 200, 500, 1000, 2000 les résultats sont toujours aléatoires.

J'ai tracé avec des system.Out.Prinln avant et après chaque empilage visiblement le souci se pose au niveau du getText() qui parfois est bien remonté d'autre fois non, surement en raison du Robot et des piles d'appel..

J'ai aussi dupliqué la méthode test_IHMCalculette_addition en changeant tous les assertTrue par assertEquals et :
- test_IHMCalculette_addition1 avec assertTrue => Tout est KO
- test_IHMCalculette_addition2 avec assertEquals => Tout est OK

Et cela s'inverse à chaque lancement de tests

Du coup :
- que suggérez-vous ? On passe ce point de test ? j'avoue que cela fait 3h que je suis dessus...
- comment faisons-nous pour JNEWS ? Cela sera KO à fortiori.

En vous remerciant pour vos retours et vous souhaitant une excellent fin de journée,

Pierre

bouty_g
Messages : 6
Inscription : 02 oct. 2020 17:36

Re: Attention Tests TP4 - Question3

Message par bouty_g » 01 nov. 2020 19:11

Salut voilà la version modifiée de empiler() :

Code : Tout sélectionner

   /**
     * Utility method which is in charge to simulate a human who try to add
     * a value in the app.
     * @throws Exception all exceptions.
     * @param str input string.
     */
    private void empiler(String str) throws Exception
    {
        Container panel = f.getContentPane();
        Component[] components = panel.getComponents();
        Component[] controle = ((JPanel)components[1]).getComponents();
        Component[] subComponents = ((JPanel)controle[1]).getComponents();
        
        //======= PARTIE RAJOUTÉE =======//
        JTextField t = (JTextField) controle[0];
        t.setText("");
        //==============================//
        
        Point location = controle[0].getLocationOnScreen();
        mouseMoveAndClickClick(location.x,location.y);
        typeLine(str, robot, false);

        location = subComponents[0].getLocationOnScreen();
        mouseMoveAndClick(location.x+(subComponents[0].getWidth()/2),location.y+(subComponents[0].getHeight()/2));
    }
Ensuite pour le delay, j'ai passé toutes les valeurs entre les press et release claviers à 40 ms et la tempo finale à 100 ms.
Et attention à ne pas toucher la souris pendant les tests ! ;-)
Bonne journée.

douinj
Messages : 204
Inscription : 18 mars 2009 15:46

Re: Attention Tests TP4 - Question3

Message par douinj » 01 nov. 2020 19:37

Bonjour,

Soumettez votre travail une seule fois à JNEWS, indiquez le sur votre rapport

Notez que selon les résultats en ligne, 21 auditeurs ont réussi sur 21
http://jfod.cnam.fr/jnews/interrogation ... til=junit3

Bonne fin de tp

georg_s4
Messages : 4
Inscription : 16 oct. 2020 11:09

Re: Attention Tests TP4 - Question3

Message par georg_s4 » 08 nov. 2020 20:29

Je crois que cela tient à la ligne :

mouseMoveAndClickClick(location.x,location.y);

Il manque +(unComposant.getWidth()/2) à x
et +(unComposant.getHeight()/2) à y

En effet, sinon, la souris ne clique pas au milieu de l'élément mais au coin, ce qui ne marche pas à chaque fois.

En ajoutant w / 2 et h / 2, je n'ai plus jamais eu ce problème.

Répondre