Quel est le meilleur outil de test pour les applications basées sur Swing? [fermé]

StackOverflow https://stackoverflow.com/questions/79891

  •  09-06-2019
  •  | 
  •  

Question

Bien que nous essayions de configurer autant de tests unitaires que le temps le permet pour nos applications, je constate toujours le manque de tests au niveau de l'interface utilisateur. Il existe de nombreuses options, mais je ne suis pas sûr de ce qui serait un bon endroit pour commencer.

Quel est votre outil de test unitaire préféré pour tester les applications Swing? Pourquoi l’aimes-tu?

Était-ce utile?

La solution

De notre côté, nous testons l'interface graphique SWING avec FEST . Il s’agit d’un adaptateur pour le robot pivotant classique, mais il en facilite considérablement l’utilisation.

Combiné à TestNG, nous avons trouvé qu’il était facile de simuler "humain". actions à travers l'interface graphique.

Autres conseils

Si votre application cible contient des composants personnalisés , je vous recommande vivement de Marathon à automatisez vos tests.

On m'a confié la tâche d'automatiser une application avec plusieurs extrêmement composants personnalisés complexes, écrits en interne à partir de la base. J'ai suivi un processus de révision qui a duré deux mois, au cours duquel j'ai pris la décision sur l'outil de test à utiliser, à partir d'une liste de près de 30 outils de test disponibles, commerciaux et FOSS.

C’est l’outil de test seulement qui a réussi à automatiser avec succès nos composants personnalisés; où Rational Functional Tester d’IBM, TestPartner de Microfocus, QF-Test, Abbot & amp; FEST a échoué .

Depuis, j'ai réussi à intégrer les tests dans Cruise Control, de sorte qu'ils s'exécutent à la fin de chaque build de l'application.

Un mot d'avertissement cependant:
1) il est plutôt rugueux sur les bords dans la façon dont il gère JTables. J'ai contourné cela en écrivant ma propre classe de proxy pour eux.
2) Ne prend pas encore en charge l’enregistrement / la relecture des actions de glisser-déposer.

Envisagez Marathon ( http://www.marathontesting.com/Home.html) --tests sont écrits en Jython, il est donc facile d’écrire tout type de prédicats en fonction de l’état de l’objet.

J'ai eu la chance de jouer avec QF-TEST une fois. C'est commercial, mais offre beaucoup de fonctionnalités. Vous pouvez peut-être y jeter un coup d'œil: http://www.qftest.de/en/index. html

Vous pouvez essayer d'utiliser concombre et Swinger pour la rédaction de tests d'acceptation fonctionnels en anglais clair pour les applications d'interface graphique Swing. Swinger utilise la bibliothèque Jemmy de Netbeans pour piloter l'application.

Le concombre vous permet d’écrire des tests comme celui-ci:

 Scenario: Dialog manipulation
    Given the frame "SwingSet" is visible
      And the frame "SwingSet" is the container
    When I click the menu "File/About"
    Then I should see the dialog "About Swing!"
    Given the dialog "About Swing!" is the container
    When I click the button "OK"
    Then I should not see the dialog "About Swing!"

Jetez un coup d'œil à cette démonstration vidéo sur Swinger à voir en action.

Je peux fortement recommander QFTest. Je l'ai utilisé pour mon produit commercial et cela fonctionne très bien avec presque zéro code (mon application nécessite l'utilisation d'API clientes Java pour certaines choses). Il gère bien l’identification des composants swing et tolère assez bien les mises à jour de votre interface graphique (le redimensionnement, le repositionnement et l’ajout de composants ne cassent pas les tests existants). J'ai effectué des mises à jour majeures de la fonctionnalité et mes tests fonctionnent toujours.

C'est cher, mais je pense que ça va se payer dans quelques mois.

Avant QFTest, j'ai essayé:

1) Automatedqa - bon outil, mais centré sur Windows et ne comprenant pas Swing. Similaire au test rapide Pro.

2) UISpec4J - Après y avoir consacré une semaine solide de 50 heures, je rencontrais des problèmes de fragilité et du code Java obscur qu’il produisait. L’utiliser était trop ardu - essayer de déboguer / mettre à jour des centaines de lignes de java en exécutant une séquence d’une douzaine d’opérations d’interface graphique ne fonctionnait tout simplement pas pour mon cerveau. J'ai fini par éviter de passer des tests parce que c'était beaucoup plus compliqué que d'écrire l'application elle-même!

J'aime Jemmy, la bibliothèque écrite pour tester Netbeans.

Pas une réponse, mais un raffinement.

L'enregistrement et la lecture ne sont pas une bonne chose à vouloir. Les équipes doivent pouvoir écrire des tests avant que le code ne soit écrit. Sinon, les codeurs finissent leur travail et attendent pendant que les testeurs se démènent pour enregistrer des tests (interrompus par des corrections lorsqu'ils repèrent des problèmes).

Dans une configuration de type BDD / TDD / ATDD, vous avez vraiment besoin d’un outil qui vous permet de scripter des tests pour du code qui n’a pas encore été écrit, en spécifiant les noms des éléments d’interface utilisateur, etc.

Existe-t-il des outils qui fonctionnent pour les tests sans chute d’eau?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top