Question

Notre société est actuellement à la rédaction d'une interface graphique, l'automatisation de l'outil de test pour le compact framework d'applications.Nous avons d'abord cherché sur de nombreux outils, mais aucun d'eux n'a été bon pour nous.

En utilisant cet outil, vous pouvez enregistrer des cas de test et groupe ensemble de test-suites.Pour chaque test-suite il est généré une application, qui lance l'application sous test et simule l'entrée utilisateur.

En général, l'outil fonctionne très bien, mais comme nous sommes à l'aide de poignées de fenêtre pour la simulation de la saisie de l'utilisateur, vous ne pouvez pas faire grand-chose.Par exemple, il est impossible pour nous d'obtenir le nom d'un contrôle (nous venons d'obtenir la légende).

Un autre problème à l'aide de poignées de fenêtre est de vérifier pour un changement.Pour le moment, nous simuler un clic sur un contrôle et selon le résultat que nous connaissons si la demande est passée à l'étape suivante.

Est-il un autre (plus simple) façon de faire de telles choses (par exemple la file d'attente de message ou autre chose)?

Était-ce utile?

La solution

Si le système Automatisé GUI tests de l'outil a des connaissances sur le cadre de l'application est écrite en elle pourrait utiliser cette information pour faire mieux ou plus avancée de scripts. TestComplete par exemple, connaît de Borland, VCL et WinForms.Si vous testez les applications construites à l'aide de Windows Presentation Foundation a avancé à l'appui de cette construire en.

Autres conseils

Problème intéressant!Je n'ai pas fait de bas niveau (pensez Win32) la programmation Windows en temps, mais voici ce que je ferais.

L'utilisation d'un tube nommé et votre application à l'écouter.L'utilisation de ce canal nommé en tant que moyen de communication, mettre en place un véritable protocole simple par lequel vous pouvez faire une requête de la demande pour le nom d'un contrôle donné son HWND, ou d'autres choses que vous trouvez utiles.Assurez-vous que le protocole est assez riche, de sorte qu'il existe suffisamment d'informations échangées entre votre application et le framework de test.Assurez-vous que le framework de test ne donne pas trop de "comportement spécial" de l'application, car alors vous ne serait pas vraiment tester les fonctionnalités, mais plutôt votre framework de test.

Il y a probablement la façon la plus élégante et plus frais des moyens à mettre en œuvre, mais c'est ce que je me souviens du haut de ma tête, à l'aide de simples appels de l'API Win32.

Une autre approche, que nous avons mis en place pour notre produit au travail, est d'enregistrer les événements de l'utilisateur, tels que les clics de souris et des principaux événements dans un script d'événement.Cela devrait être assez riche, de sorte que vous pouvez avoir l'application de la lire, artificiellement l'injection de ces événements dans la file d'attente de messages, et de se comporter de la même façon que lors de la première enregistré le script.En gros, vous avez simuler l'utilisateur lorsque vous lisez le script.

En outre, vous pouvez enregistrer toutes les données importantes de l'état (de l'utilisateur du document, les préférences, les contrôles d'interface utilisateur graphique de la hiérarchie, etc.), une fois que lorsque vous enregistrez le script, et une fois quand vous le lire.Cela vous donne deux ensembles de données, vous pouvez comparer, pour s'assurer par exemple que tout reste le même.Cette solution vous donne tests que pas facile à modifier (vous enregistrer de nouveau si vos changements d'interface graphique), mais qui offrent génial tests de régression.

(EDIT:C'est aussi un formidable outil de contrôle qualité au cours de bêta-test, par exemple:juste avoir votre utilisateurs d'enregistrer leurs actions, et si il y a un crash, vous avez une bonne chance de reproduire facilement le problème en jouant juste de retour du script)

Bonne chance!

Carl

utilisation NUnitForms.J'ai utilisé avec grand succès pour les mono et multi-threading applications et vous n'avez pas à vous soucier des poignées et des trucs comme ça

Voici quelques messages sur NUnitForms la peine de lire

NUnitForms et a échoué de glisser-déplacer d'inscription - problème de MTA vs STA

Application compilée exe GUI tests avec NUnitForms

J'ai enfin trouvé une solution pour communiquer entre les tests d'application et l'application à l'essai: Géré Espion.C'est essentiellement un .NET compilation de l'application sur le dessus de ManagedSpyLib.

ManagedSpyLib permet l'accès par programme aux contrôles Windows Forms d'un autre processus.Pour ce faire, il utilise la Fenêtre de Crochets et de la mémoire de fichiers de mappage.

Merci pour tous ceux qui m'ont aidé à en arriver à cette solution!

Géré Spy n'est pas une solution compacte pour les applications d'infrastructure.

L'entreprise Jamo Solutions (www.jamosolutions.com) répond aux exigences de l'automatisation des tests sur les appareils mobiles, y compris .net compact framework d'applications.

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