Co to jest testowanie oparte na danych? Naucz się tworzyć Framework
Testowanie oparte na danych
Testowanie oparte na danych to metoda testowania oprogramowania, w której dane testowe są przechowywane w formie tabeli lub arkusza kalkulacyjnego. Testowanie oparte na danych umożliwia testerom wprowadzenie pojedynczego skryptu testowego, który może wykonać testy dla wszystkich danych testowych z tabeli i oczekiwać wyników testu w tej samej tabeli. Nazywa się to również testowaniem opartym na tabeli lub testowaniem sparametryzowanym.
Struktura oparta na danych
Struktura oparta na danych to framework do testów automatycznych, w którym wartości wejściowe są odczytywane z plików danych i zapisywane w zmiennych w skryptach testowych. Umożliwia testerom zbudowanie w jednym teście zarówno pozytywnych, jak i negatywnych przypadków testowych. Dane wejściowe w środowisku opartym na danych mogą być przechowywane w jednym lub wielu źródłach danych, takich jak .xls, .xml, .csv i bazy danych.
Dlaczego testowanie oparte na danych?
Testowanie oparte na danych jest ważne, ponieważ testerzy często mają wiele zestawów danych do jednego testu, a tworzenie indywidualnych testów dla każdego zestawu danych może być czasochłonne. Testowanie oparte na danych pomaga oddzielić dane od skryptów testowych, a te same skrypty testowe można wykonywać dla różnych kombinacji wejściowych danych testowych, co pozwala efektywnie generować wyniki testów.
Przykład:
Na przykład chcemy przetestować system logowania z wieloma polami wejściowymi i 1000 różnymi zestawami danych.
Aby to sprawdzić, możesz zastosować następujące podejścia:
Podejście 1) Utwórz 1000 skryptów, po jednym dla każdego zestawu danych i uruchamiaj każdy test osobno, jeden po drugim.
Podejście 2) Ręcznie zmień wartość w skrypcie testowym i uruchom go kilka razy.
Podejście 3) Zaimportuj dane z arkusza Excela. Pobieraj dane testowe z wierszy Excela jeden po drugim i uruchamiaj skrypt.
W podanych trzech scenariuszach pierwsze dwa są pracochłonne i czasochłonne. Dlatego idealnie jest zastosować trzecie podejście.
Zatem trzecie podejście to nic innego jak framework oparty na danych.
Jak stworzyć strukturę automatyzacji opartej na danych
Zastanów się, czy chcesz przetestować funkcjonalność logowania w aplikacji.
Krok 1) Zidentyfikuj przypadki testowe
- Wprowadź poprawną nazwę użytkownika i hasło – Logowanie powiodło się
- Wprowadź niepoprawną nazwę użytkownika i prawidłowe hasło – Błąd logowania
- Wprowadź poprawną nazwę użytkownika i nieprawidłowe hasło – Błąd logowania
Krok 2) Utwórz szczegółowe kroki testowe dla powyższych 3 przypadków testowych
Przypadek testowy# | Opis | Kroki testowe | Dane testowe | oczekiwane rezultaty |
---|---|---|---|---|
1 | Sprawdź opcję Zaloguj się, aby uzyskać prawidłowe dane uwierzytelniające |
|
Nazwa użytkownika: ważne hasło: ważne | Sukces logowania |
2 | Sprawdź opcję Logowanie pod kątem nieprawidłowych danych uwierzytelniających |
|
Nazwa użytkownika: nieprawidłowe hasło: ważne | Błąd logowania |
3 | Sprawdź opcję Logowanie pod kątem nieprawidłowych danych uwierzytelniających |
|
Nazwa użytkownika: prawidłowe hasło: nieprawidłowe | Błąd logowania |
Krok 3) Utwórz skrypt testowy
Jeśli zauważysz, że kroki testowe pozostają wspólne w 3 krokach testowych. Aby wykonać te kroki, musisz utworzyć skrypt testowy
// This is Pseudo Code // Test Step 1: Launch Application driver.get("URL of the Application"); // Test Step 2: Enter Username txtbox_username.sendKeys("valid"); // Test Step 3: Enter Password txtbox_password.sendKeys("invalid"); // Test Step 4: Check Results If (Next Screen) print success else Fail
Krok 4) Utwórz plik Excel/csv z wejściowymi danymi testowymi
Krok 5) Krok Zmodyfikuj skrypt, aby zapętlić wejściowe dane testowe. Polecenia wejściowe również powinny być sparametryzowane
// This is Pseudo Code // Loop 3 Times for (i = 0; i & lt; = 3; i++) { // Read data from Excel and store into variables int input_1 = ReadExcel(i, 0); int input_2 = ReadExcel(i, 1); // Test Step 1: Launch Application driver.get("URL of the Application"); // Test Step 2: Enter Username txtbox_username.sendKeys(input_1); // Test Step 3: Enter Password txtbox_password.sendKeys(input_2); // Test Step 4: Check Results If(Next Screen) print success else Fail }
Powyżej przedstawiono tylko 3 przypadki testowe. Skrypt testowy można wykorzystać do pętli następujących przypadków testowych, po prostu dodając wartości danych testowych do przewyższać
- Wprowadź nieprawidłową nazwę użytkownika i nieprawidłowe hasło – Logowanie nie powiodło się
- Wprowadź poprawną nazwę użytkownika i hasło puste – Logowanie nie powiodło się
- Wprowadź pustą nazwę użytkownika i puste hasło – logowanie nie powiodło się
I tak dalej
Najlepsze praktyki testowania opartego na danych
Poniżej podano najlepsze praktyki testowania w zakresie testów opartych na danych:
- Idealnym rozwiązaniem jest wykorzystanie realistycznych informacji podczas procesu testowania opartego na danych
- Nawigacja po przepływie testowym powinna być zakodowana w skrypcie testowym
- Korzystaj z wirtualnych interfejsów API za pomocą znaczących danych
- Używaj danych do generowania dynamicznych asercji
- Testuj wyniki pozytywne i negatywne
- Zmień przeznaczenie testów funkcjonalnych opartych na danych w celu zapewnienia bezpieczeństwa i wydajności
Zalety testowania opartego na danych
Oparte na danych oferują wiele korzyści, niektóre z nich to:
- Umożliwia testowanie aplikacji z wieloma zestawami wartości danych podczas testów regresyjnych
- Dane testowe i dane weryfikacyjne można zorganizować w jednym pliku, niezależnym od logiki przypadku testowego.
- W oparciu o narzędzie możliwe jest posiadanie skryptów testowych w jednym repozytorium. Dzięki temu teksty są łatwe w zrozumieniu, utrzymaniu i zarządzaniu.
- Akcje i funkcje można ponownie wykorzystać w różnych testach.
- Niektóre narzędzia automatycznie generują dane testowe. Jest to przydatne, gdy potrzebne są duże ilości losowych danych testowych, co pozwala zaoszczędzić czas.
- Testowanie oparte na danych może wykonywać dowolną fazę rozwoju. Testowanie oparte na danych jest zazwyczaj scalane w pojedynczym procesie. Może być jednak stosowane w wielu przypadkach testowych.
- Umożliwia programistom i testerom wyraźne oddzielenie logiki ich przypadków testowych/skryptów od danych testowych.
- Te same przypadki testowe można wykonać kilka razy, co pomaga zredukować liczbę przypadków testowych i skryptów.
- Wszelkie zmiany w skrypcie testowym nie mają wpływu na dane testowe
Wady testowania opartego na danych
Niektóre wady metody testowania automatycznego opartego na danych to:
- Jakość testu zależy od umiejętności automatyzacji zespołu wdrażającego
- Sprawdzanie poprawności danych jest czasochłonnym zadaniem w przypadku testowania dużej ilości danych.
- Konserwacja jest dużym problemem, ponieważ do testowania opartego na danych potrzebna jest duża ilość kodu.
- Wymagane są umiejętności techniczne na wysokim poziomie. Tester może być zmuszony nauczyć się zupełnie nowego języka skryptowego.
- Będzie więcej dokumentacji. Głównie związane z infrastrukturą testów zarządzania skryptami i wynikami testów.
- Do tworzenia i utrzymywania plików danych wymagany jest edytor tekstu, taki jak Notatnik.
Podsumowanie
- Data-driven to platforma automatyzacji testów, która przechowuje dane testowe w formacie tabeli lub arkusza kalkulacyjnego.
- W ramach automatyzacji testów opartych na danych dane wejściowe mogą być przechowywane w jednym lub wielu źródłach danych, takich jak xls, XML, CSV i bazy danych.
- Utworzenie indywidualnego testu dla każdego zestawu danych jest długim i czasochłonnym procesem. Struktura testów opartych na danych rozwiązuje ten problem, oddzielając dane od testów funkcjonalnych.
- W testowaniu opartym na danych jest to idealna opcja wykorzystania realistycznych informacji
- Umożliwia testowanie aplikacji z wieloma zestawami wartości danych w trakcie Testy regresji
- Wadą tej metody jest to, że jest ona uzależniona od umiejętności automatyzacji zespołu wdrażającego