Найкраща практика тестування автоматичного інтерфейсу користувача - це робити якомога менше. Користувацькі інтерфейси часто змінюються, це означає, що вам постійно доведеться оновлювати автоматизацію. Як правило, бажано структурувати код продукту таким чином, що дозволяє автоматизоване тестування без автоматичного інтерфейсу користувача.
Однак, не завжди можна позбутися автоматичної інтерфейсу користувача. Ви згадуєте офіс, тому я припускаю, що ви кодуєте для Windows та використовуєте .Net. Я досить багато займаюся своєю нинішньою роботою. Ось деякі речі, які я навчився.
1) Подивіться на бібліотеки автоматизації UIA, які були представлені в .Net 3.0. Вони забезпечують широку та досить просту у використанні бібліотеку для автоматизації. (http://msdn.microsoft.com/en-us/library/ms753107.aspx)
2) Завантажте UISpy (http://msdn.microsoft.com/en-us/library/ms727247.aspx)
3) Зробіть інтерфейси вашого продукту автоматизованими.
3a) Якщо це WPF, покладіть AutomationIDs на все.
3b) Спробуйте створити відмінні назви класів управління та вікон (назви класів UI, а не ім'я класу вихідного коду). Якщо ви не знаєте, що я маю на увазі, завантажте інтерфейс шпигуна і почніть дивитися у вікна. Зауважте, скільки вікон у різних додатках має назву класу # 32770. Це назва класу для діалогового вікна Windows. Будь-яке вікно, яке розширює діалогове вікно і не встановлює власне ім'я, за замовчуванням до цього. Це викликає всіляке горе з точки зору автоматичної інтерфейсу користувача.
4) Уникайте тверджень Thread.Sleep (). Спробуйте використовувати замість них офіціантів (див. Документи UIAutomation).
5) НІКОЛИ не змішуйте тестовий код з кодом автоматичного інтерфейсу користувача. Створіть окремі бібліотеки для виконання автоматизації інтерфейсу користувача. Викликайте ці бібліотеки зі своїх тестів. Коли інтерфейс зміниться, це значно полегшить оновлення автоматизації.
6) Завжди реєструйте слухача для події в інтерфейсі, перш ніж виконувати дію, яка призведе до події. На практиці це означає, що ви будете працювати з нитками.
6а) Приклад: не починайте чекати події, що відкрилася, після натискання на кнопку, щоб відкрити вікно. Вікно може відкритися до того, як офіціант зареєстрований і ніколи не отримає подію.
7) Ніколи не вважайте, що саме відкрилося вікно, яке ви хочете. У Windows можуть несподівано відкритися всі види вікон.
Я міг би продовжити більше, але це стає трохи довше.