Testowanie Big Data
Big Data Testing to proces testowania aplikacji Big Data w celu zapewnienia, że wszystkie funkcje aplikacji Big Data działają zgodnie z oczekiwaniami. Celem testów big data jest upewnienie się, że system big data działa płynnie i bez błędów przy zachowaniu wydajności i bezpieczeństwa.
Big data to zbiór dużych zbiorów danych, których nie można przetwarzać przy użyciu tradycyjnych technik obliczeniowych. Testowanie tych zbiorów danych obejmuje różne narzędzia, techniki i struktury do przetworzenia. Big data odnosi się do tworzenia, przechowywania, wyszukiwania i analizy danych, które są niezwykłe pod względem ilości, różnorodności i szybkości. Możesz dowiedzieć się więcej o Big Data, Hadoop i MapReduce tutaj
W tym samouczku dotyczącym testowania dużych zbiorów danych nauczysz się:
- Co to jest strategia testowania Big Data?
- Jak testować aplikacje Hadoop
- Testowanie architektury
- Test wydajności
- Podejście do testowania wydajności
- Parametry testowania wydajności
- Potrzeby środowiska testowego
- Testowanie dużych zbiorów danych vs. Tradycyjne testowanie baz danych
- Narzędzia wykorzystywane w scenariuszach Big Data
- Wyzwania w testowaniu dużych zbiorów danych
Co to jest strategia testowania Big Data?
Testowanie aplikacji Big Data to raczej weryfikacja jej przetwarzania danych niż testowanie poszczególnych funkcji produktu. Jeśli chodzi o testowanie Big Data, kluczem do sukcesu są testy wydajnościowe i funkcjonalne .
W strategii testowania Big Data inżynierowie QA weryfikują pomyślne przetwarzanie terabajtów danych przy użyciu klastra towarowego i innych pomocniczych komponentów. Wymaga wysokiego poziomu umiejętności testowania, ponieważ przetwarzanie jest bardzo szybkie. Przetwarzanie może mieć trzy typy
Oprócz tego jakość danych jest również ważnym czynnikiem w testowaniu Hadoop. Przed przetestowaniem aplikacji konieczne jest sprawdzenie jakości danych i należy to traktować jako część testowania bazy danych. Obejmuje sprawdzenie różnych cech, takich jak zgodność, dokładność, powielanie, spójność, poprawność, kompletność danych itp. Następnie w tym samouczku dotyczącym testowania Hadoop nauczymy się testować aplikacje Hadoop.
Jak testować aplikacje Hadoop
Poniższy rysunek przedstawia ogólny przegląd faz testowania aplikacji Big Data
Testowanie Big Data lub Hadoop Testing można ogólnie podzielić na trzy etapy
Krok 1: Walidacja etapów danych
Pierwszy krok w tym samouczku dotyczącym testowania dużych zbiorów danych jest określany jako etap przed Hadoop, obejmujący walidację procesu.
- Dane z różnych źródeł, takich jak RDBMS, blogi internetowe, media społecznościowe itp., Powinny zostać sprawdzone, aby upewnić się, że prawidłowe dane są pobierane do systemu
- Porównanie danych źródłowych z danymi przesłanymi do systemu Hadoop, aby upewnić się, że są zgodne
- Sprawdź, czy właściwe dane są wyodrębniane i ładowane do właściwej lokalizacji HDFS
Narzędzia takie jak Talend , Datameer mogą być używane do sprawdzania poprawności etapów danych
Krok 2: Walidacja „MapReduce”
Drugim krokiem jest walidacja „MapReduce”. Na tym etapie tester Big Data weryfikuje walidację logiki biznesowej na każdym węźle, a następnie weryfikuje je po uruchomieniu na wielu węzłach, upewniając się, że
- Proces Map Reduce działa poprawnie
- Dane są objęte regułami agregacji lub segregacji
- Generowane są pary klucz-wartość
- Sprawdzanie poprawności danych po procesie Map-Reduce
Krok 3: Faza walidacji danych wyjściowych
Ostatnim lub trzecim etapem testowania Hadoop jest proces walidacji danych wyjściowych. Pliki danych wyjściowych są generowane i gotowe do przeniesienia do EDW (Enterprise Data Warehouse) lub dowolnego innego systemu w zależności od wymagań.
Działania w trzecim etapie obejmują
- Aby sprawdzić, czy zasady transformacji są poprawnie zastosowane
- Sprawdzenie integralności danych i pomyślnego załadowania danych do systemu docelowego
- Aby sprawdzić, czy nie ma uszkodzeń danych, porównując dane docelowe z danymi systemu plików HDFS
Testowanie architektury
Hadoop przetwarza bardzo duże ilości danych i wymaga dużej ilości zasobów. Dlatego testowanie architektury ma kluczowe znaczenie dla zapewnienia sukcesu projektu Big Data. Źle lub nieprawidłowo zaprojektowany system może prowadzić do pogorszenia wydajności, a system może nie spełniać wymagań. Przynajmniej usługi testowania wydajności i przełączania awaryjnego powinny być wykonywane w środowisku Hadoop.
Testowanie wydajności obejmuje testowanie czasu wykonania zadania, wykorzystania pamięci, przepustowości danych i podobnych metryk systemowych. Podczas gdy motywem usługi testu pracy awaryjnej jest weryfikacja, czy przetwarzanie danych przebiega bezproblemowo w przypadku awarii węzłów danych
Test wydajności
Testowanie wydajności dla Big Data obejmuje dwie główne czynności
- Pozyskiwanie danych i przez cały czas : na tym etapie tester Big Data sprawdza, w jaki sposób szybki system może zużywać dane z różnych źródeł danych. Testowanie polega na zidentyfikowaniu innej wiadomości, którą kolejka może przetworzyć w danym przedziale czasu. Obejmuje również, jak szybko dane można wstawić do bazowego magazynu danych, na przykład szybkość wstawiania do bazy danych Mongo i Cassandra.
- Przetwarzanie danych : obejmuje weryfikację szybkości, z jaką wykonywane są zapytania lub zadania związane z redukcją mapy. Obejmuje to również testowanie przetwarzania danych w izolacji, gdy bazowy magazyn danych jest zapełniony w zestawach danych. Na przykład uruchamianie zadań Map Reduce na bazowym systemie plików HDFS
- Wydajność podkomponentu : Systemy te składają się z wielu komponentów i konieczne jest przetestowanie każdego z nich oddzielnie. Na przykład, jak szybko wiadomość jest indeksowana i konsumowana, zadania MapReduce, wydajność zapytań, wyszukiwanie itp.
Podejście do testowania wydajności
Testowanie wydajności dla aplikacji Big Data obejmuje testowanie ogromnych ilości danych ustrukturyzowanych i nieustrukturyzowanych, a testowanie tak ogromnych danych wymaga specjalnego podejścia do testowania.
Testowanie wydajności jest wykonywane w tej kolejności
- Proces rozpoczyna się od ustawienia klastra Big Data, który ma zostać przetestowany pod kątem wydajności
- Zidentyfikuj i zaprojektuj odpowiednie obciążenia
- Przygotuj klientów indywidualnych (tworzone są skrypty niestandardowe)
- Wykonaj test i przeanalizuj wynik (jeśli cele nie zostaną osiągnięte, dostrój komponent i wykonaj ponownie)
- Optymalna konfiguracja
Parametry testowania wydajności
Różne parametry, które należy zweryfikować w testach wydajności to
- Przechowywanie danych: sposób przechowywania danych w różnych węzłach
- Dzienniki zatwierdzeń: wielkość dozwolonego wzrostu dziennika zatwierdzeń
- Współbieżność: ile wątków może wykonywać operacje zapisu i odczytu
- Buforowanie: dostosuj ustawienia pamięci podręcznej „pamięć podręczna wierszy” i „pamięć podręczna kluczy”.
- Limity czasu: wartości limitu czasu połączenia, limitu czasu zapytania itp.
- Parametry JVM: rozmiar sterty, algorytmy zbierania GC itp.
- Mapa zmniejsza wydajność: sortowanie, scalanie itp.
- Kolejka wiadomości: szybkość wiadomości, rozmiar itp.
Potrzeby środowiska testowego
Środowisko testowe musi zależeć od typu testowanej aplikacji. W przypadku testowania oprogramowania Big Data środowisko testowe powinno obejmować
- Powinien mieć wystarczająco dużo miejsca do przechowywania i przetwarzania dużej ilości danych
- Powinien mieć klaster z rozproszonymi węzłami i danymi
- Powinien mieć minimalne wykorzystanie procesora i pamięci, aby utrzymać wysoką wydajność do testowania wydajności Big Data
Testowanie dużych zbiorów danych vs. Tradycyjne testowanie baz danych
Nieruchomości |
Tradycyjne testowanie baz danych |
Testowanie dużych zbiorów danych |
---|---|---|
Dane |
|
|
Podejście testowe |
|
|
Strategia testowania |
|
|
Infrastruktura |
|
|
Narzędzia do walidacji |
Tester korzysta z makr opartych na programie Excel lub narzędzi do automatyzacji opartych na interfejsie użytkownika |
Brak zdefiniowanych narzędzi, zakres jest szeroki, od narzędzi programistycznych, takich jak MapReduce, po HIVEQL |
Narzędzia testowe |
Narzędzia testowe mogą być używane z podstawową wiedzą operacyjną i mniejszym przeszkoleniem. |
Obsługa narzędzia testowego wymaga określonego zestawu umiejętności i przeszkolenia. Ponadto narzędzia są w początkowej fazie iz czasem mogą pojawiać się nowe funkcje. |
Narzędzia wykorzystywane w scenariuszach Big Data
Klaster Big Data |
Narzędzia Big Data |
---|---|
NoSQL: |
|
MapReduce: |
|
Przechowywanie: |
|
Serwery: |
|
Przetwarzanie |
|
Wyzwania w testowaniu dużych zbiorów danych
- Automatyzacja
Testowanie automatyzacji dużych zbiorów danych wymaga kogoś z doświadczeniem technicznym. Ponadto zautomatyzowane narzędzia nie są przystosowane do obsługi nieoczekiwanych problemów, które pojawiają się podczas testowania
- Wirtualizacja
Jest to jedna z integralnych faz testowania. Opóźnienie maszyny wirtualnej powoduje problemy z synchronizacją podczas testowania wydajności dużych zbiorów danych w czasie rzeczywistym. Również zarządzanie obrazami w Big Data jest kłopotliwe.
- Duży zbiór danych
- Musisz zweryfikować więcej danych i zrobić to szybciej
- Konieczność zautomatyzowania prac związanych z testowaniem
- Musisz mieć możliwość testowania na różnych platformach
Wyzwania związane z testowaniem wydajności
- Zróżnicowany zestaw technologii : każdy element składowy należy do innej technologii i wymaga oddzielnego testowania
- Niedostępność określonych narzędzi : żadne pojedyncze narzędzie nie może przeprowadzić kompleksowego testowania. Na przykład NoSQL może nie pasować do kolejek komunikatów
- Skrypty testowe : Do projektowania scenariuszy testowych i przypadków testowych potrzebny jest wysoki poziom obsługi skryptów
- Środowisko testowe : wymaga specjalnego środowiska testowego ze względu na duży rozmiar danych
- Rozwiązanie do monitorowania : istnieje ograniczona liczba rozwiązań, które mogą monitorować całe środowisko
- Rozwiązanie diagnostyczne : konieczne jest opracowanie rozwiązania niestandardowego, aby przeanalizować obszary wąskich gardeł wydajności
Podsumowanie
- W miarę jak inżynieria danych i analityka danych przechodzą na wyższy poziom, testowanie dużych zbiorów danych jest nieuniknione.
- Przetwarzanie dużych ilości danych może odbywać się w trybie wsadowym, w czasie rzeczywistym lub interaktywnym
- 3 etapy testowania aplikacji Big Data to
- Etapowa walidacja danych
- Walidacja „MapReduce”
- Faza walidacji danych wyjściowych
- Testowanie architektury to ważna faza testowania dużych zbiorów danych, ponieważ źle zaprojektowany system może prowadzić do bezprecedensowych błędów i pogorszenia wydajności
- Testowanie wydajności dla Big Data obejmuje weryfikację
- Przepustowość danych
- Przetwarzanie danych
- Wydajność podzespołów
- Testowanie dużych zbiorów danych bardzo różni się od tradycyjnych testów danych pod względem danych, infrastruktury i narzędzi do walidacji
- Wyzwania związane z testowaniem dużych zbiorów danych obejmują wirtualizację, automatyzację testów i obsługę dużych zbiorów danych. Problemem jest również testowanie wydajności aplikacji Big Data.