2009-01-27 12 views
6

Sto cercando di avviare test di regressione automatizzati su un componente aggiuntivo Excel piuttosto grande che ruota attorno a una GUI composta da alcuni UserForm modali con controlli standard.Test automatici degli UserForms VBA: strumenti e/o tecniche?

Il problema principale è che la maggior parte degli strumenti di test automatizzati Ho esaminato (razionale Robot, AutomatedQA TestComplete, Network Automation Automatizzare ecc) che non supportano pienamente il VBA controlla così i loro test finiscono riproducendo clic del mouse e pressioni dei tasti, quindi non sono realmente mantenibili. Idealmente ho bisogno di uno strumento di test che riconosca i controlli del modulo VBA, quindi posso dire "premere questo pulsante e attendere che questo listbox cambi" piuttosto che "fare clic su (237, 58) e attendere 500 millisecondi".

Ho anche preso in considerazione la creazione dell'automazione di test nel componente aggiuntivo come VBA, ma la maggior parte del tempo dell'utente è trascorso interagendo con una finestra di dialogo modale che interrompe il VBA in esecuzione in background, quindi è praticamente fuori questione.

mio Question- Qualcuno qui ha alcuna esperienza con uno strumento di test automatizzato che

a) riconosce VBA controlli di modulo utente e possono interagire con loro in modo affidabile

b) ha il supporto per lo scripting di prova con rami condizionali e la registrazione di successo/fallimento, piuttosto che solo registrazione e riproduzione?

In alternativa, qualcuno sa di un modo per aggirare il problema delle finestre di dialogo modali sospendendo l'esecuzione VBA in modo che possa guidare l'add-in da VBA?

Ho passato un po 'di tempo a cercare nei forum del QA ma non ho trovato nulla lì, quindi qualsiasi aiuto o lead sarebbe apprezzato.

Grazie per il vostro aiuto,

-Martin

risposta

2

Non so di uno strumento che fa quello che dici, ma ho pensato di attaccare da una direzione diversa?

Sto speculando un po 'qui su quanto della logica nel potrebbe essere spinto verso il basso in una "VB/VBA Class" normale in modo tale che i singoli metodi possano essere testati unitamente. Forse una Classe del genere potrebbe esporre eventi, anche, in modo che, per il test, si possa sostituire il modulo con un'imbracatura di test che fornisca gli stimoli necessari e abbia raccolto le risposte per il controllo.

Non indirizza il collegamento della forma (ora molto leggera) alla classe sottostante, ma ridurrebbe almeno l'area non testata.

Sto davvero pensando "ad alta voce", ma pensi che funzionerebbe del tutto?

+0

Questa non è una cattiva idea. Mi piacerebbe mantenere le modifiche architettoniche minime, e sarebbe un sacco di codice, ma rimuove molto il problema di gestire la GUI. Stiamo esplorando strade alternative ma potremmo tornare a questa idea. – MLdeS