2009-01-27 15 views
6

Szukam rozpoczęcia automatycznych testów regresji na dość dużym dodatku Excela, który obraca się wokół GUI złożonego z kilku modalnych UserForm ze standardowymi kontrolkami.Automatyczne testowanie VBA UserForms - narzędzia i/lub techniki?

Głównym problemem jest to, że większość z automatycznych narzędzi do testowania Szukałem w (Rational Robot, AutomatedQA TestComplete, Network Automation Automatyzacja etc) nie w pełni wspierać kontroluje VBA więc ich testy skończyć powtórka kliknięć myszą i naciśnięć klawiszy, więc nie da się ich utrzymać. Idealnie potrzebuję narzędzia do testowania, które rozpoznaje formanty formularza VBA, więc mogę powiedzieć "wciśnij ten przycisk i poczekaj, aż ten listbox się zmieni" zamiast "kliknij na (237, 58) i poczekaj 500 milisekund".

Zastanawiałem się również nad budowaniem automatyzacji testów w dodatku jako VBA, ale większość czasu użytkownika spędza wchodząc w interakcje z modalnym dialogiem, który zatrzymuje VBA działający w tle, więc to prawie nie wchodzi w rachubę.

Moje pytanie-czy ktoś tutaj ma wszelkie doświadczenia z zautomatyzowanym narzędziem testowania że

a) rozpoznaje elementy sterujące formularza użytkownik VBA i może wiarygodnie interakcji z nimi

b) posiada wsparcie dla skryptów z gałęzi testowej warunkowych i rejestrowanie sukcesów/niepowodzeń, a nie tylko nagrywanie i odtwarzanie?

Alternatywnie, czy ktoś wie o sposobie, w jaki mogę obejść problem modalnych okien dialogowych, wstrzymując wykonywanie VBA, aby móc sterować dodatkiem z VBA?

Spędziłem trochę czasu, przeglądając fora QA, ale nic nie znalazłem, więc każda pomoc lub trasa byłaby doceniona.

Dzięki za pomoc,

-Martin

Odpowiedz

2

nie wiem narzędzia, które robi to, co mówisz, ale czy pomyślałeś o atakowanie z innego kierunku?

Spekuluję tutaj trochę o tym, jak dużą część logiki można sprowadzić do "normalnej" klasy VB/VBA w taki sposób, aby poszczególne metody mogły być testowane jednostkami. Być może taka klasa może nawet narazić zdarzenia, więc do testów można zastąpić formularz wiązką testową, która dostarczyła niezbędnych bodźców i zebrała odpowiedzi do sprawdzenia.

Nie zaadresowałoby to dołączenia (bardzo lekkiej) do samej klasy, ale zminimalizowałoby to co najmniej nieprzetestowany obszar.

Naprawdę po prostu myślę "na głos", ale myślisz, że w ogóle by to zadziałało?

+0

To nie jest zły pomysł. Chciałbym, aby zmiany w architekturze były minimalne i byłoby dużo kodowania, ale to usuwa wiele problemów związanych z GUI. Zbieramy alternatywne ścieżki, ale możemy wrócić do tego pomysłu. – MLdeS