what is endurance testing software testing
Wprowadzenie do testowania wytrzymałości oprogramowania:
W tym artykule szczegółowo omówimy i zbadamy testowanie oprogramowania Endurance.
Na początek spróbujmy zrozumieć, na czym dokładnie polega testowanie wytrzymałościowe, a następnie zbadamy wszystkie szczegóły na jego temat. Jestem pewien, że ten artykuł będzie naprawdę doskonałym przewodnikiem dla tych, którzy są nowicjuszami w koncepcji testu wytrzymałościowego.
Ten artykuł zawiera pełny przegląd testów wytrzymałościowych, w tym ich znaczenie, potrzebę, czas trwania, korzyści, wyzwania i kroki, a także proste przykłady, które pozwolą Ci doskonale zrozumieć koncepcję.
Czego się nauczysz:
- Co to jest test wytrzymałościowy?
- Dlaczego testy wytrzymałościowe?
- Czas trwania testu wytrzymałości
- Korzyści z testów wytrzymałościowych
- Wyzwania w testach wytrzymałościowych
- Przykład
- Kroki do wykonania tego testu
- Narzędzia do testowania wytrzymałości
- Wniosek
- rekomendowane lektury
Co to jest test wytrzymałościowy?
Słowo wytrzymałość oznacza „zdolność czegoś do przetrwania lub wytrzymania zużycia”. Możesz po prostu nazwać to trwałością, trwałą mocą lub długowiecznością.
Jeśli chodzi o świat oprogramowania, testy wytrzymałościowe (testy zanurzeniowe lub testy trwałości lub testy wydajności) to rodzaj testów niefunkcjonalnych, które są wykonywane w celu sprawdzenia, czy system oprogramowania może wytrzymać ogromne oczekiwane obciążenie trwające przez długi czas czasu.
Jest to jeden z typów testów wydajnościowych i podtyp testów obciążeniowych.
Dlaczego testy wytrzymałościowe?
Głównym celem wykonywania tego testu jest identyfikacja potencjalnych wycieków pamięci. Tak więc podczas tych testów wykorzystanie pamięci jest ściśle monitorowane. Mam nadzieję, że znasz pojęcie wycieków pamięci. Mimo to, pozwólcie, że wyjaśnię, czym właściwie jest wyciek pamięci dla tych, którzy mogą być nowicjuszami w tym semestrze.
DO wyciek pamięci to błąd w programie, który zwalnia odrzuconą pamięć, powodując obniżenie wydajności lub awarię.
plik wejściowy i wyjściowy c ++
Wyciek pamięci może nie mieć krótkotrwałego wpływu, ale w dłuższej perspektywie spowalnia system, który nie pozostawia wolnej pamięci, a tym samym ostatecznie prowadzi do awarii aplikacji lub systemu. Wyciek pamięci to problem, który ujawnia się dopiero po pewnym czasie.
Dlatego potrzebujemy testów wytrzymałościowych, aby odkryć takie problemy.
Jednak może się zdarzyć, że przy dużym obciążeniu aplikacja będzie działać dobrze przez jakiś czas, powiedzmy, 1 godzinę. Jednak w przypadku ciągłego wystawiania na tę samą ilość obciążenia przez dłuższy okres, powiedzmy 3-4 godziny, aplikacja ulega awarii z powodu problemów z zasobami i niewystarczającą ilością miejsca na dysku.
Inną ważną kwestią, którą należy zidentyfikować w testach wytrzymałościowych oprogramowania, jest pogorszenie wydajności. Należy upewnić się, że przepustowość lub czasy reakcji po dłuższym użytkowaniu są równoważne lub poprawione niż na początku testu.
W teście wytrzymałościowym wykryto również problemy z połączeniem z bazą danych. Jeśli połączenie z bazą danych nie zostanie pomyślnie zamknięte, może to spowodować awarię systemu.
Test wytrzymałościowy sprawdza również, czy istnieje prawidłowe zamknięcie połączenia między warstwami systemu, które w przeciwnym razie spowodowałoby zawieszenie niektórych modułów systemu.
W dużym skrócie można powiedzieć, że celem testu wytrzymałościowego jest określenie, jak system zachowuje się przez długi okres długotrwałego użytkowania. Główne problemy zidentyfikowane jako część testów wytrzymałościowych to wycieki pamięci, pogorszenie wydajności, problemy z połączeniem z bazą danych itp.
Czas trwania testu wytrzymałości
Jeśli jest to projekt działający bez przerwy przez całą dobę, 7 dni w tygodniu, najlepiej byłoby, gdyby test trwałości trwał 72 godziny. Powodem jest to, że aplikacja powinna działać bez nadzoru w weekendy (ponieważ wsparcie weekendowe jest kosztowne dla organizacji).
Musimy więc przetestować system narażony na znaczne obciążenie przez okres nieco dłuższy niż weekend. Ponieważ jednak testowanie przez 72 godziny może być zbyt uciążliwe, generalnie test wytrzymałościowy przeprowadzamy przez 12 godzin.
Co więcej, nie ma sztywnej reguły dotyczącej czasu trwania testu namaczania. Zależy to głównie od takich czynników, jak zaangażowanie klientów, faktyczne wykorzystanie produkcji itp. Czasami testy wytrzymałościowe trwają również rok!
Korzyści z testów wytrzymałościowych
Korzyści płynące z tego testu są wymienione poniżej:
- Zapewnia przydatność aplikacji.
- Odkrywa te błędy, których w innym przypadku nie można znaleźć w żadnym innym teście wydajności. Na przykład , możesz nie znaleźć problemu z wyciekiem pamięci podczas testowania woluminu lub testów warunków skrajnych.
- Sprawia, że aplikacja jest solidna: Identyfikuje problemy z obniżeniem wydajności, które mogą wystąpić przy dużym ciągłym obciążeniu, a następnie naprawienie tych problemów sprawia, że aplikacja jest bardziej niezawodna.
- Opowiada o zachowaniu się systemu pod obciążeniem w dłuższej perspektywie. Innymi słowy, sprawdza trwałość systemu w czasie.
- Dane wyników testów wytrzymałościowych mogą być wykorzystane przez klienta do weryfikacji lub poprawy potrzeb w zakresie infrastruktury.
Wyzwania w testach wytrzymałościowych
Wyzwania związane z tym testowaniem obejmują:
- Jest to bardzo czasochłonne. Dlatego trudno jest przeprowadzić testy wytrzymałościowe w projekcie, który ma bardzo rygorystyczne ramy czasowe.
- Nie można tego zrobić ręcznie. Wymaga narzędzia do automatyzacji i eksperta posiadającego wiedzę o tym narzędziu.
- Często trudno jest określić, jakie obciążenie warto przyłożyć.
- Jeśli środowisko testowe nie jest odpowiednio odizolowane od środowiska produkcyjnego na żywo, to awarie aplikacji lub sieci w teście wytrzymałościowym mogą utrudniać pracę całego systemu i skutkować trwałą utratą / uszkodzeniem danych.
- Klient przestrzega nieobsłużonych wyjątków.
Przykład
Przykładem, w którym testy wytrzymałościowe są wymagane i mogą być używane, jest aplikacja Banking.
W dni zamknięcia banku aplikacja jest testowana, aby dowiedzieć się, czy system może wytrzymać ciągłe oczekiwane obciążenie lub dużą liczbę transakcji przez długi czas.
To doskonały przykład testu wytrzymałościowego.
Kroki do wykonania tego testu
Poniżej znajduje się podejście do wykonywania tego testu:
# 1) Stwórz środowisko testowe:
Obejmuje to ustalenie, który sprzęt, oprogramowanie, baza danych (wraz z jej rozmiarem, gdy rośnie wraz z czasem trwania testu) i system operacyjny jest wymagany do wykonania testu wytrzymałościowego.
Obejmuje również utworzenie zespołu do przeprowadzania testów wytrzymałościowych oraz przypisywania ról i obowiązków w zespole. Środowisko testowe powinno być gotowe przed wykonaniem testu i odpowiednio odizolowane od rzeczywistego systemu na żywo.
# 2) Tworzenie planu testów i scenariuszy testowych:
Przypadki testowe powinny zostać zaprojektowane, przejrzane i zakończone. Na tym etapie należy również zbudować strategię wykonywania testów.
Należy określić punkt przerwania aplikacji i określić, jakie obciążenie zostanie nałożone na aplikację podczas testu wytrzymałościowego.
# 3) Oszacowanie cyklu testowego:
Obejmuje analizę, jaki byłby czas trwania każdej fazy testowej i ile cykli testowych jest wymaganych.
# 4) Analiza ryzyka:
To bardzo ważny krok w tych testach. Przypadki testowe są priorytetyzowane na podstawie czynnika ryzyka.
Ryzyka i problemy, na które tester może się natknąć podczas testu wytrzymałościowego, są wymienione poniżej:
- Czy test wydajności pozostanie spójny w czasie?
- Czy są jakieś inne drobne problemy, które nie zostały jeszcze odliczone?
- Czy są jakieś zakłócenia zewnętrzne, które nie zostały jeszcze rozwiązane?
# 5) Harmonogram testów:
Określ budżet, rezultaty i ramy czasowe.
# 6) Wykonanie testu:
Wymaga to ostatecznego rozpoczęcia testu wytrzymałościowego.
# 7) Zamknięcie cyklu testowego:
Zamknij cykl testów na podstawie kryteriów zakończenia określonych w fazie planowania testów. Może to być oparte na znalezionych wadach, czasie trwania testu itp.
Narzędzia do testowania wytrzymałości
Na rynku dostępnych jest wiele narzędzi.
Poniżej wymieniono niektóre z najpopularniejszych i najbardziej przydatnych narzędzi do testów wytrzymałościowych:
Wniosek
Z tego artykułu dowiedzieliśmy się, czym jest test wytrzymałościowy? Jak należy to zrobić? Jego zalety i wady oraz różne dostępne narzędzia.
Oto niektóre z kluczowych wniosków:
- Testy wytrzymałościowe (testy zanurzeniowe lub testy trwałości lub testy wydajności) to rodzaj testów niefunkcjonalnych, które są wykonywane w celu sprawdzenia, czy system oprogramowania może wytrzymać ogromne oczekiwane obciążenie trwające przez długi czas.
- Jest to podzbiór testów obciążenia.
- Główne problemy zidentyfikowane w ramach tych testów to wycieki pamięci, pogorszenie wydajności, problemy z połączeniem z bazą danych itp.
- Czas trwania testu wytrzymałościowego zależy od wymagań biznesowych, projektu i klienta. Może trwać 5-10 godzin lub kilka dni, miesiąc, a czasem nawet rok.
- To sprawia, że aplikacja jest bardziej niezawodna i przygotowuje ją do wytrzymania ciągłych dużych obciążeń.
- Ponieważ jest to bardzo czasochłonne, należy unikać ręcznego wykonywania testu wytrzymałości. Jest to w większości zautomatyzowane.
- Należy rozpocząć od stworzenia izolowanego środowiska testowego, następnie stworzyć plany testów, oszacować czas trwania cykli testowych, przeanalizować ryzyko, przygotować harmonogram testów, wykonać test wytrzymałościowy, a na końcu zamknąć cykl testów.
- Niektóre z doskonałych narzędzi do testów wytrzymałościowych to Apache Jmeter, LoadStorm, LoadRunner, LoadUI, Appvance, OpenSTA, WebLoad i IBM Rational Performance Tester.
Dalsze czytanie:
- 15 najlepszych narzędzi do testowania wydajności w 2018 r .: Lista narzędzi do testowania obciążenia
- STH Szczegółowy artykuł na temat testowania wydajności - z przykładami
- 4 wskazówki dotyczące testu wytrzymałości, które należy znać podczas wykonywania tego testu za pomocą narzędzia Apache JMeter
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Asystent testowania oprogramowania
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Kurs testowania oprogramowania: Do którego Instytutu Testowania Oprogramowania mam dołączyć?
- Wybór testowania oprogramowania jako swojej kariery
- Testowanie oprogramowania Praca pisarz treści technicznych Freelancer
- Kilka interesujących pytań do rozmowy kwalifikacyjnej dotyczącej testowania oprogramowania
- Opinie i recenzje dotyczące kursu testowania oprogramowania