Question

L'entreprise pour laquelle je travaille actuellement utilise Sélénium pour Uniting-Testing notre interface utilisateur.Qu'utilisez-vous pour tester unitairement votre interface utilisateur Web et quelle est son efficacité ?

Était-ce utile?

La solution

Nous utilisons Watin sur mon lieu de travail, nous sommes une boutique .net donc cette solution avait beaucoup de sens.En fait, nous avons commencé avec Watir (l'implémentation originale de Ruby) et avons changé par la suite.Cela a été une très bonne solution pour nous jusqu'à présent

Autres conseils

Je suis un grand fan de Selenium.Dire « tester unitairement votre interface utilisateur Web » n'est pas tout à fait exact, comme certains commentaires l'ont mentionné.Cependant, je trouve que Selenium est incroyablement utile pour effectuer ce type de tests d'acceptation et de cohérence sur l'interface utilisateur.

Une bonne façon de commencer consiste à utiliser Selenium IDE dans le cadre de votre développement.C'est-à-dire qu'il suffit d'ouvrir l'IDE pendant que vous développez et d'écrire votre test au fur et à mesure pour réduire votre temps de développement.(Au lieu de devoir parcourir manuellement l'interface utilisateur pour arriver au point où vous pouvez tester tout ce sur quoi vous travaillez, appuyez simplement sur un bouton et Selenium IDE s'en chargera pour vous.C'est un formidable gain de temps !)

La plupart de mes principaux scénarios d'utilisation sont basés sur des tests Selenium RC pour les sauvegarder.Vous ne pouvez pas vraiment les considérer comme des tests unitaires à la manière d'un framework xUnit, mais ce sont des tests destinés à des fonctionnalités très spécifiques.Ils sont rapides à écrire (surtout si vous implémentez des méthodes courantes pour des choses comme la connexion ou la configuration de vos cas de test), rapides à exécuter et fournissent une boucle de rétroaction très étroite.Dans ce sens, les tests Selenium RC sont très similaire aux tests unitaires.

Je pense que, comme toute autre chose, si vous faites l'effort d'apprendre correctement un outil de test (par exemple, Selenium), vos efforts seront récompensés à la pelle.Vous mentionnez que votre entreprise utilise déjà Selenium pour effectuer des tests d'interface utilisateur.C'est bien.Travaillez avec.Si vous trouvez Selenium difficile à utiliser ou déroutant, respectez-le.La courbe d'apprentissage n'est vraiment pas si raide une fois que vous apprenez un peu l'API.

Si je travaille sur une application Web, il est rare que j'écrive une quantité importante de code sans tests Selenium RC pour le sauvegarder.Voilà à quel point je trouve efficace le Sélénium.:) (J'espère que cela répondra à votre question ..)

Eh bien, si vous avez correctement conçu votre application, vous n'aurez de toute façon pas beaucoup de logique dans l'interface utilisateur.Il est beaucoup plus logique de séparer le travail réel effectué en unités distinctes de l'interface utilisateur, puis de les tester.

Si vous faites cela, le seul code de l'interface utilisateur sera le code qui appelle le backend, il suffit donc de tester simplement le backend.

J'ai utilisé NUnit ASP dans le passé (dans mon travail), et si vous insistez pour tester unitairement votre interface utilisateur, je vous conseille fortement d'utiliser TOUT sauf NUnit ASP.C'est difficile à travailler, et les tests ont tendance à être invalidés (nécessitant d'être révisés) même après les modifications les plus mineures de l'interface utilisateur (même si les sujets des tests ne changent pas réellement).

Nous utilisons QuickTestPro.Jusqu'à présent, cela est efficace, mais la sélection du navigateur est limitée.La partie la plus intéressante est la possibilité d'enregistrer l'activité de votre navigateur et de la convertir en un ensemble d'étapes scriptables.Il existe également un complément .Net intéressant, donc si vous avez un code de validation à faire pour les différentes étapes de votre test, vous pouvez écrire des méthodes dans un assembly et les appeler à partir de votre script.

Nous utilisons Visual Studio 2008 Tester Edition.

Avantages:Très bon pour capturer l'interaction de l'utilisateur

Capture les appels Ajax

Il est très simple de mapper les entrées utilisateur à une base de données, un fichier XML ou CSV

Le test capturé peut être converti en C# pour plus de contrôle

Les mêmes tests peuvent être utilisés pour les tests de charge et la couverture du code

Les inconvénients:

VS2008 Tester Edition est un SKU distinct de l'édition Developer normale, ce qui entraîne un coût supplémentaire

Vous êtes peut-être allergique à Microsoft ;-)

Nous l'avons utilisé très efficacement sur des projets, mais de nombreux efforts sont nécessaires pour maintenir les tests à jour. Chaque fois que vous changez d'écran, le test peut devoir être réenregistré.

Nous avons tendance à garder les tests courts et précis, à faire une chose et à sortir au lieu d'enregistrer 10 minutes de clics dans un seul test.

Nous avons quelques types de tests d’interface utilisateur standard :

Test des menus : Connectez-vous en tant qu'utilisateur spécifique (ou type/rôle d'utilisateur) et assurez-vous que tous les éléments de menu requis sont disponibles

Test de validation : Ouvrez une page et cliquez sur Enregistrer sans saisir aucune donnée, assurez-vous que tous les avertissements de validation apparaissent.Remplissez les champs obligatoires un par un et vérifiez que les messages d'avertissement disparaissent lorsqu'ils sont censés disparaître.

Test de recherche : Effectuez une recherche à l'aide des données de votre base de données ou d'un fichier de données et assurez-vous que les données correctes sont renvoyées par la recherche.

Test de saisie de données : Créez de nouveaux enregistrements à partir d'un fichier de données, nettoyez la base de données pour permettre aux tests de s'exécuter plusieurs fois

Les tests d'interface utilisateur prennent beaucoup de temps, mais le sentiment de confort que vous ressentez lorsque quelques centaines de tests réussissent avant de publier une nouvelle version est inestimable.

Nous avons utilisé JSunit pendant un moment pour faire des tests unitaires...il ne s'agit peut-être pas du même type de tests dont vous parlez, mais c'est idéal pour garantir que votre JavaScript fonctionne comme prévu.

Vous l'exécutez dans le navigateur et il peut être configuré dans une version Ant pour être automatiquement exécuté à distance sur plusieurs navigateurs sur plusieurs plates-formes (vous pouvez ainsi vous assurer que votre code est multi-navigateur et que la logique est correcte). ).

Je ne pense pas qu'il remplace le Sélénium, mais il le complète bien.

Nous utilisons Selenium Core, mais passons progressivement à Selenium RC qui est bien plus agréable et plus simple à gérer.Nous avons écrit de nombreux codes personnalisés pour exécuter les tests sur nos serveurs d'intégration continue, certains d'entre eux dans des suites parallèles pour s'exécuter plus rapidement.

Une chose que vous constaterez est que Selenium semble redémarrer le navigateur à chaque test (vous pouvez le configurer pour ne pas le faire, mais nous avons eu des problèmes de mémoire lorsque nous avons fait cela).Cela peut être lent dans Firefox, mais ce n'est pas trop grave dans IE (une fois, je suis reconnaissant pour l'intégration du système d'exploitation de Bill Gates).

j'ai utilisé WATIR, ce qui est plutôt bien.Je l'ai aimé car c'est Ruby et permet de tester l'interactivité, les éléments disponibles et l'analyse du code source.Je ne l'ai pas utilisé depuis un moment mais je suppose que ça s'est amélioré.

Il est censé être porté sur Firefox et Safari, mais cela se produit depuis un moment maintenant.

Vérifier Test Web Canoo.Il est open source et construit sur le framework ANT.

J'ai passé du temps à travailler avec lui pour un cours d'études supérieures sur l'assurance qualité logicielle et il semble être un outil de test assez puissant.

Grille de sélénium peut exécuter vos tests Web sur plusieurs machines en parallèle, ce qui peut accélérer le processus de test Web

J'utilise surtout Test Cubique, qui est un plugin Eclipse qui vous permet de définir des tests graphiquement.Il peut exporter/exécuter des tests via plusieurs bibliothèques, notamment Watir et Selenium.Cependant, la plupart des gens utilisent simplement le coureur Selenium.

Divulgation complète :Je suis l'un des développeurs, donc je suis un peu partial :)

Regardez de plus près ici : cubiquetest.openqa.org

-Erlend

Selenium est destiné aux tests d'intégration, pas aux tests unitaires.C'est une différence subtile mais importante.L'utilisation que je vois habituellement est destinée à vérifier l'intégrité d'une version.c'est-à-dire avoir un test qui se connecte, un test qui (par exemple) soumet une histoire, fait un commentaire, etc.

L'idée est que vous testez pour voir si l'ensemble du système fonctionne ensemble avant le déploiement, plutôt que de laisser un utilisateur découvrir que votre site est en panne.

Nous utilisons actuellement Soie4J - une approche centrée sur Java pour tester l'interface utilisateur Web.Il peut tester Flash, Flex, AIR, Silver Light, Win32, HTML et quelques autres applications.

Étant donné que Silk4J peut contrôler les applications Win32, il peut contrôler directement les boîtes de dialogue du navigateur, ce qui est un cran au-dessus de ce que Selenium peut contrôler et est particulièrement utile pour les invites de téléchargement.

Nous utilisons Watin pour les tests du système, et QUnité pour les tests unitaires JavaScript.

Molybdène est construit sur Selenium et possède quelques fonctionnalités supplémentaires.

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