La migliore pratica per i test di automazione dell'interfaccia utente è fare il meno possibile. Le interfacce utente cambiano frequentemente, il che significa che devi costantemente aggiornare l'automazione. È generalmente preferibile strutturare il codice del prodotto in modo da consentire test automatizzati senza automazione dell'interfaccia utente.
Detto questo, non puoi sempre sbarazzarti dell'automazione dell'interfaccia utente. Hai parlato di Office, quindi suppongo che stai codificando per Windows e usando .Net. Faccio un bel po 'nel mio attuale lavoro. Ecco alcune delle cose che ho imparato.
1) Guarda le librerie UIAutomation che sono state introdotte in .Net 3.0. Forniscono una libreria estesa e abbastanza semplice da usare per l'automazione. (Http://msdn.microsoft.com/en-us/library/ms753107.aspx)
2) Scarica UISpy (http://msdn.microsoft.com/en-us/library/ms727247.aspx)
3) Rendi le UI del tuo prodotto automatizzabili.
3a) Se si tratta di WPF, inserire AutomationIDs su tutto.
3b) Provare a creare un controllo distintivo e nomi di classi di finestre (nomi di classi UI, non nome di classe del codice sorgente). Se non sai cosa intendo, carica UI Spy e inizia a guardare Windows. Nota quante finestre su diverse app hanno un nome di classe # 32770. Questo è il nome della classe per una finestra di dialogo di Windows. Qualsiasi finestra che estende la finestra di dialogo e non imposta il proprio nome, per impostazione predefinita è questa. Ciò provoca ogni sorta di dolore dal punto di vista dell'automazione dell'interfaccia utente.
4) Evitare le istruzioni Thread.Sleep (). Prova invece a utilizzare i camerieri (consulta i documenti di UIAutomation).
5) MAI mescolare il codice di test con il codice di automazione dell'interfaccia utente. Creare librerie separate per eseguire l'automazione dell'interfaccia utente. Chiama queste librerie dai tuoi test. Quando l'interfaccia utente cambia, ciò renderà molto più semplice l'aggiornamento dell'automazione.
6) Registrare sempre un listener per un evento UI prima di eseguire l'azione che causerebbe l'attivazione dell'evento. In pratica, questo significa che lavorerai con i thread.
6a) Esempio: non iniziare ad aspettare un evento Finestra aperta dopo aver fatto clic su un pulsante per aprire la finestra. La finestra potrebbe aprirsi prima che il cameriere sia registrato e non ottenere mai l'evento.
7) Non dare mai per scontato che la finestra appena aperta sia quella che desideri. Tutti i tipi di finestra possono aprirsi inaspettatamente in Windows.
Potrei continuare di più, ma questo sta diventando un po 'lungo.