top 10 test automation strategies
To jest ostatni artykuł w seria automatyzacji testów . W tym artykule podsumowano najlepsze praktyki i strategie dotyczące automatyzacji testów.
Chociaż nasze poprzednie artykuły wspominają o najlepszych praktykach (a niektóre z nich można tutaj powtórzyć), zdecydowanie chciałbym wymienić kilka, ale najważniejsze najlepsze praktyki automatyzacji tutaj w jednym artykule w celach informacyjnych .
Te strategie są zaczerpnięte z mojego własnego doświadczenia oraz z literatury dotyczącej testujących guru, takich jak Michael Bolton, James Bach i Cem Kaner. Te praktyki powinny być przestrzegane w każdym projekcie automatyzacji.
Czego się nauczysz:
- 10 najlepszych strategii i praktyk w zakresie automatyzacji testów
- # 1. Zatrudnij dedykowanego inżyniera automatyki lub zespół
- # 2. Narzędzie automatyzacji jest ważne, ale nie jest rozwiązaniem na wszystko
- # 3. Wybierz narzędzie do automatyzacji, które jest dobrze znane Twoim zasobom
- # 4. Poznaj testowaną aplikację
- # 5. Dobra automatyzacja oznacza dobry ręczny przypadek testowy
- # 6. Identyfikuj możliwości dzięki automatyzacji
- # 7. Nie możesz zautomatyzować wszystkiego
- # 8. Unikaj automatyzacji GUI, gdy występuje alternatywny
- # 9. Używaj automatyzacji również do innych przydatnych celów
- # 10. Automatyzacja to tworzenie oprogramowania
- Wniosek
- rekomendowane lektury
10 najlepszych strategii i praktyk w zakresie automatyzacji testów
No to ruszamy..
jak otworzyć obiekt flash Shockwave
# 1. Zatrudnij dedykowanego inżyniera automatyki lub zespół
To podstawowa rzecz. Nie proś testerów ręcznych o automatyzację testów. Jeśli chcesz, aby przeprowadzali automatyzację testów, uwolnij ich od ręcznej pracy związanej z testowaniem. Automatyzacja testów to praca na pełen etat. Do tego potrzebne są dedykowane zasoby.
Polecam zbudowanie zespołu automatyzacji testów składającego się z przynajmniej jednego architekta automatyzacji. Możesz zatrudnić wielu inżynierów automatyzacji do pracy pod kierunkiem architekta automatyzacji testów. Liczba inżynierów automatyków zależy od liczby i wielkości twoich produktów.
# 2. Narzędzie automatyzacji jest ważne, ale nie jest rozwiązaniem na wszystko
Rozmawialiśmy o doborze narzędzi . Ale wybór odpowiedniego narzędzia to dopiero początek. Niektórzy menedżerowie mają błędne przekonanie, że jeśli wybiorą odpowiednie narzędzie, mogą łatwo zautomatyzować wszystko. Uważaj, narzędzia do automatyzacji nie dają Ci wszystkiego. Ułatwiają proces. Ale potrzebujesz wykwalifikowanych zasobów, aby ukończyć ten proces.
Często narzędzia do automatyzacji są błędne i utknęły w identyfikacji złożonych obiektów w aplikacji. Zatrudniane zasoby, jeśli są wykwalifikowane, zawierają obejście, które posuwa proces do przodu. W przeciwnym razie, jeśli nie zatrudniasz dobrych zasobów, samo narzędzie nie może zagwarantować skutecznej automatyzacji.
# 3. Wybierz narzędzie do automatyzacji, które jest dobrze znane Twoim zasobom
Jeśli Twoje zasoby są zaznajomione z C #, a testowana aplikacja jest również napisana w C #, nie ma sensu wybierać narzędzia, które nie oferuje C # do pisania skryptów.
Nauka języka to czasochłonny proces. Unikaj tej krzywej uczenia się, kupując narzędzie, które oferuje minimalną krzywą uczenia się.
# 4. Poznaj testowaną aplikację
Wybór narzędzia zależy w dużej mierze od technologii zastosowanych w produkcie. Poznaj swój produkt na wylot przed rozpoczęciem automatyzacji.
Jeśli jest to aplikacja internetowa, poznaj przeglądarki, które będzie ona obsługiwać. Poznaj technologie w nim wykorzystywane. Jeśli jest to aplikacja komputerowa, dowiedz się, na jakim języku jest zbudowany. Jakie kontrolki innych firm są używane w aplikacji. Pomoże to ułatwić wybór narzędzia i przyszłą automatyzację.
# 5. Dobra automatyzacja oznacza dobry ręczny przypadek testowy
Ładnie napisane, solidne ręczne przypadki testowe uratuj nas przed automatyzacją tych przypadków testowych, które są łatwe do zautomatyzowania, ale słabe w znajdowaniu defektów.
Oto cytat z książki Lessons Learned in Software Testing:
„Automatyzacja bez dobrego projektu testów może skutkować dużą aktywnością, ale niewielką wartością”.
Zalecane jest, aby najpierw napisać przypadek testowy w formie ręcznej. Zidentyfikuj wszystkie wymagania wstępne i dane testowe . Pisz kroki w jasny sposób i zapisz oczekiwane rezultaty przed każdym krokiem. Cel jednego przypadku testowego powinien być jasny i powinien być mniej zależny od innych przypadków testowych. Inżynierowie automatyzacji powinni przynajmniej raz uruchomić ten przypadek testowy ręcznie, aby jednoznacznie zdecydować, które obiekty należy zidentyfikować i jaki będzie przepływ nawigacji. Zadawaj pytania testerom manualnym.
Ta aktywność czasami pomaga zidentyfikować błędy, nawet przed napisaniem skryptu automatyzacji. Eksperci twierdzą, że większość błędów jest identyfikowana w fazie rozwoju automatyzacji testów, a nie w fazie wykonywania.
szablon podpisania testu akceptacji użytkownika
# 6. Identyfikuj możliwości dzięki automatyzacji
Jeśli otrzymasz plik ręczny przypadek testowy do zautomatyzowania , nie zautomatyzuj tego przypadku testowego w obecnej postaci. Zamiast tego znajdź dalsze możliwości w swojej automatyzacji, aby rozszerzyć zakres tego przypadku testowego.
Na przykład, jeśli wymaganie dotyczące ręcznego testu jest wymagane, musisz zalogować się do strony internetowej. Możesz rozszerzyć ten przypadek testowy, ustawiając go na podstawie danych. Wypisz wszystkie możliwe scenariusze logowania, takie jak nieprawidłowe hasło, puste hasło, nieprawidłowa nazwa użytkownika, nieprawidłowy adres e-mail, pusta nazwa użytkownika, zapamiętaj mnie zaznaczone, nie zaznaczone itp. Wypisz możliwe scenariusze wraz z ich oczekiwanym wynikiem w pliku Excel i umieść ten plik Excel jako źródło danych dla twojego przypadku testowego. Teraz ten jeden ręczny przypadek testowy, po zautomatyzowaniu, może przetestować wszystkie możliwe scenariusze za jednym razem.
Zawsze szukaj możliwości, które można zrobić za pomocą automatyzacji, ale które są trudne do zrobienia ręcznie. Takie jak scenariusze testów obciążenia, testy wydajności, te same testy w różnych środowiskach z różnymi konfiguracjami, wycieki pamięci, testy wysokiej precyzji itp. To wszystko są trudne scenariusze dla testerów ręcznych.
# 7. Nie możesz zautomatyzować wszystkiego
Automatyzacja oznacza częstsze przeprowadzanie mniejszej liczby testów. Musisz zacząć od małych, atakując najpierw testy dymu. Następnie zakryj swój zbudować testy akceptacyjne . Następnie przejdź do często wykonywanych testów, a następnie przejdź do czasu wykonywania testów. Ale upewnij się, że każdy test, który automatyzujesz, oszczędza czas testerowi ręcznemu, który może skupić się na ważniejszych rzeczach.
Automatyzacja nie zastępuje testerów ręcznych. Nie może. Jest tutaj po to, aby odciągnąć powtarzaną pracę od testerów manualnych, aby mogli w pełni skupić się i znaleźć nowe scenariusze testowania i błędy. (Przeczytaj mój artykuł Nieporozumienia dotyczące automatyzacji testów)
Zautomatyzuj kilka testów cenny i oszczędność czasu lub trudne do zrobienia dla testerów manualnych. Jeśli to zrobiłeś, zadanie automatyzacji jest zakończone.
# 8. Unikaj automatyzacji GUI, gdy występuje alternatywny
Automatyzacja GUI jest zawsze trudniejsza niż w przypadku innych typów testów automatycznych. Więc jeśli jest sytuacja, w której możesz osiągnąć swój cel nie automatyzując GUI, ale innymi metodami, takimi jak wprowadzanie danych z wiersza poleceń, najlepszą strategią jest unikanie automatyzacji GUI.
Na przykład, chcesz przetestować instalację aplikacji. Celem jest sprawdzenie, czy aplikacja jest zainstalowana w określonym środowisku. Jednym ze sposobów jest rozpoczęcie instalacji i kliknięcie przycisku „ Kolejny ”Wielokrotnie za pomocą narzędzia do automatyzacji. Może to być trudne, czasochłonne i podlega konserwacji, jeśli interfejs użytkownika się zmieni. Innym podejściem jest zainicjowanie instalacji aplikacji za pomocą pliku wsadowego, który zawiera ciche argumenty. Aplikacja zainstaluje się dyskretnie, nie wyświetlając GUI. Cel zostanie osiągnięty w krótszym czasie i w bardziej niezawodny sposób.
# 9. Używaj automatyzacji również do innych przydatnych celów
Automatyzacja to fantastyczna rzecz. Możesz dzięki temu osiągnąć takie rzeczy, o których normalnie się nie myślisz. Automatyzacja to nie tylko programowanie ręcznego przypadku testowego. Zamiast, możesz użyć automatyzacji, aby ułatwić różne operacje w Twojej organizacji.
Na przykład, możesz użyć automatyzacji do automatycznego tworzenia danych podstawowych i konfiguracji konfiguracji dla testerów ręcznych. Aby mogli jak najwcześniej rozpocząć testy.
Mogę podać przykład z mojej własnej firmy. Chcieliśmy odejść od naszego narzędzia do zarządzania przypadkami testowymi. Używaliśmy „Test Director” (obecnie HP ALM) i chcieliśmy się przełączyć TFS (Team Foundation Server). W Dyrektorze Testów mieliśmy około 4000 manualnych przypadków testowych i błędów. Przeniesienie ich ręcznie do TFS może zająć około miesiąca. Więc mój menedżer poprosił mnie o wypróbowanie automatyzacji.
Kopię te narzędzia i odkryłem, że Test Director używa serwera SQL jako swojego repozytorium. W przypadku TFS znalazłem narzędzie, które może odczytywać przypadki testowe i błędy z pliku Excela, jeśli są zapisane w określonym formacie, i może je wstawiać do TFS. Reszta historii jest prosta. Napisałem zapytanie SQL, aby pobrać wszystkie przypadki testowe i błędy, i wyeksportowałem je do pliku Excel w określonym formacie. Następnie użyłem tego narzędzia, które czyta wszystkie przypadki testowe i błędy z pliku Excela i wstawiłem je do TFS. Cały proces zajął tylko 3 godziny. Mój menadżer był bardzo zadowolony. Mam nadzieję, że ty też rozumiesz.
# 10. Automatyzacja to tworzenie oprogramowania
Jeśli tworzysz wysokiej jakości oprogramowanie, potrzebuje ono najlepszych praktyk. Potrzebuje recenzji kodu, aby napisać kod wysokiej jakości. Wymaga ramy lub wzorca projektowego, którego należy przestrzegać. Wymaga stałej konserwacji.
Automatyzacja to w zasadzie tworzenie oprogramowania. Dlatego wszystkie najlepsze praktyki, których przestrzegasz podczas tworzenia oprogramowania, powinny być przestrzegane podczas automatyzacji. Struktura automatyzacji powinna tam być. Należy dokonać przeglądu kodu. Błędy automatyzacji należy zgłaszać w repozytorium błędów. Kod źródłowy automatyzacji powinien podlegać kontroli źródła, itp. Im bardziej traktujesz go jak tworzenie oprogramowania, tym skuteczniejsza będzie automatyzacja.
Wniosek
To podsumowuje artykuł, a także serię automatyzacji testów. Podczas pisania tych samouczków nauczyłem się wielu rzeczy i mam nadzieję, że nauczysz się również czytając. Automatyzacja testów to ciekawa i satysfakcjonująca kariera. Robienie tego poprawnie jest korzystne nie tylko dla Ciebie, ale także dla organizacji.
Każdego dnia pracując nad automatyzacją testów i jej technikami znajduję nowe i ciekawe wyzwania do rozwiązania. Ta seria była próbą podkreślenia tego, co można spotkać na drodze do automatyzacji testów. Mam nadzieję, że zrobiłem to dobrze i w prosty sposób.
Jak zwykle czekam na Wasze uwagi i sugestie. Zapraszam do wpisywania swojej opinii w sekcji komentarzy. Z przyjemnością odpowiem na Twoje pytania iw razie potrzeby pomogę. Dziękuje za przeczytanie.
POPRZEDNIE Samouczek # 6
rekomendowane lektury
- Czy jesteś ekspertem w testowaniu ręcznym lub automatycznym? Pracuj dla nas na pół etatu!
- Wyzwania związane z testowaniem ręcznym i automatycznym
- Top 10+ najlepszych książek o testowaniu oprogramowania (książki o testowaniu ręcznym i automatyzacji)
- Narzędzie do testowania automatyzacji GUI Sikuli - Przewodnik dla początkujących, część 2
- Przewodnik krok po kroku dotyczący wdrażania Proof of Concept (POC) w testowaniu automatyzacji
- 10-etapowy proces testowania automatyzacji: Jak rozpocząć testy automatyczne w Twojej organizacji
- Jak zdecydować, jaki rodzaj testów jest wymagany dla projektu? - Ręczne lub automatyczne
- Jak przeprowadzić ręczne testy wydajności?