Struktura automatyzacji testów: Archistruktura i typy

⚡ Inteligentne podsumowanie

Architektura Test Automation Framework definiuje standardy kodowania, obsługę danych testowych oraz reguły repozytorium obiektów, których przestrzegają skrypty automatyzacji. Istnieje pięć ustalonych typów, z których każdy koncentruje się na nakładzie pracy związanym z konfiguracją, ponownym wykorzystaniu, kosztach utrzymania i długoterminowej skalowalności.

  • 📐 Definicja podstawowa: Struktura to zbiór wytycznych, a nie reguł, które umożliwiają ponowne wykorzystanie, przenośność i niższe koszty utrzymania.
  • ⏺️. Skrypty liniowe: Nagrywanie i odtwarzanie to proces, który najszybciej się tworzy, ale najtrudniej utrzymać, ponieważ dane pozostają zakodowane na stałe.
  • 🧱 Biblioteka testowa Archistruktura: Typowe kroki stają się funkcjami wielokrotnego użytku wywoływanymi przez skrypt sterownika, co zwiększa potrzebę ponownego użycia kosztem czasu planowania.
  • 📊 Oparte na danych: Logika testów pozostaje w skryptach, podczas gdy dane są przesyłane do programu Excel, pliku CSV lub bazy danych, co umożliwia realizację wielu scenariuszy na jeden skrypt.
  • 🔑 Oparte na słowach kluczowych: Akcje są przechowywane jako słowa kluczowe w tabeli, dzięki czemu testy są niezależne od narzędzia i aplikacji.
  • 🔀 Model hybrydowy: Większość dojrzałych pakietów łączy tabele słów kluczowych z rozkładem funkcjonalnym w celu zrównoważenia nakładu pracy i zasięgu.

Ramy automatyzacji testów Archistruktura i typy

Co to jest framework w testowaniu automatycznym?

A Ramy automatyzacji testów to zbiór wytycznych, takich jak standardy kodowania, obsługa danych testowych, przetwarzanie repozytorium obiektów itp., które przestrzegane podczas tworzenia skryptów automatyzacji przynoszą korzystne rezultaty, takie jak zwiększone ponowne wykorzystanie kodu, większa przenośność, zmniejszone koszty utrzymania skryptu itp. Są to tylko wytyczne, a nie reguły; nie są obowiązkowe i nadal możesz pisać skrypty bez przestrzegania wytycznych. Ale stracisz korzyści płynące z posiadania Frameworku.

Dlaczego potrzebujesz frameworka?

Rozważmy przykład, aby zrozumieć, dlaczego potrzebujesz frameworka.

Jestem pewien, że uczestniczyłeś w seminarium/wykładzie/konferencji, gdzie uczestnicy musieli przestrzegać następujących wytycznych –

  • Uczestnicy powinni zająć swoje miejsca na 5 minut przed rozpoczęciem wykładu.
  • Zabierz ze sobą notatnik i długopis do robienia notatek.
  • Przeczytaj abstract, więc masz pojęcie, czego będzie dotyczyć prezentacja.
  • Telefony komórkowe powinny być wyciszone.
  • Jeśli chcesz wyjść w środku wykładu, skorzystaj z bramek wyjściowych znajdujących się po przeciwnej stronie mówcy.
  • Pytania zostaną zadane na koniec sesji.

Czy myślisz, że możesz poprowadzić seminarium? BEZ przestrzegając tych wytycznych?

Odpowiedź jest duża TAK! Oczywiście, że seminarium/wykład/konferencję/demonstrację można przeprowadzić bez powyższych wskazówek.. tak naprawdę niektórzy z nas nie będą ich przestrzegać, mimo że są one określone!

Jeśli jednak zastosujemy się do tych wytycznych, przyniesie to korzystne rezultaty, takie jak zmniejszenie niezadowolenia odbiorców.tracpodczas wykładów, lepsze zapamiętywanie uczestników i lepsze zrozumienie tematu.

Na podstawie powyższego A Ramy można zdefiniować jako zbiór wytycznych, których przestrzeganie przynosi korzystne rezultaty.

Ramy automatyzacji testów Archistruktura: kluczowe komponenty

Przed porównaniem typów, warto sprawdzić, co zawiera każdy framework. ArchiStruktura opisuje sposób ułożenia tych części, tak aby zmiana jednej warstwy nie spowodowała uszkodzenia pozostałych.

  • Warstwa skryptu testowego: Przechowuje przypadki testowe. Skrypty są krótkie, ponieważ wywołują funkcje wielokrotnego użytku zamiast powtarzać kroki nawigacji.
  • Biblioteka funkcji: Przechowuje współdzielone akcje, takie jak logowanie, wyszukiwanie i wylogowywanie, dzięki czemu zmiana przepływu pracy jest wprowadzana raz.
  • Repozytorium obiektów: Mapuje przyjazne nazwy na lokalizatory elementów GUI. Po zmianie interfejsu edytowana jest tylko ta warstwa.
  • Warstwa danych testowych: Przechowuje wartości wejściowe i oczekiwane w plikach Excel, CSV lub bazach danych, a nie wewnątrz kodu.
  • Warstwa konfiguracji: Zawiera środowisko URLs, wybory przeglądarki, przekroczenia limitu czasu i dane uwierzytelniające.
  • Warstwa raportowania: Tworzy raporty wykonania, zrzuty ekranu błędów i dzienniki diagnostyczne.
  • Warstwa wykonawcza: Zestawy wyzwalaczy z serwera kompilacji, łączące automatyzację z ciągła integracja.

Przedstawione poniżej typy struktur różnią się przede wszystkim sposobem, w jaki oddzielają te warstwy.

Rodzaje frameworków automatyzacji testów

Poniżej znajdują się różne typy platform testów automatycznych:

  1. Skrypty liniowe
  2. Biblioteka testów ArchiRamy technologiczne.
  3. Oparte na danych Testy Struktura.
  4. Struktura testowania oparta na słowach kluczowych lub tabelach.
  5. Struktura hybrydowej automatyzacji testów.

Przyjrzyjmy się im szczegółowo –

1) Skrypty liniowe – nagrywanie i odtwarzanie

Jest to najprostszy ze wszystkich frameworków automatyzacji testowania i znany jest również jako „Nagrywanie i odtwarzanie”. W tym Testowanie automatyzacji Framework, Tester ręcznie rejestruje każdy krok (nawigacja i dane wejściowe użytkownika), wstawia punkty kontrolne (etapy walidacji) w pierwszej rundzie. Następnie w kolejnych rundach odtwarza nagrany scenariusz.

Przykład: Rozważ zalogowanie się Wniosek o rezerwację lotu i sprawdzenie, czy aplikacja została załadowana po pomyślnym zalogowaniu. W tym przypadku tester po prostu zarejestruje kroki i doda kroki sprawdzające.

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded after successful log-on
Window("Flight Reservation").Check CheckPoint("Flight Reservation")

Zalety

  • Najszybszy sposób na wygenerowanie skryptu
  • Znajomość automatyki nie jest wymagana
  • Najprostszy sposób na poznanie funkcji Narzędzia do testowania

Wady

  • Małe ponowne użycie skryptów
  • Dane testowe są zakodowane na stałe w skrypcie
  • Koszmar konserwacji

2) Biblioteka testowa ArchiRamy technologiczne

Znany jest również jako „Ustrukturyzowane skrypty” or „Rozkład funkcjonalny”.

W tym Framework testowania automatycznego skrypty testowe są początkowo rejestrowane przez „Nagrywanie i odtwarzanie" metoda. Later, typowe zadania wewnątrz skryptów są identyfikowane i grupowane w Funkcje. Funkcje te są wywoływane przez główny skrypt testowy o nazwie Kierowca na różne sposoby tworzyć przypadki testowe.

Przykład: Na tym samym przykładzie co powyżej funkcja logowania do Rezerwacji Lotu będzie wyglądać następująco.

Function Login()
  SystemUtil.Run "flight4a.exe","","","open"
  Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
  Dialog("Login").WinEdit("Password:").Set "Mercury"
  Dialog("Login").WinButton("OK").Click
End Function

Teraz wywołasz tę funkcję w głównym skrypcie w następujący sposób

Call Login()
---------------------------
'Other Function calls / Test Steps.
---------------------------

Zalety

  • Wyższy poziom ponownego użycia kodu osiąga się w skryptach strukturalnych w porównaniu z „Nagrywaniem i odtwarzaniem”
  • Skrypty automatyzujące są mniej kosztowne w opracowaniu ze względu na częstsze ponowne wykorzystanie kodu
  • Łatwiejsza konserwacja skryptów

Wady

  • Do pisania skryptów przy użyciu Test Library Framework niezbędna jest wiedza techniczna
  • Więcej czasu potrzeba na zaplanowanie i przygotowanie skryptów testowych.
  • Dane testowe są zakodowane na stałe w skryptach

3) Ramy testowania opartego na danych

W tych ramach, podczas gdy Przypadek testowy Logika skryptów znajduje się w skryptach testowych, a dane testowe są oddzielone i przechowywane poza nimi. Dane testowe są odczytywane z plików zewnętrznych (plików Excel, plików tekstowych, plików CSV, źródeł ODBC, obiektów DAO, obiektów ADO) i ładowane do zmiennych wewnątrz skryptu testowego. Zmienne są używane zarówno dla wartości wejściowych, jak i dla wartości weryfikacyjnych. Same skrypty testowe są przygotowywane za pomocą Linear Scripting lub Test Library Framework. Technika ta jest szczegółowo wyjaśniona w dalszej części. testowanie oparte na danych poradnik.

Przykład: Developing Skrypt logowania do rezerwacji lotów przy użyciu tej metody będzie obejmował dwa kroki.

Krok 1) Utwórz plik Test – Dane, którym może być Excel, CSV lub dowolne inne źródło bazy danych.

Imię agenta Hasło
Jimmy Mercury
Tina RTĘĆ
Bill Rtęć

Krok 2) Opracuj skrypt testowy i odwołuj się do źródła danych testowych.

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
'Note "dtGlobalSheet" is the default excel sheet provided by QTP.

Zalety

  • Zmiany w Skryptach Testowych nie mają wpływu na Dane Testowe
  • Przypadki testowe można wykonać z wieloma zestawami danych
  • Można wykonać różnorodne scenariusze testowe, po prostu zmieniając dane testowe w zewnętrznym pliku danych

Wady

  • Więcej czasu potrzeba na zaplanowanie i przygotowanie zarówno Skryptów Testowych, jak i Danych Testowych

4) Struktura testowania opartego na słowach kluczowych lub tabeli

Oparte na słowach kluczowych lub rozwój struktury automatyzacji opartej na tabelach wymaga tabel danych i słów kluczowych, niezależny od narzędzie do testowania automatyzacji używany do ich wykonania. Testy można projektować z Aplikacją lub bez niej. W teście opartym na słowach kluczowych funkcjonalność testowanej aplikacji jest udokumentowana w tabeli oraz w instrukcjach krok po kroku dla każdego testu.

Istnieją 3 podstawowe komponenty struktury opartej na słowach kluczowych, tj. słowo kluczowe, mapa aplikacji i funkcja komponentu.

Słowo kluczowe to działanie, które można wykonać w komponencie GUI. Np. w przypadku pola tekstowego komponentu GUI niektóre słowa kluczowe (działania) to InputText, VerifyValue, VerifyProperty itd.

Co to jest mapa aplikacji?

Mapa aplikacji udostępnia nazwane odniesienia dla komponentów GUI. Mapy aplikacji to nic innego jak „Repozytorium obiektów"

Co to jest funkcja komponentu?

Funkcje komponentów to te funkcje, które aktywnie manipulują komponentem GUI lub przeglądają go. Przykładem funkcji może być kliknięcie przycisku WWW z całą obsługą błędów, wprowadzenie danych do edycji internetowej z całą obsługą błędów. Funkcje komponentów mogą być zależne lub niezależne od aplikacji.

Przykład: Aby zrozumieć widok słów kluczowych, weźmy ten sam przykład. Obejmuje 2 kroki

Krok 1: Tworzenie tabeli danych (innej niż tabela danych testowych utworzona w środowisku opartym na danych). Ta tabela danych zawiera akcje, które należy wykonać na obiektach GUI i odpowiadające im argumenty, jeśli takie istnieją. Każdy wiersz reprezentuje jeden etap testu.

przedmiot Działania
(MAPA Aplikacji) (SŁOWA KLUCZOWE) Argument
WinEdit (nazwa agenta) Zestaw Guru99
WinEdit (hasło) Zestaw Mercury
Przycisk Win(OK) Kliknij
Okno (rezerwacja lotu) zweryfikować Istnieje

Krok 2: Pismo Code w formie funkcji składowych.

Po utworzeniu tabel danych wystarczy napisać program lub zestaw skryptów, który odczytuje każdy krok, wykonuje krok w oparciu o słowo kluczowe zawarte w polu Akcja, sprawdza błędy i rejestruje wszelkie istotne informacje. Ten program lub zestaw skryptów będzie wyglądał podobnie do poniższego pseudokodu:

Function main()
{
  Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table.
  while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table.
  {
    Pass values to appropriate COMPONENT functions. Like Set(Object Name, Argument) ex. Set(Agent Name, Guru99).
  }
}
  Call CloseConnection() //Function for Closing connection after all the operation has been performed.
} //End of main

To wszystko na temat struktury opartej na słowach kluczowych.

Zaletą Keyword Driven Framework jest to, że słowa kluczowe można ponownie wykorzystać. Aby to zrozumieć, rozważmy, że chcesz zweryfikować operację logowania dla witryny, np. YAHOO MAIL. Tabela będzie wyglądać tak –

przedmiot Działania
(MAPA ZASTOSOWAŃ) (SŁOWO KLUCZOWE) Argument
WebEdit (nazwa użytkownika) Zestaw abc@yahoo.com
WebEdit (hasło) Zestaw xxxxx
Przycisk sieciowy (OK) Kliknij
Okno (Yahoo Mail) zweryfikować Masa

Jeśli zauważysz, że w tym przypadku słowa kluczowe „Ustaw”, „Kliknij”, „Weryfikuj” pozostają niezmienione, a odpowiadające im funkcje komponentów są już opracowane. Wystarczy zmienić mapę aplikacji.ping (Repozytorium obiektów) z wcześniejszej rezerwacji lotu do Yahoo Mail , ze zmianą wartości argumentów i ten sam skrypt będzie działać!

Zalety

  • Zapewnia wysoką możliwość ponownego wykorzystania kodu
  • Niezależne od narzędzia testowego
  • Niezależnie od testowanej aplikacji, ten sam skrypt działa dla AUT (z pewnymi ograniczeniami)
  • Testy można zaprojektować z lub bez AUT

Wady

  • Początkowa inwestycja jest dość wysoka, a korzyści z niej można uzyskać tylko wtedy, gdy aplikacja jest znacznie duża, a skrypty testowe mają być utrzymywane przez kilka lat.
  • Do stworzenia struktury opartej na słowach kluczowych wymagana jest specjalistyczna wiedza z zakresu automatyzacji.

UWAGA: Nawet jeśli OpenText UFT Jeden (dawniej Micro Focus) UFT) reklamuje się jako framework oparty na słowach kluczowych, jednak nie można osiągnąć całkowitej niezależności narzędzia testowego i aplikacji, stosując go.

5) Ramy automatyzacji testów hybrydowych

Jak sama nazwa wskazuje, ten framework jest kombinacją jednego lub więcej Frameworków Automatyzacji omówionych powyżej, czerpiąc z ich mocnych stron i próbując złagodzić ich słabe strony. Hybrydowa struktura automatyzacji testów QA jest tym, w co większość platform automatyzacji testów ewoluuje z biegiem czasu i wieloma projektami. Przemysł maksymalnie wykorzystuje strukturę słów kluczowych w połączeniu z metodą dekompozycji funkcji.

PS: Inne struktury automatyzacji, o których warto wspomnieć, to

Testuj ramy modułowości

W tym ramach typowe zadania w skrypcie testowym są pogrupowane w moduły.

Przykład:Korzystanie z akcji w QTP można utworzyć skrypty modułowe

Przykładowy skrypt logowania

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'End of Script

Teraz możesz wywołać tę akcję w głównym skrypcie w następujący sposób –

RunAction ("Login[Argument]", oneIteration)

Testowanie procesów biznesowych (BPT)

Te struktury automatyzacji dzielą duże procesy biznesowe na komponenty, które można wielokrotnie wykorzystywać w tym samym lub różnych skryptach testowych. Na przykład proces biznesowy rezerwacji lotu jest podzielony na komponenty takie jak logowanie, wyszukiwanie lotów, rezerwacja, płatność i wylogowanie, które można ponownie wykorzystać w tym samym procesie biznesowym lub w różnych procesach. BPT ułatwia także bliższą koordynację pomiędzy MŚP i inżynierami automatykami.

Jak wybrać odpowiednie środowisko automatyzacji testów

Żaden typ nie wygrywa za każdym razem. Prawidłowy wybór zależy od umiejętności zespołu, rozmiaru aplikacji i czasu, jaki pakiet musi przetrwać. Poniższa tabela porównuje pięć typów pod kątem czynników decydujących o wyniku.

Typ ramy Wysiłek konfiguracji Code Ponowne użycie Koszty utrzymania Najlepiej nadaje się do
Skrypty liniowe bardzo niski bardzo niski Bardzo wysoka Demonstracje i jednorazowe kontrole dymu
Biblioteka testowa Architektura Średni Średni Średni Stabilne aplikacje z powtarzalnymi przepływami pracy
Sterowane danymi Średni Średni Niski Formularze i obliczenia wymagające wielu zestawów danych wejściowych
Oparte na słowach kluczowych Wysoki Bardzo wysoka Niski Duże apartamenty obsługiwane przez mieszane zespoły techniczne
Hybrydowy Wysoki Bardzo wysoka Niski Długofalowe programy przedsiębiorstw

Zanim podejmiesz decyzję, odpowiedz sobie na poniższe pytania:

  1. Jak długo będzie istniał apartament? Lata utrzymania uzasadniają wysoką początkową inwestycję w projekt oparty na słowach kluczowych lub projekt hybrydowy. Krótki projekt nie.
  2. Kto pisze testy? Jeśli testerzy manualni dostarczają przypadki, tabela słów kluczowych pozwala im pracować bez konieczności nauki języka skryptowego.
  3. Jak zmienny jest interfejs? Częsta zmiana ekranu sprawia, że ​​niezbędne jest osobne repozytorium obiektów, w przeciwnym razie każdy skrypt wymaga edycji.
  4. Jaka zmienność danych jest potrzebna? Wiele kombinacji danych wejściowych wskazuje bezpośrednio na projektowanie oparte na danych.
  5. Które narzędzie jest już w użyciu? Rama musi pasować do wybranego narzędzie automatyzacji automation i język, który zna zespół, taki jak Selenium w Java or Cucumber.

Większość zespołów zaczyna od podejścia opartego na bibliotece lub danych, a następnie przechodzi na model hybrydowy w miarę regresja apartament się rozszerza.

Korzyści ze struktury automatyzacji testów Architektura

Oto korzyści wynikające z architektury frameworka automatyzacji testów:

  • Framework automatyzacji testów pomaga zmniejszyć ryzyko i koszty
  • Poprawia efektywność testów
  • Pomaga obniżyć koszty utrzymania
  • Umożliwia ponowne wykorzystanie kodu
  • Pozwala na osiągnięcie maksymalnego zasięgu testu
  • Maksymalizuje funkcjonalność aplikacji
  • Pomaga ograniczyć powielanie przypadków testowych
  • Pomaga poprawić efektywność i wydajność testów dzięki automatyzacji testów

FAQ

Narzędzie wykonuje polecenia względem aplikacji. Struktura to otaczający zbiór konwencji, struktury folderów i bibliotek wielokrotnego użytku, które decydują o sposobie pisania, organizacji i obsługi tych poleceń.

Nie. Page Object Model to wzorzec projektowy dla warstwy repozytorium obiektów. Jest powszechnie stosowany w bibliotekach, frameworkach opartych na danych i frameworkach hybrydowych, nie zastępując żadnego z nich.

Sztuczna inteligencja dodaje do warstwy repozytorium obiektów samonaprawiające się lokalizatory i wizualne porównanie. Architektura warstwowa pozostaje taka sama, ale skrypty rzadziej ulegają awarii, gdy interfejs użytkownika ulega niewielkim zmianom.

Tak. Asystenci AI konwertują zapisane kroki na wiersze obiektów, akcji i argumentów. Recenzent nadal musi potwierdzić, że nazwy obiektów są zgodne z repozytorium, w przeciwnym razie wygenerowane wiersze zakończą się niepowodzeniem w czasie wykonywania.

TracLiczba godzin konserwacji skryptu k na wydanie, odsetek niestabilnych awarii i czas od kompilacji do uzyskania rezultatu. Zdrowa struktura charakteryzuje się malejącym nakładem pracy na konserwację, podczas gdy zautomatyzowane pokrycie stale rośnie.

Podsumuj ten post następująco: