volume testing tutorial
Omówienie testowania objętości:
Czy poniższe zdjęcie jest w jakiś sposób powiązane z naszymi aplikacjami? Tak, dokładnie tak się dzieje, gdy przeciążamy nasze serwery, bazy danych, usługi internetowe itp.
Wszyscy musimy być świadomi testowania funkcjonalnego i niefunkcjonalnego, ale czy zdajesz sobie sprawę z tego, że testowanie niefunkcjonalne jest tak samo ważne jak testowanie funkcjonalne? Czasami w krótkich wydaniach zwykle ignorujemy te niefunkcjonalne testy, których w idealnym przypadku nie powinniśmy.
Nie powinno mieć dla nas znaczenia, czy właściciel produktu dał taki wymóg, czy nie. Powinniśmy traktować te testy jako część naszego pełnego procesu testowania, nawet w przypadku małych wydań.
Ten samouczek dotyczący testowania objętościowego zawiera pełny przegląd jego znaczenia, potrzeb, ważności, listy kontrolnej i niektórych narzędzi, aby umożliwić Ci lepsze zrozumienie.
Czego się nauczysz:
- Co to jest testowanie objętości?
- Kiedy konieczne jest testowanie?
- Dlaczego powinienem dążyć do testowania objętościowego?
- Jaka jest moja lista kontrolna do tego testu?
- Testowanie objętościowe a testowanie obciążenia
- Jak przeprowadzić to badanie?
- Narzędzia do testowania objętości
- Wniosek
- rekomendowane lektury
Co to jest testowanie objętości?
Testowanie objętościowe to rodzaj testów niefunkcjonalnych. To testowanie ma na celu sprawdzenie ilości danych obsługiwanych przez bazę danych. Testowanie zbiorcze, zwane również testowaniem powodziowym, to testowanie niefunkcjonalne, które ma na celu sprawdzenie wydajności oprogramowania lub aplikacji w porównaniu z ogromnymi danymi bazy danych.
Baza danych jest rozciągnięta do punktu progowego poprzez dodanie do niej dużej ilości danych, a następnie system jest testowany pod kątem odpowiedzi.
To była część teoretyczna, wyjaśnię ci kilka praktycznych przykładów, które pomogą ci zrozumieć 'gdy' część testowania objętości.
Kiedy konieczne jest testowanie?
Idealnie byłoby, gdyby każde oprogramowanie lub aplikacja były testowane pod kątem ilości danych, ale w niektórych przypadkach, gdy dane nie będą ciężkie, staramy się unikać takich testów. Ale w niektórych przypadkach, gdy dane są przetwarzane w MB lub GB na co dzień, zdecydowanie należy przeprowadzić test objętości.
Poniżej znajduje się kilka przykładów z mojego własnego ośmioletniego doświadczenia, które wyjaśniają część „kiedy”:
Przykład 1:
Jednym z moich przedsięwzięć był duży system składający się zarówno z aplikacji internetowej, jak i aplikacji mobilnej. Ale sama aplikacja internetowa miała 3 moduły obsługiwane przez 3 różne zespoły.
Czasami nawet u nas baza danych działała wolno, gdy wszyscy „razem” dodawaliśmy dane do naszych testów. To było denerwujące, a praca była utrudniona z powodu ogromnej ilości danych i aby ułatwić pracę, którą musieliśmy dość często czyścić bazę danych.
Dane obsługiwane przez system „na żywo” wynosiły około 1 GB, stąd w porównaniu z aplikacją mobilną, aplikacja internetowa była bardzo często testowana pod kątem ilości danych. Zespoły ds. Kontroli jakości aplikacji internetowych miały własne skrypty automatyzacji, które działały w nocy i przeprowadzały te testy.
Przykład 2:
Innym przykładem mojego przedsięwzięcia był ekosystem, który miał nie tylko aplikację internetową, ale także aplikację SharePoint, a nawet instalator. Wszystkie te systemy komunikowały się z tą samą bazą danych w celu przesyłania danych. Dane obsługiwane przez ten system były również bardzo duże i jeśli z jakiegoś powodu baza danych spowolniłaby się nawet instalator przestałby działać.
do czego służy C ++
W związku z tym test objętości był wykonywany regularnie, a wydajność bazy danych była drobiazgowo obserwowana w przypadku jakichkolwiek problemów.
Podobnie, możemy wziąćPrzykładykilku aplikacji, których używamy na co dzień do robienia zakupów, rezerwacji biletów, transakcji finansowych itp., które obsługują transakcje z dużą ilością danych i dlatego wymagają testu wolumenu.
Z drugiej strony, idealne testowanie objętości może nie zawsze być osiągalne, ponieważ ma swoje własne ograniczenia i wyzwania.
Niewiele z jego ograniczeń i wyzwań obejmuje:
- Trudno jest stworzyć dokładną fragmentację pamięci.
- Dynamiczne generowanie kluczy jest trudne.
- Stworzenie idealnego rzeczywistego środowiska, tj. Repliki serwera live, może być trudne.
- Narzędzia automatyzacji, sieć itp. Również wpływają na wyniki testów.
Teraz zrozumieliśmy gdy musimy przeprowadzić tego typu testy. Zrozummy też 'dlaczego' powinniśmy zrobić to testowanie tak, jak w celu lub celu wykonania tego testu.
Dlaczego powinienem dążyć do testowania objętościowego?
Testowanie objętościowe może pomóc Ci zrozumieć, jak pasuje Twój system do rzeczywistego świata, a także pomaga zaoszczędzić pieniądze, które zostaną później wydane na cele konserwacyjne.
Oto kilka możliwych powodów przeprowadzenia tego testu:
- Najbardziej podstawową potrzebą jest analiza wydajności systemu pod kątem zwiększonej ilości danych. Utworzenie ogromnej ilości danych pomoże Ci zrozumieć wydajność systemu pod względem czasu odpowiedzi, utraty danych itp.
- Zidentyfikuj problemy, które pojawią się w przypadku ogromnych ilości danych i punktu progowego.
- Poza punktem trwałym lub progowym, zachowanie systemu, tj. Jeśli DB ulegnie awarii, przestaje odpowiadać lub wygasa.
- Wdrażanie rozwiązań dla przeciążenia bazy danych, a nawet ich weryfikacja.
- Znalezienie skrajnego punktu bazy danych (którego nie można naprawić), poza którym system zawiedzie, a zatem należy podjąć środki ostrożności.
- W przypadku więcej niż jednego serwera DB, wyszukanie problemów z komunikacją DB, czyli najbardziej podatnego na awarię z nich itp.
Teraz wiemy, jak ważne i dlaczego warto przeprowadzić te testy.
LUB nowym doświadczeniem, którym chciałbym się tutaj podzielić, jest to, że jeśli chodzi o aplikacje mobilne, testowanie objętości może nie być potrzebne, ponieważ tylko jedna osoba korzysta z aplikacji naraz, a aplikacje mobilne są zaprojektowane tak, aby były proste .
Więc jeśli nie masz bardzo złożonej aplikacji z dużym udziałem danych, testowanie wolumenu można pominąć.
Gdy już wiesz, co należy zweryfikować w systemie lub aplikacji, następną rzeczą do zrobienia jest sporządzenie listy kontrolnej, aby aplikacja mogła zdefiniować 'co' musi zostać przetestowany.
Jaka jest moja lista kontrolna do tego testu?
Zanim przejdziemy do przykładów tworzenia listy kontrolnej dla aplikacji lub systemu, najpierw zapoznajmy się z kilkoma wskazówkami, o których należy pamiętać podczas tworzenia listy kontrolnej do testowania objętościowego lub podejścia przed rozpoczęciem testowania.
Punkty do zapamiętania:
- Informuj programistów na bieżąco o swoim planie testowania, ponieważ wiedzą dużo o systemie i mogą zapewnić dane wejściowe, a nawet wąskie gardła.
- Zapoznaj się z aspektami fizycznymi, takimi jak konfiguracje serwerów, pamięć RAM, procesor itp., Zanim zaplanujesz testy.
- Zrozum w możliwym stopniu złożoność bazy danych, procedur, skryptów bazy danych, itp., Tak abyś mógł w całości zarysować złożoność systemu.
- Przygotuj informatykę, tj. Wykresy, arkusze danych itp., Jeśli to możliwe dla normalnej ilości danych i jak dobry jest system, pomoże ci to upewnić się, że przed obciążeniem bazy danych wydajność jest odpowiednia dla normalnego ładowania danych. Pomoże Ci to również upewnić się, zanim przejdziesz do części obciążającej, że nie ma problemów, które wymagałyby naprawy testu objętości.
Oto kilka przykładów, które możesz dodać lub wykorzystać na swojej liście kontrolnej:
- Sprawdź poprawność metod przechowywania danych.
- Sprawdź, czy system ma niezbędne zasoby pamięci, czy nie.
- Sprawdź, czy istnieje ryzyko, że ilość danych przekroczy określony limit.
- Sprawdź i obserwuj reakcję systemu na ilość danych.
- Sprawdź, czy dane nie są tracone podczas testowania woluminu.
- Sprawdź, czy jeśli dane są nadpisane, robi się to na podstawie wcześniejszych informacji.
- Zidentyfikuj obszary, które wykraczają poza normalny zakres, jak wiele atrybutów (z możliwością wyszukiwania), ogromne nie. tabel przeglądowych, wiele mapowań lokalizacji itp.
- Jak wspomniano wcześniej, najpierw utwórz linię bazową, uzyskując wyniki dla normalnej objętości, a następnie przejdź do przodu ze stresowaniem.
Zanim przejdziemy do innych przykładów, przypadków testowych i narzędzi, najpierw zrozumiemy, czym różni się to testowanie od testowania obciążenia.
Testowanie objętościowe a testowanie obciążenia
Poniżej podano niektóre z głównych różnic między testami objętości i obciążenia:
S.No. | Testowanie objętości | Testowanie obciążenia |
---|---|---|
1 | Testowanie wolumenu jest wykonywane w celu sprawdzenia wydajności bazy danych w odniesieniu do dużej ilości danych w bazie danych. | Testowanie obciążenia odbywa się poprzez zmianę obciążeń użytkowników dla zasobów i weryfikację wydajności zasobów. |
dwa | Głównym celem tego testu są „dane”. | Głównym celem tego testu są „użytkownicy”. |
3 | Baza danych jest obciążona do maksymalnego limitu. | Serwer jest obciążony do maksymalnego limitu. |
4 | Prostym przykładem może być utworzenie pliku o dużym rozmiarze. | Prostym przykładem może być tworzenie dużej liczby plików. |
Jak przeprowadzić to badanie?
który z poniższych elementów zapewnia zdalny program, który wygląda i działa jak aplikacja lokalna?
Testowanie można przeprowadzić ręcznie lub przy użyciu dowolnego narzędzia. Ogólnie rzecz biorąc, używanie narzędzi pozwoli nam zaoszczędzić czas i wysiłek, ale w przypadku testu objętościowego, zgodnie z moim doświadczeniem używanie narzędzi może dać dokładniejsze wyniki w porównaniu z testowaniem ręcznym.
Przed rozpoczęciem wykonywania przypadku testowego upewnij się, że:
- Zespół zgodził się na plan testów dla tych testów.
- Inne zespoły Twojego projektu są dobrze poinformowane o zmianach w bazie danych i ich wpływie na ich pracę.
- Stanowiska testowe są ustawione dla określonych konfiguracji.
- Przygotowano podstawę do testów.
- Konkretne ilości danych do testowania (skrypty danych lub procedury itp.) Są gotowe. Możesz przeczytać o narzędziach do tworzenia danych na naszej stronie generowania danych.
Zobaczmy kilka przykładowych przypadków testowych, których możesz użyć podczas wykonywania:
Sprawdź to dla wszystkich wybranych woluminów danych do testowania objętości:
- Sprawdź, czy dodanie danych może się powieść i czy ma to odzwierciedlenie w aplikacji lub witrynie.
- Sprawdź, czy usunięcie danych może się powieść i czy ma to odzwierciedlenie w aplikacji lub witrynie.
- Sprawdź, czy aktualizację danych można przeprowadzić pomyślnie i czy odzwierciedla to aplikacja lub witryna internetowa.
- Sprawdź, czy nie ma utraty danych i czy wszystkie informacje są wyświetlane zgodnie z oczekiwaniami w aplikacji lub witrynie.
- Sprawdź, czy aplikacja lub strony internetowe nie przekraczają limitu czasu z powodu dużej ilości danych.
- Sprawdź, czy błędy powodujące awarie nie są wyświetlane z powodu dużej ilości danych.
- Sprawdź, czy dane nie zostały nadpisane i czy są wyświetlane odpowiednie ostrzeżenia.
- Sprawdź, czy inne moduły Twojej witryny lub aplikacji nie ulegają awariom lub przekroczeniu limitu czasu przy dużej ilości danych.
- Sprawdź, czy czas odpowiedzi bazy danych mieści się w dopuszczalnym zakresie.
Narzędzia do testowania objętości
Jak wspomniano wcześniej, testowanie automatyczne oszczędza czas, a nawet daje dokładne wyniki w porównaniu z testowaniem ręcznym. Kolejną zaletą używania narzędzi do testowania ilościowego jest to, że możemy przeprowadzać testy w nocy, dzięki czemu ilość danych w bazie danych nie będzie miała wpływu na pracę innych zespołów lub członków zespołu.
Możemy zaplanować testy rano, a wyniki będą gotowe.
Poniżej znajduje się lista kilku narzędzi do testów objętościowych typu open source:
wykrywanie wycieków pamięci c ++
# 1) DbFit:
Jest to narzędzie typu open source, które obsługuje rozwój oparty na testach.
DbFit Framework testowy jest napisany w oparciu o Fitness, testy są napisane przy użyciu tabel i mogą być wykonywane przy użyciu dowolnego narzędzia Java IDE lub CI.
# 2) HammerDb:
HammerDb jest również narzędziem typu open source, które może być zautomatyzowane, wielowątkowe, a nawet umożliwia wykonywanie skryptów w czasie wykonywania. Może współpracować z SQL, Oracle, MYSQL itp.
# 3) JdbcSlim:
JdbcSlim polecenia można łatwo zintegrować z Slim Fitness i obsługuje wszystkie bazy danych, które mają sterownik JDBC. Nacisk kładziony jest na oddzielne przechowywanie konfiguracji, danych testowych i zapytań SQL.
# 4) NoSQLMap:
To to narzędzie Python o otwartym kodzie źródłowym, które zostało zaprojektowane do automatycznego wprowadzania ataków i zakłócania konfiguracji bazy danych w celu analizy zagrożenia. Działa tylko dla MongoDB.
# 5) Specyfikacja Ruby-PLSQL:
PLSQL można przetestować jednostkowo przy użyciu języka Ruby, ponieważ Oracle jest dostępne jako narzędzie typu open source. To zasadniczo używa dwóch bibliotek: Ruby-PLSQL i Rspec.
Wniosek
Testowanie zbiorcze to testowanie niefunkcjonalne wykonywane w celu analizy wydajności bazy danych. Można to zrobić ręcznie lub przy pomocy niektórych narzędzi.
Jeśli jesteś osobą odpowiedzialną za kontrolę jakości, która jest nowa w tych testach, sugerowałbym najpierw zabawę z narzędziem lub wykonanie kilku przypadków testowych. Pomoże Ci to zrozumieć koncepcję testowania objętości, zanim przejdziesz do testowania.
To testowanie jest dość trudne i wiąże się z własnymi wyzwaniami, dlatego bardzo ważna jest dogłębna znajomość koncepcji, tworzenia stanowiska testowego i języka DB przed jego wykonaniem.
Mam nadzieję, że ten samouczek zwiększyłby Twoją wiedzę na ten temat :)
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Testowanie w parach lub samouczek testowania we wszystkich parach z narzędziami i przykładami
- Testy funkcjonalne a testy niefunkcjonalne
- Samouczek testowania konfiguracji z przykładami
- Testing Primer Pobierz eBook
- Testy niszczące i samouczek dotyczący testów nieniszczących
- 11 najlepszych narzędzi automatyzacji do testowania aplikacji na Androida (narzędzia do testowania aplikacji na Androida)
- Najlepsze narzędzia do testowania IVR: CYARA i HAMMER Test Tutorial