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.

Struktura oparta na 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

Ramy 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
  1. Uruchom aplikację
  2. Wprowadź hasło nazwy użytkownika
  3. Kliknij OK
  4. Sprawdź wyniki
Nazwa użytkownika: ważne hasło: ważne Sukces logowania
2 Sprawdź opcję Logowanie pod kątem nieprawidłowych danych uwierzytelniających
  1. Uruchom aplikację
  2. Wprowadź hasło nazwy użytkownika
  3. Kliknij OK
  4. Sprawdź wyniki
Nazwa użytkownika: nieprawidłowe hasło: ważne Błąd logowania
3 Sprawdź opcję Logowanie pod kątem nieprawidłowych danych uwierzytelniających
  1. Uruchom aplikację
  2. Wprowadź hasło nazwy użytkownika
  3. Kliknij OK
  4. Sprawdź wyniki
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

Ramy automatyzacji opartej na danych

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:

  1. Umożliwia testowanie aplikacji z wieloma zestawami wartości danych podczas testów regresyjnych
  2. Dane testowe i dane weryfikacyjne można zorganizować w jednym pliku, niezależnym od logiki przypadku testowego.
  3. 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.
  4. Akcje i funkcje można ponownie wykorzystać w różnych testach.
  5. 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.
  6. 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.
  7. Umożliwia programistom i testerom wyraźne oddzielenie logiki ich przypadków testowych/skryptów od danych testowych.
  8. Te same przypadki testowe można wykonać kilka razy, co pomaga zredukować liczbę przypadków testowych i skryptów.
  9. 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:

  1. Jakość testu zależy od umiejętności automatyzacji zespołu wdrażającego
  2. Sprawdzanie poprawności danych jest czasochłonnym zadaniem w przypadku testowania dużej ilości danych.
  3. Konserwacja jest dużym problemem, ponieważ do testowania opartego na danych potrzebna jest duża ilość kodu.
  4. Wymagane są umiejętności techniczne na wysokim poziomie. Tester może być zmuszony nauczyć się zupełnie nowego języka skryptowego.
  5. Będzie więcej dokumentacji. Głównie związane z infrastrukturą testów zarządzania skryptami i wynikami testów.
  6. 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