Samouczek testowania ETL
Co to jest testowanie ETL?
Testy ETL przeprowadza się, aby upewnić się, że dane załadowane ze źródła do miejsca docelowego po transformacji biznesowej są dokładne. Obejmuje to również weryfikację danych na różnych etapach pośrednich, które są wykorzystywane między źródłem a miejscem docelowym. ETL oznacza ekstrakt-transformację-ładowanie.
Testowanie hurtowni danych
Testowanie hurtowni danych to metoda testowania, podczas której dane znajdujące się w hurtowni danych są testowane pod kątem integralności, niezawodności, dokładności i spójności w celu zapewnienia zgodności ze strukturą danych firmy. Głównym celem testowania hurtowni danych jest zapewnienie, że dane zintegrowane w hurtowni danych są wystarczająco wiarygodne, aby firma mogła podejmować decyzje.
Co to jest ETL?
ETL oznacza Extract-Transform-Load i jest to proces ładowania danych z systemu źródłowego do hurtowni danych. Dane są wyodrębniane z bazy danych OLTP, przekształcane w celu dopasowania do schematu hurtowni danych i ładowane do bazy danych hurtowni danych. Wiele hurtowni danych zawiera również dane z systemów innych niż OLTP, takie jak pliki tekstowe, starsze systemy i arkusze kalkulacyjne.
Zobaczmy jak to działa
Na przykład istnieje sklep detaliczny, który ma różne działy, takie jak sprzedaż, marketing, logistyka itp. Każdy z nich niezależnie przetwarza informacje o klientach, a sposób przechowywania tych danych jest zupełnie inny. Dział sprzedaży zapisał je według nazwy klienta, a dział marketingu według identyfikatora klienta.
Jeśli jednak chcieliby sprawdzić historię klienta i dowiedzieć się, jakie produkty kupił w ramach różnych kampanii marketingowych, byłoby to bardzo żmudne.
Rozwiązaniem jest użycie a DataWarehouse do przechowywania informacji z różnych źródeł w jednolitej strukturze przy użyciu ETL. ETL może przekształcić różne zbiory danych w jednolitą strukturę.Later korzystaj z narzędzi BI, aby wyciągać istotne wnioski i raporty z tych danych.
Poniższy diagram w tym samouczku dotyczącym testowania ETL przedstawia MAPĘ DROGOWĄ przepływu procesu testowania ETL i różne koncepcje testowania ETL:
1) Ekstrakt
- Wyodrębnij odpowiednie dane
2) Przekształć
- Przekształć dane do formatu DW (hurtownia danych).
- Utwórz klucze — klucz to jeden lub więcej atrybutów danych, które jednoznacznie identyfikują jednostkę. Różny rodzaje kluczy to klucz podstawowy, klucz alternatywny, klucz obcy, klucz złożony, klucz zastępczy. Hurtownia danych jest właścicielem tych kluczy i nigdy nie pozwala na ich przypisanie żadnemu innemu podmiotowi.
- Czyszczenie danych: Po wyodrębnieniu danych przejdą one do następnej fazy czyszczenia i dostosowywania danych. Czyszczenie polega na pominięciu danych oraz identyfikacji i naprawieniu błędów. Zgodność oznacza rozwiązanie konfliktów pomiędzy niekompatybilnymi danymi, tak aby można je było wykorzystać w hurtowni danych przedsiębiorstwa. Oprócz tego system ten tworzy metadane, które służą do diagnozowania problemów z systemem źródłowym i poprawiają jakość danych.
3) Załaduj
- Załaduj dane do DW (hurtownia danych)
- Tworzenie agregatów – tworzenie agregatu polega na podsumowaniu i zapisaniu danych dostępnych w tabela faktów w celu poprawy wydajności zapytań użytkowników końcowych.
Proces testowania ETL
Podobnie jak inne procesy testowania, ETL również przechodzi przez różne fazy. Poszczególne fazy procesu testowania ETL są następujące
Testowanie ETL odbywa się w pięciu etapach
- Identyfikacja źródeł danych i wymagań
- Akwizycji danych
- Wdrażaj logikę biznesową i modelowanie wymiarowe
- Kompiluj i wypełniaj dane
- Twórz raporty
Rodzaje testów ETL
- Testowanie walidacyjne produkcji
Proces testowania: „Bilansowanie tabel” lub „uzgadnianie produkcji” Ten typ testów ETL jest wykonywany na danych w trakcie ich przenoszenia do systemów produkcyjnych. Aby móc podjąć decyzję biznesową, dane w systemach produkcyjnych muszą być we właściwej kolejności. Informatyka Opcja sprawdzania danych zapewnia automatyzację testów ETL i możliwości zarządzania, aby zapewnić, że dane nie naruszą bezpieczeństwa systemów produkcyjnych. - Źródło do Target Testowanie (testowanie walidacyjne)
Proces testowania: Tego typu testy przeprowadza się w celu sprawdzenia, czy przekształcone wartości danych są oczekiwanymi wartościami danych. - Zastosowanie Upgrades
Proces testowania: Tego typu testy ETL mogą być generowane automatycznie, co pozwala zaoszczędzić znaczną ilość czasu na opracowywanie testów. Ten typ testów sprawdza, czy dane wyodrębnione ze starszej aplikacji lub repozytorium są dokładnie takie same, jak dane w repozytorium lub nowej aplikacji. - Testowanie metadanych
Proces testowania: Testowanie metadanych obejmuje testowanie sprawdzania typu danych, sprawdzania długości danych i sprawdzania indeksu/ograniczeń. - Testowanie kompletności danych
Proces testowania: Aby sprawdzić, czy wszystkie oczekiwane dane zostały załadowane do celu ze źródła, przeprowadzane jest testowanie kompletności danych. Niektóre z testów, które można przeprowadzić, to porównywanie i sprawdzanie poprawności zliczeń, agregacji i rzeczywistych danych między źródłem a celem dla kolumn z prostą transformacją lub bez transformacji. - Testowanie dokładności danych
Proces testowania: Testowanie to ma na celu zapewnienie, że dane są dokładnie ładowane i przekształcane zgodnie z oczekiwaniami. - Testowanie transformacji danych
Proces testowania: Testowanie transformacji danych odbywa się, ponieważ w wielu przypadkach nie da się tego osiągnąć pisząc jedno źródło SQL zapytanie i porównanie wyniku z celem. W celu sprawdzenia reguł transformacji może być konieczne wykonanie wielu zapytań SQL dla każdego wiersza. - Testowanie jakości danych
Proces testowania:Testy jakości danych obejmują testy składniowe i referencyjne. Aby uniknąć błędów związanych z datą lub numerem zamówienia podczas procesu biznesowego, przeprowadza się testy jakości danych.
Testy składni: Zgłosi brudne dane w oparciu o nieprawidłowe znaki, wzór znaków, niepoprawną kolejność wielkich lub małych liter itp.
Testy referencyjne: sprawdzi dane zgodnie z modelem danych. Na przykład: Identyfikator klienta
Testowanie jakości danych obejmuje sprawdzanie liczb, sprawdzanie dat, sprawdzanie precyzji, sprawdzanie danych, sprawdzanie wartości zerowych itp.
- Przyrostowe testowanie ETL
Proces testowania: Testowanie to ma na celu sprawdzenie integralności starych i nowych danych po dodaniu nowych danych. Testowanie przyrostowe sprawdza, czy wstawki i aktualizacje są przetwarzane zgodnie z oczekiwaniami podczas przyrostowego procesu ETL. - Testowanie GUI/nawigacji
Proces testowania: Testowanie to ma na celu sprawdzenie aspektów nawigacji lub GUI raportów front-end.
Jak utworzyć przypadek testowy ETL
Testowanie ETL to koncepcja, którą można zastosować do różnych narzędzi i baz danych w branży zarządzania informacjami. Celem testów ETL jest zapewnienie, że dane załadowane ze źródła do miejsca docelowego po transformacji biznesowej są dokładne. Obejmuje to również weryfikację danych na różnych etapach pośrednich, które są wykorzystywane między źródłem a miejscem docelowym.
Podczas wykonywania testów ETL tester ETL zawsze będzie korzystał z dwóch dokumentów:
- Arkusze mapowania ETL:Arkusze mapowania ETL zawierają wszystkie informacje o tabelach źródłowych i docelowych, w tym o każdej kolumnie i ich wyszukiwaniu w tabelach referencyjnych. Testerzy ETL muszą znać się na zapytaniach SQL, ponieważ testowanie ETL może obejmować pisanie dużych zapytań z wieloma sprzężeniami w celu sprawdzenia poprawności danych na dowolnym etapie ETL. Arkusze mapowania ETL stanowią znaczącą pomoc przy pisaniu zapytań w celu weryfikacji danych.
- Schemat DB źródła, Target: Należy go mieć pod ręką, aby sprawdzić wszelkie szczegóły w arkuszach map.
Scenariusze i przypadki testowe ETL
- Walidacja dokumentu mapowania
Przypadki testowe: Sprawdź dokument mapowania, czy podano odpowiednie informacje ETL, czy nie. Dziennik zmian powinien znajdować się w każdym dokumencie mapowania. - Walidacja
Przypadki testowe:1) Sprawdź poprawność struktury tabeli źródłowej i docelowej na podstawie odpowiedniej dokumentacji mapowania.
2) Typ danych źródłowych i typ danych docelowych powinny być takie same
3) Długość typów danych w źródle i celu powinna być równa
4) Sprawdź, czy określono typy i formaty pól danych
5) Długość typu danych źródłowych nie powinna być mniejsza niż długość typu danych docelowych
6) Sprawdź poprawność nazw kolumn w tabeli na podstawie dokumentu mapowania. - Walidacja ograniczeń
Przypadki testowe: Upewnij się, że ograniczenia są zdefiniowane dla konkretnej tabeli zgodnie z oczekiwaniami - Problemy ze spójnością danych
Przypadki testowe:1) Typ danych i długość konkretnego atrybutu mogą się różnić w zależności od pliku lub tabel, chociaż definicja semantyczna jest taka sama.
2) Nadużywanie ograniczeń integralności - Problemy z kompletnością
Przypadki testowe:1) Upewnij się, że wszystkie oczekiwane dane zostały załadowane do tabeli docelowej.
2) Porównaj liczbę rekordów między źródłem i celem.
3) Sprawdź, czy nie ma odrzuconych rekordów
4) Sprawdź, czy dane w kolumnach tabel docelowych nie powinny zostać obcięte
5) Sprawdź analizę wartości brzegowych
6) Porównuje unikalne wartości pól kluczowych między danymi załadowanymi do WH i danymi źródłowymi - Problemy z poprawnością
Przypadki testowe:1) Dane błędnie zapisane lub nieprawidłowo zapisane
2) Dane zerowe, nieunikalne lub poza zakresem - Transformacja
Przypadki testowe: Transformacja - Jakość danych
Przypadki testowe:1) Sprawdzenie numeru: Należy sprawdzić numer i go zweryfikować
2) Sprawdzenie daty: muszą być zgodne z formatem daty i muszą być takie same we wszystkich rekordach
3) Kontrola precyzji
4) Sprawdzenie danych
5) Sprawdzenie wartości zerowej - Zerowa weryfikacja
Przypadki testowe: Sprawdź wartości null, gdzie dla konkretnej kolumny określono „Not Null”. - Duplikat czeku
Przypadki testowe:1) Należy zweryfikować klucz unikalny, klucz podstawowy i każdą inną kolumnę, która powinna być unikalna zgodnie z wymaganiami biznesowymi, aby uniknąć duplikowania wierszy
2) Sprawdź, czy w kolumnie wyodrębnionej z wielu kolumn w źródle i połączonej w jedną kolumnę nie występują żadne zduplikowane wartości.
3) Zgodnie z wymaganiami klienta należy upewnić się, że nie ma duplikatów w połączeniu wielu kolumn tylko w obrębie elementu docelowego - Walidacja daty
Przypadki testowe: Wartości dat wykorzystują wiele obszarów w rozwoju ETL1) Aby poznać datę utworzenia wiersza
2) Identyfikuj aktywne rekordy zgodnie z perspektywą rozwoju ETL
3) Zidentyfikuj aktywne rekordy zgodnie z perspektywą wymagań biznesowych
4) Czasami aktualizacje i wstawki są generowane na podstawie wartości dat. - Pełna weryfikacja danych
Przypadki testowe:1) Aby sprawdzić poprawność kompletnego zestawu danych w tabeli źródłowej i docelowej, pomijając zapytanie w najlepszym rozwiązaniu
2) Musimy obliczyć źródło minus cel i cel minus źródło
3) Jeśli zapytanie minus zwróci jakąkolwiek wartość, należy ją uznać za niezgodne wiersze
4) Należy dopasować wiersze między źródłem a celem za pomocą polecenia intersect
5) Liczba zwrócona przez funkcję intersect powinna odpowiadać liczbie poszczególnych tabel źródłowych i docelowych
6) Jeżeli minus zwracanych wierszy i liczba przecięć jest mniejsza od liczby wierszy w tabeli źródłowej lub docelowej, wówczas możemy uznać, że występują zduplikowane wiersze. - Czystość danych
Przypadki testowe: Niepotrzebne kolumny należy usunąć przed załadowaniem do obszaru tymczasowego.
Rodzaje błędów ETL
Rodzaj błędów | OPIS |
---|---|
Błędy interfejsu użytkownika/błędy kosmetyczne |
• Związane z GUI aplikacji • Styl czcionki, rozmiar czcionki, kolory, wyrównanie, błędy ortograficzne, nawigacja itp. |
Błąd związany z analizą wartości brzegowych (BVA). | • Wartości minimalne i maksymalne |
Błąd związany z partycjonowaniem klas równoważności (ECP). | • Typ prawidłowy i nieprawidłowy |
Błędy wejścia/wyjścia |
• Wartości prawidłowe nie są akceptowane • Akceptowane są nieprawidłowe wartości |
Błędy obliczeniowe |
• Błędy matematyczne • Wynik końcowy jest błędny |
Załaduj błędy warunku |
• Nie pozwala na korzystanie z wielu użytkowników • Nie pozwala na oczekiwane przez klienta obciążenie |
Błędy warunków wyścigu |
• Awaria systemu i zawieszenie się • System nie może obsługiwać platform klienckich |
Błędy kontroli wersji |
• Brak dopasowania logo • Brak informacji o wersji • Dzieje się tak zazwyczaj w Testy regresji |
Błędy sprzętowe | • Urządzenie nie reaguje na aplikację |
Błędy źródła pomocy | • Błędy w dokumentach pomocy |
Różnica między testowaniem baz danych a testowaniem ETL
Testowanie ETL | Testowanie bazy danych |
---|---|
Sprawdza, czy dane są przenoszone zgodnie z oczekiwaniami | Podstawowym celem jest sprawdzenie, czy dane są zgodne z zasadami/standardami zdefiniowanymi w modelu danych |
Sprawdza, czy liczniki w źródle i miejscu docelowym są zgodne
Sprawdza, czy przekształcone dane są zgodne z oczekiwaniami |
Sprawdź, czy nie ma rekordów osieroconych i czy zachowane są relacje klucza obcego-podstawowego |
Sprawdza, czy relacje obcego klucza podstawowego są zachowane podczas ETL | Sprawdza, czy nie ma zbędnych tabel, a baza danych jest optymalnie znormalizowana |
Sprawdza duplikację załadowanych danych | W razie potrzeby sprawdź, czy w kolumnach nie brakuje danych |
Obowiązki testera ETL
Kluczowe obowiązki testera ETL można podzielić na trzy kategorie
- Stół sceniczny/SFS lub MFS
- Zastosowano logikę transformacji biznesowej
- Target ładowanie tabeli z pliku scenicznego lub tabeli po zastosowaniu transformacji.
Niektóre z obowiązków testera ETL obejmują
- Przetestuj oprogramowanie ETL
- Testuj komponenty hurtowni danych ETL
- Wykonaj test oparty na danych zaplecza
- Twórz, projektuj i realizuj przypadki testowe, plany testów i wiązkę testową
- Zidentyfikuj problem i zapewnij rozwiązania potencjalnych problemów
- Zatwierdź wymagania i specyfikacje projektowe
- Przesyłanie danych i testowy plik płaski
- Pisanie zapytań SQL3 dla różnych scenariuszy, takich jak test zliczania
Testowanie wydajnościowe w ETL
Testowanie wydajnościowe w ETL to technika testowania mająca na celu zapewnienie, że system ETL może obsłużyć obciążenie wielu użytkowników i transakcji. Głównym celem ETL Test wydajności jest optymalizacja i poprawa wydajności sesji poprzez identyfikację i eliminację wąskich gardeł wydajności. Źródłowe i docelowe bazy danych, mapowania, sesje i system mogą mieć wąskie gardła w wydajności.
Jednym z najlepszych narzędzi używanych do testowania/tuningu wydajności jest Informatica.
Automatyzacja testów ETL
Ogólna metodologia testowania ETL polega na użyciu skryptów SQL lub „przyglądaniu się” danym. Takie podejścia do testowania ETL są czasochłonne, podatne na błędy i rzadko zapewniają pełne pokrycie testu. Aby przyspieszyć, poprawić zasięg, obniżyć koszty, ulepszyć Wada współczynnik wykrywania testów ETL w środowiskach produkcyjnych i programistycznych, automatyzacja jest potrzebą chwili. Jednym z takich narzędzi jest Informatyka.
Najlepsze praktyki dotyczące testowania ETL
- Upewnij się, że dane zostały poprawnie przekształcone
- Bez utraty i obcięcia danych prognozowane dane powinny zostać załadowane do hurtowni danych
- Upewnij się, że aplikacja ETL odpowiednio odrzuca i zastępuje wartościami domyślnymi oraz zgłasza nieprawidłowe dane
- Należy upewnić się, że dane ładowane do hurtowni danych w określonych i oczekiwanych ramach czasowych, aby potwierdzić skalowalność i wydajność
- Wszystkie metody powinny mieć odpowiednie testy jednostkowe niezależnie od widoczności
- Aby zmierzyć ich skuteczność, wszystkie testy jednostkowe powinny wykorzystywać odpowiednie techniki pokrycia
- Staraj się uzyskać jedną asercję na przypadek testowy
- Stwórz testy jednostkowe których celem są wyjątki
Sprawdzić - Pytania i odpowiedzi dotyczące rozmowy kwalifikacyjnej związanej z testowaniem ETL