Najlepszą praktyką w testowaniu automatyzacji interfejsu użytkownika jest robienie jak najmniej. Interfejsy użytkownika zmieniają się często, co oznacza, że stale musisz aktualizować swoją automatyzację. Zasadniczo lepiej jest ustrukturyzować kod produktu w sposób umożliwiający automatyczne testowanie bez automatyzacji interfejsu użytkownika.
To powiedziawszy, nie zawsze możesz pozbyć się Automatyzacji interfejsu użytkownika. Wspominasz o biurze, więc zakładam, że programujesz dla Windows i używasz .Net. W mojej obecnej pracy całkiem sporo. Oto niektóre rzeczy, których się nauczyłem.
1) Spójrz na biblioteki UIAutomation, które zostały wprowadzone w .Net 3.0. Zapewniają obszerną i dość prostą w użyciu bibliotekę do automatyzacji. (http://msdn.microsoft.com/en-us/library/ms753107.aspx)
2) Pobierz UISpy (http://msdn.microsoft.com/en-us/library/ms727247.aspx)
3) Ustaw interfejs użytkownika w swoim urządzeniu w sposób automatyczny.
3a) Jeśli jest to WPF, umieść AutomationIDs na wszystkim.
3b) Spróbuj utworzyć charakterystyczne nazwy kontrolne i nazwy klas okien (nazwy klas interfejsu użytkownika, a nie nazwa klasy kodu źródłowego). Jeśli nie wiesz, co mam na myśli, załaduj UI Spy i zacznij przeglądać okna. Zauważ, ile okien w różnych aplikacjach ma nazwę klasy # 32770. Jest to nazwa klasy dla okna dialogowego Windows. Każde okno, które rozszerza okno dialogowe i nie ustawia własnej nazwy, domyślnie jest to. Powoduje to wszelkiego rodzaju żal z punktu widzenia automatyzacji interfejsu użytkownika.
4) Unikaj instrukcji Thread.Sleep (). Zamiast tego spróbuj użyć Kelnerów (patrz dokumenty UIAutomation).
5) NIGDY nie mieszaj kodu testowego z kodem automatyzacji interfejsu użytkownika. Utwórz osobne biblioteki, aby wykonać automatyzację interfejsu użytkownika. Wywołaj te biblioteki ze swoich testów. Zmiana interfejsu użytkownika znacznie ułatwi aktualizację automatyzacji.
6) Zawsze rejestruj detektor dla zdarzenia interfejsu użytkownika przed wykonaniem czynności, która spowodowałaby uruchomienie zdarzenia. W praktyce oznacza to, że będziesz pracować z wątkami.
6a) Przykład: nie zaczynaj czekać na zdarzenie Otwarte okno po kliknięciu przycisku, aby otworzyć okno. Okno może się otworzyć przed zarejestrowaniem kelnera i nigdy nie uzyskać zdarzenia.
7) Nigdy nie zakładaj, że właśnie otwarte okno jest tym, którego chcesz. Wszystkie rodzaje okien mogą się nieoczekiwanie otworzyć w systemie Windows.
Mógłbym kontynuować, ale robi się to trochę dłużej.