2009-01-27 8 views
6

Je cherche à lancer des tests de régression automatisés sur un add-in Excel assez volumineux qui tourne autour d'une interface graphique composée de quelques UserForm modaux avec des contrôles standard.Test automatisé de UserForms VBA - outils et/ou techniques?

Le principal problème est que la plupart des outils de tests automatisés, j'ai regardé dans (Rational Robot, AutomatedQA TestComplete, Network Automation Automatiser etc) ne prennent pas en charge complètement le contrôle VBA si leurs tests finissent rejouer les clics de la souris et les touches, ne sont donc pas vraiment maintenable. Idéalement, j'ai besoin d'un outil de test qui reconnaît les contrôles de formulaire VBA, donc je peux dire "appuyez sur ce bouton et attendez que cette liste change" plutôt que "cliquez sur (237, 58) et attendez 500 millisecondes". J'ai également envisagé de construire l'automatisation de test dans le complément en VBA, mais la plupart du temps de l'utilisateur est passé à interagir avec une boîte de dialogue modale qui arrête le VBA s'exécutant en arrière-plan, ce qui est pratiquement hors de question.

Mon question- ce que quelqu'un ici a une expérience avec un outil de test automatisé qui

a) reconnaît les contrôles de formulaire utilisateur VBA et peuvent interagir de manière fiable avec les

b) a un support pour les scripts de test avec des branches conditionnelles et enregistrement des réussites/échecs, plutôt que de simplement enregistrer et lire?

Sinon, est-ce que quelqu'un sait d'une manière que je peux contourner le problème des boîtes de dialogue modales mettant en pause l'exécution de VBA afin que je puisse conduire l'add-in à partir de VBA? J'ai passé un certain temps à chercher sur les forums de QA mais je n'ai rien trouvé là-bas, donc toute aide ou suggestion serait appréciée.

Merci pour votre aide,

-Martin

Répondre

2

Je ne sais pas d'un outil qui fait ce que vous dites, mais avez-vous pensé à attaquer à partir d'une autre direction?

Je spécule un peu ici sur la quantité de logique dans la classe VB/VBA "normale" de sorte que des méthodes individuelles puissent être testées unitairement. Peut-être qu'une telle classe pourrait même exposer des événements, de sorte que pour tester, vous pourriez remplacer le formulaire par un harnais de test qui fournissait les stimuli nécessaires et rassemblait les réponses à vérifier.

Il ne traiterait pas le raccordement de la forme (maintenant très légère) à la classe sous-jacente, mais réduirait au moins la zone non testée.

Je pense vraiment "à voix haute", mais pensez-vous que cela fonctionnerait?

+0

Ce n'est pas une mauvaise idée. Je voudrais que les changements architecturaux soient minimes, et ce serait beaucoup de codage, mais cela enlèverait beaucoup de peine à gérer l'interface graphique. Nous explorons d'autres possibilités, mais nous pourrions revenir à cette idée. – MLdeS

Questions connexes