performance testing vs load testing vs stress testing
Różnica między testami wydajnościowymi, testami obciążeniowymi i testami obciążeniowymi - z przykładami
Nasz poprzedni tutorial z tej serii będzie najlepszy Przewodnik po testach wydajności dla każdego początkującego.
W dziedzinie testowania oprogramowania napotykamy takie terminy, jak testowanie wydajności, testowanie obciążenia, testy warunków skrajnych itp. Terminy te są często źle rozumiane i interpretowane jako te same pojęcia.
Istnieje jednak znacząca różnica między tymi trzema typami testów i ważne jest, aby tester rozumiał to samo.
=> Kliknij tutaj, aby uzyskać pełną serię samouczków dotyczących testowania wydajności
W tym samouczku omówimy każdy z tych typów testów, aby zrozumieć dokładne różnice między nimi.
Czego się nauczysz:
Różnica między testami wydajnościowymi, testami obciążeniowymi i testami obciążeniowymi
# 1) Testowanie wydajności
Co to jest testowanie wydajności?
Testowanie wydajności to testowanie, które jest wykonywane w celu ustalenia, jak komponenty systemu działają w określonej sytuacji.
W ramach tych testów sprawdzane jest również wykorzystanie zasobów, skalowalność i niezawodność produktu. To testowanie jest podzbiorem inżynierii wydajności, która koncentruje się na rozwiązywaniu problemów z wydajnością w projektowaniu i architekturze oprogramowania.
Powyższe zdjęcie wyraźnie nam to wyjaśnia Testy wydajnościowe to nadzbiór zarówno dla testów obciążeniowych, jak i obciążeniowych. Inne rodzaje testów zawarte w testach wydajności to testy szczytowe, testy objętości, testy wytrzymałościowe i Testowanie skalowalności . Zatem testowanie wydajności jest w zasadzie bardzo szerokim terminem.
Cel testowania wydajności:
Podstawowym celem testowania wydajności jest ustalenie wzorcowego zachowania systemu. Istnieje wiele standardów branżowych, które należy spełnić podczas testowania wydajności.
Testowanie wydajności nie ma na celu znalezienia usterek w aplikacji. Nie zda też ani nie oblać testu. Raczej odnosi się do krytycznego zadania, jakim jest ustawienie punkt odniesienia i standard dla aplikacji . Testowanie wydajności powinno być wykonywane bardzo dokładnie. Ścisłe monitorowanie wydajności aplikacji / systemu jest podstawową cechą testów wydajnościowych.
Wzorzec i standard aplikacji należy określić pod względem atrybutów, takich jak szybkość, czas odpowiedzi, przepustowość, wykorzystanie zasobów i stabilność. Wszystkie te atrybuty są testowane w teście wydajności.
czym są metadane w hurtowni danych
Na przykład,
Na przykład można przetestować wydajność sieci aplikacji za pomocą wykresu „Szybkość połączenia a opóźnienie”. Opóźnienie to różnica czasu między danymi, które mają dotrzeć od źródła do celu.
Strona 70 kb nie zajęłaby więcej niż 15 sekund w przypadku najgorszego połączenia modemu 28,8 kb / s (opóźnienie = 1000 milisekund), podczas gdy strona o tym samym rozmiarze pojawiłaby się w ciągu 5 sekund przy średnim połączeniu DSL 256 kb / s (opóźnienie = 100 milisekund).
W przypadku połączenia T1 o przepustowości 1,5 Mb / s (opóźnienie = 50 milisekund) test porównawczy wydajności zostałby ustawiony na 1 sekundę, aby osiągnąć ten cel.
Inne przykład byłby modelem żądanie-odpowiedź. Możemy ustawić punkt odniesienia, że różnica czasu między wygenerowaniem żądania a potwierdzeniem odpowiedzi powinna wynosić od x ms (milisekund) do y ms, gdzie x i y to standardowe cyfry.
Pomyślny test wydajności powinien wykazać większość problemów z wydajnością, które mogą być związane z bazą danych, siecią, oprogramowaniem, sprzętem itp.
# 2) Testowanie obciążenia
Testowanie obciążenia ma na celu testowanie systemu poprzez ciągłe i równomierne zwiększanie obciążenia systemu, aż do osiągnięcia wartości progowej. Jest to podzbiór testów wydajnościowych.
Testowanie obciążenia można łatwo wykonać, wykorzystując dowolne z odpowiednich narzędzi automatyzacji dostępnych na rynku. WAPT i LoadRunner to dwa tak znane narzędzia, które pomagają w testowaniu obciążenia. Testowanie obciążenia jest również znane pod nazwami takimi jak Testowanie objętości i Testy wytrzymałościowe .
Jednak testy objętościowe koncentrują się głównie na bazach danych. Testy wytrzymałościowe testuje system, utrzymując go pod znacznym obciążeniem przez dłuższy czas.
Jedynym celem testowania obciążenia jest przydzielenie systemowi największego zadania, jakie może obsłużyć, w celu przetestowania wytrzymałości systemu i monitorowania wyników. Interesującym faktem jest to, że czasami system otrzymuje puste zadanie w celu określenia zachowania systemu w sytuacji zerowego obciążenia.
Atrybuty monitorowane w teście obciążenia obejmują szczytową wydajność, przepustowość serwera, czas odpowiedzi przy różnych poziomach obciążenia (poniżej progu przerwy), adekwatność środowiska H / W, liczbę aplikacji użytkownika, które może obsłużyć bez wpływu na wydajność.
Cel testowania obciążenia:
Cele testowania obciążenia obejmują:
- Ujawnianie defektów aplikacji związanych z przepełnieniem bufora, wyciekami pamięci i niewłaściwym zarządzaniem pamięcią. Problemy, które ostatecznie wyjdą w wyniku testów obciążenia, mogą obejmować problemy z równoważeniem obciążenia, problemy z przepustowością, przepustowością istniejącego systemu itp.
- Określenie górnego limitu wszystkich składników aplikacji, takich jak baza danych, sprzęt, sieć itp., Aby aplikacja mogła zarządzać przewidywanym obciążeniem w przyszłości.
- Aby ustawić umowy SLA dla aplikacji.
Na przykład,
Rozważmy sprawdzenie funkcjonalności poczty e-mail aplikacji, która może być zalewana jednocześnie 1000 użytkowników. Teraz 1000 użytkowników może uruchamiać transakcje e-mail (czytać, wysyłać, usuwać, przekazywać dalej, odpowiadać) na wiele różnych sposobów.
Jeśli przyjmujemy jedną transakcję na użytkownika na godzinę, będzie to 1000 transakcji na godzinę. Symulując 10 transakcji / użytkowników, moglibyśmy przetestować serwer poczty elektronicznej, zajmując go 10000 transakcji / godzinę.
Kolejny przykład testu obciążenia pokazano na poniższym obrazku:
co jest lepszym Windowsem lub Linuksem
Powyższy obraz przedstawia test obciążenia wykonany w narzędziu o nazwie JMeter . Ten test ma na celu określenie, ilu użytkowników może obsłużyć system. W tym teście 100 użytkowników jest dodawanych co 30 sekund, aż obciążenie osiągnie 1000 użytkowników. Każdy krok trwa 30 sekund, a JMeter czeka przez 30 sekund przed rozpoczęciem następnego kroku.
Gdy obciążenie osiągnie 1000 wątków, wszystkie będą działać razem przez 300 sekund (5 minut), a następnie ostatecznie zatrzymają 10 wątków co 3 sekundy.
# 3) Testowanie warunków skrajnych
W ramach testów warunków skrajnych podejmowane są różne działania mające na celu przeciążenie istniejących zasobów nadmiernymi miejscami pracy, próbując rozbić system. Testy negatywne , która obejmuje usunięcie komponentów z systemu, jest również wykonywana w ramach testów warunków skrajnych.
Znany również jako badania zmęczeniowe to testowanie powinno uchwycić stabilność aplikacji poprzez testowanie jej poza przepustowością.
Zatem zasadniczo testy warunków skrajnych oceniają zachowanie aplikacji poza szczytowym obciążeniem i normalnymi warunkami.
Celem testów warunków skrajnych jest stwierdzenie awarii systemu i monitorowanie, w jaki sposób system przywraca go z wdziękiem. Wyzwaniem jest tutaj skonfigurowanie kontrolowanego środowiska przed uruchomieniem testu, aby można było precyzyjnie uchwycić zachowanie systemu wielokrotnie w najbardziej nieprzewidywalnych scenariuszach.
Problemy, które ostatecznie wyjdą w wyniku testów warunków skrajnych, mogą obejmować problemy z synchronizacją, wycieki pamięci, warunki wyścigu itp. Jeśli test warunków skrajnych polega na sprawdzeniu, jak zachowuje się system w sytuacji nagłego wzrostu liczby użytkowników , wtedy nazywa się to testem szczytowym.
Jeśli test warunków skrajnych ma na celu sprawdzenie trwałości systemu w pewnym okresie poprzez powolny wzrost liczby użytkowników, nazywa się go testem wstępnym.
Cel testów warunków skrajnych:
Celem testów warunków skrajnych jest analiza raportów powypadkowych w celu określenia zachowania aplikacji po awarii.
Największym wyzwaniem jest zapewnienie, że system po awarii nie zagraża bezpieczeństwu wrażliwych danych. Po udanym teście warunków skrajnych system wróci do normalności wraz ze wszystkimi jego komponentami nawet po najstraszliwszej awarii.
Na przykład,
Na przykład edytor tekstu, taki jak Writer1.1.0 firmy OpenOffice.org, jest używany do tworzenia listów, prezentacji, arkuszy kalkulacyjnych itp. Celem naszych testów warunków skrajnych jest załadowanie nadmiaru znaków.
Aby to zrobić, będziemy wielokrotnie wklejać wiersz danych, aż osiągnie limit progowy obsługi dużej ilości tekstu. Gdy rozmiar znaku osiągnie 65 535 znaków, po prostu odmówi przyjęcia większej ilości danych.
Wynik testów warunków skrajnych w programie Writer 1.1.0 powoduje, że nie ulega on awarii pod wpływem stresu iz wdziękiem radzi sobie z sytuacją, co zapewnia, że aplikacja działa poprawnie nawet w rygorystycznych warunkach obciążenia.
Kolejny przykład testu obciążenia, który przedstawia test szczytowy w wyniku nagłego wzrostu liczby użytkowników 7000, pokazano poniżej:
FAQ's
Mając dość dyskusji na temat testów wydajnościowych, testów warunków skrajnych i testów obciążeniowych, przyjrzyjmy się teraz kilku pokrewnym, częstym pytaniom, na które testerzy szukają odpowiedzi.
P # 1) Czy testowanie obciążenia i testowanie wydajności to to samo?
Odpowiedź: Odpowiedź na to brzmi „nie”. One nie są takie same.
Do tej pory musieliście jasno zrozumieć różnicę między testowaniem wydajności a testowaniem obciążenia. Możesz zapoznać się z poniższym tabelarycznym podsumowaniem, aby zobaczyć, w jaki sposób testy wydajności i obciążenia mają różne cele, atrybuty zakresu do zbadania i problemy do odkrycia.
Pytanie nr 2) Czy przeprowadzanie testów warunków skrajnych w tym samym czasie, gdy przeprowadzasz testy obciążenia, jest niesprawiedliwym testem?
Odpowiedź: Jest to również częste pytanie w wielu rozmowach z testami oprogramowania i egzaminach certyfikacyjnych, ponieważ czy równoległe przeprowadzanie testów warunków skrajnych i testów obciążeniowych jest niesprawiedliwe? Odpowiedź na to brzmi „nie”. Nie jest niesprawiedliwe przeprowadzanie testów warunków skrajnych w tym samym czasie, gdy przeprowadzasz testy obciążeniowe.
Żaden test nigdy nie jest niesprawiedliwy. Jako tester twoją pracą jest znajdowanie problemów. Jednak mogą obowiązywać fakty testowania oprogramowania, a każdy problem, który wykryjesz w tej sytuacji, może nie zostać naprawiony.
Pytanie 3) Czy testowanie odtwarzania jest częścią testów wydajności?
Odpowiedź: Tak, testy regeneracyjne są klasyfikowane w ramach testów wydajności, a czasami są również przeprowadzane z testami obciążenia. W testy regeneracyjne , można uzyskać do niego dostęp, a także określić, jak dobrze aplikacja jest w stanie odzyskać sprawność po błędach, awariach, awariach sprzętu i innych podobnych problemach.
W tym działaniu oprogramowanie jest zmuszane do awarii, a następnie weryfikowane jest, czy jest w stanie poprawnie odtworzyć. Na przykład, ponowne uruchomienie systemu nagle, gdy aplikacja jest uruchomiona, a następnie weryfikacja integralności danych aplikacji.
jak stworzyć wykres w java
Pytanie 4) Czy testowanie wydajności wymaga kodowania?
Odpowiedź: Testowanie wydajności nie wymaga znajomości zaawansowanego poziomu kodowania. Dodatkową zaletą jest jednak posiadanie podstawowej wiedzy na temat programowania.
Na przykład, jeśli używasz JMeter, dobrze jest znać podstawy języka Java. Może pomóc w debugowaniu niektórych rzeczy, aw razie potrzeby możesz także napisać własny skrypt.
P # 5) Co to jest testowanie wartości szczytowych w testowaniu wydajności?
Odpowiedź: W testach szczytowych obciążenie jest gwałtownie zwiększane lub zmniejszane przez ogromną liczbę użytkowników, a później obserwowane jest zachowanie systemu. Testy szczytowe są wykonywane głównie w celu sprawdzenia, czy system jest w stanie obsłużyć nagłe zmiany obciążenia.
Różnica między testami obciążenia i obciążenia
Podsumowując, spójrzmy na główne różnice między testami obciążenia, testami warunków skrajnych i testami wydajności w poniższej tabeli:
Test wydajności | Testowanie obciążenia | Test naprężeń | |
---|---|---|---|
Domena | Nadzbiór obciążeń i testów warunków skrajnych | Podzbiór testów wydajnościowych. | Podzbiór testów wydajnościowych. |
Zakres | Bardzo szeroki zakres. Obejmuje - testy obciążeniowe, testy obciążeniowe, testy wydajności, testy objętości, testy wytrzymałościowe, testy szczytowe, testy skalowalności i testy niezawodności itp. | Węższy zakres w porównaniu z testami wydajności. Obejmuje testowanie objętości i testy wytrzymałościowe. | Węższy zakres w porównaniu z testami wydajności. Obejmuje testy zanurzeniowe i testy szczytowe. |
Główny cel | Aby ustawić punkt odniesienia i standardy dla aplikacji. | Aby zidentyfikować górną granicę systemu, ustaw SLA aplikacji i zobacz, jak system obsługuje duże obciążenia. | Aby zidentyfikować, jak system zachowuje się pod dużym obciążeniem i jak odzyskuje po awarii. Zasadniczo, aby przygotować aplikację na nieoczekiwany wzrost ruchu. |
Limit obciążenia | Zarówno - poniżej, jak i powyżej progu przerwy. | Do progu przerwy | Powyżej progu zerwania |
Badane atrybuty | Wykorzystanie zasobów, niezawodność, skalowalność, wykorzystanie zasobów, czas odpowiedzi, przepustowość, szybkość itp. | maksymalna wydajność, przepustowość serwera, czas odpowiedzi przy różnych poziomach obciążenia (poniżej progu zerwania), adekwatność środowiska H / W, liczba aplikacji użytkownika, wymagania dotyczące równoważenia obciążenia itp. | Stabilność poza przepustowością, czas odpowiedzi (powyżej progu zerwania), itp. |
Problemy zidentyfikowane w ramach tego typu testów | Wszystkie błędy wydajności, w tym nadmiar czasu wykonywania, zakres optymalizacji, problemy związane z szybkością, opóźnieniem, przepustowością itp. Zasadniczo - wszystko, co jest związane z wydajnością! | Problemy z równoważeniem obciążenia, problemy z przepustowością, problemy z wydajnością systemu, słaby czas odpowiedzi, problemy z przepustowością itp. | Luki w zabezpieczeniach z przeciążeniem, problemy z uszkodzeniem danych w sytuacji przeciążenia, spowolnienie, wycieki pamięci itp. |
Różnica między testami obciążenia, obciążenia i objętości
Do tej pory wiemy już o testach obciążeniowych i obciążeniowych, a także o różnicach między nimi. Przyjrzyjmy się teraz, czym jest testowanie objętościowe i czym różni się od testów obciążeniowych i testów warunków skrajnych.
Testowanie objętościowe jest również rodzajem testowania wydajności, które koncentruje się głównie na bazie danych.
Podczas testowania wolumenu sprawdza się, jak system zachowuje się w odniesieniu do określonej ilości danych. W ten sposób bazy danych są wypełnione maksymalną pojemnością, a ich poziomy wydajności, takie jak czas odpowiedzi i przepustowość serwera, są monitorowane.
Aby było to bardzo proste, poniżej pokazano różnicę między testami obciążenia, naprężenia i objętości:
Testowanie objętości | Testowanie obciążenia | Test naprężeń |
---|---|---|
Ogromna ilość danych | Ogromna liczba użytkowników | Zbyt wielu użytkowników, zbyt dużo danych, w kierunku awarii systemu. |
Wniosek
W tym samouczku widzieliśmy i zrozumieliśmy na przykładach, jak testy wydajnościowe, testy obciążeniowe i testy warunków skrajnych różnią się od siebie oraz jaki jest zakres każdego typu testów.
Przyjrzeliśmy się również pokrótce wielu kategoriom poddawanym testom wydajności, takim jak testy szczytowe, testy odzyskiwania, testowanie woluminów itp. I zrozumieliśmy, jak różnią się one od siebie.
Mamy nadzieję, że ten samouczek byłby niezmiernie pomocny w zrozumieniu praktycznej różnicy między testami wydajności, obciążenia i warunków skrajnych.
Sprawdź nasz nadchodzący samouczek, aby dowiedzieć się więcej o testach funkcjonalnych i testach wydajnościowych.
=> Odwiedź tutaj, aby zapoznać się z pełną serią samouczków dotyczących testowania wydajności
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Kompletny przewodnik po testach wydajnościowych z przykładami
- Przewodnik po testach wysiłkowych dla początkujących
- Kompletny przewodnik po testowaniu obciążenia dla początkujących
- Testy obciążenia, obciążenia i wydajności aplikacji internetowych przy użyciu WAPT
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Testowanie wydajności w chmurze: dostawcy usług testowania obciążenia w chmurze
- Testy funkcjonalne a testy wydajnościowe: czy należy je wykonywać jednocześnie?
- Testowanie obciążenia za pomocą LoadUI - bezpłatnego i otwartego narzędzia do testowania obciążenia