Framework automatyzacji testów: co to jest, Architektura 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 streszczenie, aby wiedzieć, o czym będzie 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 zastosuje się te wytyczne, przyniesie to korzystne rezultaty, takie jak zmniejszenie rozpraszania słuchaczy podczas wykładów, zwiększenie retencji uczestników i zrozumienie tematu.
Na podstawie powyższego A Ramy można zdefiniować jako zbiór wytycznych, których przestrzeganie przynosi korzystne rezultaty.
Rodzaje frameworków automatyzacji testów
Poniżej znajdują się różne typy platform testów automatycznych:
- 1) Skrypty liniowe
- 2) Biblioteka testowa ArchiRamy technologiczne.
- 3) Oparta na danych Testowanie Struktura.
- 4) Struktura testowania opartego na słowach kluczowych lub tabeli.
- 5) Ramy automatyzacji testów hybrydowych.
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
Niedogodności
- 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
Niedogodności
- 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 znajduje się w Skryptach Testowych, Dane Testowe są oddzielane i przechowywane poza Skryptami Testowymi. 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 ładowanych do zmiennych wewnątrz skryptu testowego. Zmienne są używane zarówno dla wartości wejściowych, jak i wartości weryfikacyjnych. Same skrypty testowe są przygotowywane przy użyciu skryptów liniowych lub struktury bibliotek testowych.
Przykład: Opracowanie skryptu logowania do rezerwacji lotu przy użyciu tej metody będzie składać się z dwóch etapów.
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
Niedogodności
- 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
Rozwój struktury automatyzacji opartej na słowach kluczowych lub 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.
Co to jest słowo kluczowe?
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: Pisanie kodu w postaci 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 Zestaw słów kluczowych, Kliknij, Sprawdź, pozostają takie same, dla których opracowano już odpowiednie funkcje składowe. Wystarczy, że zmienisz mapowanie aplikacji (repozytorium obiektów) z wcześniejszej rezerwacji lotu na 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
Niedogodności
- 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: Mimo że Micro Focus UFT reklamuje się jako Framework oparty na słowach kluczowych, nie można uzyskać pełnej niezależności narzędzi testowych i aplikacji przy użyciu HP UFT.
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: Używanie akcji w QTP może tworzyć 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.
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
Podsumowanie
- Framework to zbiór wytycznych, takich jak standardy kodowania, obsługa danych testowych, obsługa repozytoriów obiektów itp., których przestrzeganie podczas tworzenia skryptów automatyzacji daje korzystne wyniki, takie jak zwiększone ponowne wykorzystanie kodu, większa przenośność, obniżone koszty utrzymania skryptu itp.
- Skrypty liniowe to najprostsza ze wszystkich struktur automatyzacji, znana również jako „Nagrywanie i odtwarzanie”.
- Biblioteka testowa Architecture Framework jest również znany jako „skrypty strukturalne” lub „dekompozycja funkcjonalna”.
- W środowisku testowania opartego na danych logika przypadków testowych znajduje się w skryptach testowych, a dane testowe są oddzielane i przechowywane poza skryptami testowymi.
- Struktura oparta na słowach kluczowych lub oparta na tabelach wymaga opracowania tabel danych i słów kluczowych, niezależnie od narzędzia do automatyzacji testów użytego do ich wykonania.
- Hybrid Automation Framework jest tym, w co większość frameworków automatyzacji testów ewoluuje z biegiem czasu i wieloma projektami.