2011-08-17 9 views
8

Wykorzystaliśmy Specflow i WatIn do testów akceptacyjnych w moim bieżącym projekcie. Klient chce, abyśmy zamiast tego używali kodowania Microsoft-ui. Nigdy nie testowałem kodowanego interfejsu użytkownika, ale z tego, co widziałem do tej pory, wygląda nieporęcznie. Chcę określić moje testy akceptacyjne z góry, zanim będę miał ui, nie w wyniku niektórych nagrań/odtwarzania. W każdym razie, czy ktoś może mi powiedzieć, dlaczego powinniśmy wyrzucić zestaw Specflow/watin i zamienić go na kodowany ui?Dlaczego powinniśmy używać zakodowanych ui, gdy mamy Specflow?

Przeczytałem również, że można łączyć specyfikację przepływu z zakodowanym ui, ale wygląda na to, że dużo narzutów na coś, co już robię dobrze w specflow.

Odpowiedz

10

pisałem na blogu o tym, jak to zrobić można znaleźć użyteczne

http://rburnham.wordpress.com/2011/03/15/bdd-ui-automation-with-specflow-and-coded-ui-tests/

jest Twój testowania pro i con kodowanych UI test, który mogę myśleć aplikacja dokładnie w jaki sposób użytkownik używaj go. Jest to dobre dla testu akceptacyjnego, ale ma również swoje ograniczenia. Jest również bardzo dobry do testów końcowych. W przeszłości testy interfejsu użytkownika były znane jako delikatne. Na przykład, gdy MS stworzył interfejs użytkownika VS2010, prawie wszystkie testy interfejsu uległy zepsuciu. Głównym powodem jest zmiana technologii. Testy kodowanych interfejsów pomagają ograniczyć to zjawisko poprzez dopasowanie do kontroli. Używa więcej dopasowania opartego na prawdopodobieństwie. Oznacza to, że spróbuje znaleźć najlepsze dopasowanie na podstawie posiadanych informacji, takich jak nazwa kontrolna. Dla nas testowanie kodowanych UI było naszym wyborem ze względu na ograniczenia technologiczne. Nasza aplikacja Legacy to VB i chociaż CUIT nie działa świetnie, jestem w trakcie pisania rozszerzenia, by uzyskać lepsze informacje kontrolne, to wciąż był nasz jedyny wybór. Pamiętaj też, że CUIT jest nowy i ma swoje własne ograniczenia. Powinieneś być przygotowany na sposób, w jaki projektujesz swój układ, ponieważ obsługa UIMaps może wymagać trochę pracy ręcznej ze względu na bieżące zachowanie się końca w VS2010, na przykład tworzenie CUIT z istniejącego nagrania akcji zawsze umieszcza test w UIMap nazwie UIMap.uitest i nie ma sposobu, aby to zmienić lub przenieść do innego UIMap. Jeśli korzystasz z wielu map interfejsu użytkownika, oznacza to, że musisz najpierw zarejestrować swoje kroki, a następnie użyć ich w teście. Jednak będąc w sieci .net jest nadal bardzo elastyczny.

Zdecydowanie najlepszą rzeczą w specflow jest jego składnia gerkin dla czytelnej i żywej dokumentacji. Zwykle twoje funkcje testowania lub zachowania aplikacji, z których pochodzi wartość Z reguły ma na celu test tuż pod interfejsem użytkownika. Jest trochę mniejsze prawdopodobieństwo, że test się zepsuje, gdy interfejs użytkownika zmieni się tutaj, ale tutaj. Specflow do mnie jest świetny, gdy twoja aplikacja podlega ciągłym zmianom i chcesz zapewnić działanie istniejących funkcji. Dobrze pasuje również do środowiska Scrum, w którym możesz napisać swój scenariusz jako opis tego, jak powinien on działać. Jednym ograniczeniem do specflow widzę jest otwarty na interpretację. Z tego powodu łatwo można napisać test, który nie jest zbyt trudny do ponownego wykorzystania i trudny do utrzymania. Lubię używać bardziej ogólnych określeń do opisania moich kroków, takich jak "Zaloguj się jako Użytkownik1" zamiast "Przejdź do strony logowania, wprowadź nazwę użytkownika i hasło, kliknij logowanie". Opisanie go bardziej szczegółowym sprawia, że ​​trudniej go ponownie użyć, by powiązać go z interfejsem użytkownika. Sposób działania logowania powinien być zgodny z kodem, a nie z funkcją przepełnienia.

Łączenie 2 jednak wydaje nam się bardziej korzystne niż po prostu używanie testów kodowanych UI. Jeśli zdecydujemy się całkowicie zmienić interfejs użytkownika, będziemy przynajmniej mieli zachowania, które są oczekiwane, przechowywane w naszych funkcjach specflow w sposób zrozumiały dla każdego. Na końcu musisz zastanowić się, w jaki sposób aplikacja będzie ewoluować i jaki rodzaj aplikacji.

Powiązane problemy