Czym są testy wytrzymałościowe w testowaniu oprogramowania? (z przykładem)

Testy wytrzymałościowe

Testy wytrzymałościowe to niefunkcjonalny rodzaj testowania oprogramowania, w którym oprogramowanie jest testowane przy dużym obciążeniu przez znaczną ilość czasu w celu oceny zachowania aplikacji w warunkach ciągłego użytkowania. Głównym celem testów wytrzymałościowych jest upewnienie się, że aplikacja jest w stanie obsłużyć zwiększone obciążenie bez pogorszenia czasu odpowiedzi.

Ten typ testowania jest wykonywany na ostatnim etapie cyklu uruchomienia wydajności. Testy wytrzymałościowe to długi proces, trwający czasem nawet do roku. Może to obejmować stosowanie obciążeń zewnętrznych, takich jak ruch internetowy lub działania użytkownika. To sprawia, że ​​testy wytrzymałościowe różnią się od Testowanie obciążenia , co zwykle kończy się za kilka godzin.

Wytrzymałość oznacza zdolność, więc innymi słowy, badanie wytrzymałościowe można nazwać badaniem zdolności.

W tym samouczku dowiesz się:

Cele testów wytrzymałościowych

  • Podstawowym celem testów wytrzymałościowych jest sprawdzenie wycieków pamięci.
  • Aby odkryć, jak system działa w warunkach długotrwałego użytkowania.
  • Aby zapewnić, że po długim okresie czas odpowiedzi systemu pozostanie taki sam lub lepszy niż na początku testu.
  • Aby określić liczbę użytkowników i/lub transakcji, dany system będzie wspierał i spełniał cele wydajnościowe.
  • Aby zarządzać przyszłymi obciążeniami, musimy zrozumieć, ile dodatkowych zasobów (takich jak pojemność procesora, pojemność dysku, wykorzystanie pamięci lub przepustowość sieci) będzie potrzebnych do obsługi użycia w przyszłości.
  • Testy wytrzymałościowe są zwykle wykonywane przez przeciążenie systemu lub zmniejszenie niektórych zasobów systemowych i ocenę konsekwencji.
  • Jest wykonywany w celu zapewnienia, że ​​defekty lub wycieki pamięci nie wystąpią po okresie, który uważa się za stosunkowo „normalny” okres użytkowania.

Co monitorować w testach wytrzymałościowych

W testach wytrzymałościowych testowane są następujące rzeczy.

  • Sprawdź wyciek pamięci - Przeprowadzane są kontrole w celu sprawdzenia, czy w aplikacji występuje wyciek pamięci, który może spowodować awarię systemu lub systemu operacyjnego.
  • Testowe zamknięcie połączenia między warstwą systemu – Jeśli połączenie między warstwami systemu nie zostanie pomyślnie zamknięte, może to spowodować zablokowanie niektórych lub wszystkich modułów systemu.
  • Testuj połączenie z bazą danych zakończone pomyślnie - Jeśli połączenie z bazą danych nie zostanie pomyślnie zamknięte, może spowodować awarię systemu
  • Czas odpowiedzi testu – System jest testowany pod kątem czasu odpowiedzi systemu, ponieważ aplikacja staje się mniej wydajna w wyniku długotrwałego użytkowania systemu.

Jak wykonać testy wytrzymałościowe

Poniżej znajduje się podstawowe podejście do testowania w teście wytrzymałościowym

  • Środowisko testowe – Zidentyfikuj sprzęt, oprogramowanie, system operacyjny wymagany do testów wytrzymałościowych, przypisz role i obowiązki w zespole itp. Środowisko powinno być gotowe przed wykonaniem testów. Należy również oszacować wielkość produkcji wspólnej bazy danych i roczny wzrost. Jest to wymagane, ponieważ musisz przetestować, jak Twoja aplikacja będzie odpowiadać po roku, dwóch lub pięciu.
  • Tworzenie planu testów, scenariusze - W oparciu o charakter testowania - ręczne lub automatyczne lub połączenie obu, Przypadek testowy należy zaplanować projekt, przeglądy i wykonanie. Testowanie obciążające system, testowanie punktów przerwania itp. również powinno być częścią planu testów. Testowanie obciążające system określa punkt przerwania w aplikacji.
  • Ocena testu – Podaj oszacowanie, ile czasu zajmie ukończenie fazy testowania. Należy go przeanalizować na podstawie liczby zaangażowanych testerów i wymaganej liczby cykli testowych.
  • Ocena ryzyka - Analiza ryzyka i podjęcie odpowiednich działań profilaktycznych. Ustalanie priorytetów przypadków testowych zgodnie z czynnikiem ryzyka i identyfikowanie poniższych zagrożeń i problemów, które tester może przeprowadzić podczas testu wytrzymałościowego.
    • Czy wydajność będzie z czasem stała?
    • Czy istnieją inne drobne problemy, które nie zostały jeszcze wykryte?
    • Czy istnieją zakłócenia zewnętrzne, które nie zostały rozwiązane?
  • Harmonogram testów - Określ budżet, rezultaty w ramach czasowych. Jak Testy wytrzymałościowe stosuje ogromne, ale naturalne rozmieszczenie obciążeń transakcji w systemie/aplikacji na nieprzerwany okres czasu.

Przykład testu wytrzymałościowego

Podczas Test naprężeń doprowadza testowany system do granic możliwości, Testy wytrzymałościowe doprowadza aplikację do granic możliwości nadgodziny .

Na przykład najbardziej złożone problemy — wycieki pamięci, wykorzystanie serwera bazy danych i brak odpowiedzi systemu — mają miejsce, gdy oprogramowanie działa przez dłuższy czas. Jeśli pominiesz testy wytrzymałościowe, Twoje szanse na wykrycie takich defektów przed wdrożeniem są dość niskie.

Narzędzia do testowania wytrzymałości

  • Wczytaj do sieci
  • Ładowanie zakończone
  • Apache JMeter
  • LoadRunner
  • Wygląd
  • LoadUI
  • openSTA
  • Racjonalny Tester Wydajności

Zalety testów wytrzymałościowych

  • Pomaga w określeniu, jak obciążenie może obsłużyć System Under Load.
  • Dostarcza dokładnych danych, które klient może wykorzystać do weryfikacji lub zwiększenia swoich potrzeb infrastrukturalnych.
  • Identyfikuje problemy z wydajnością, które mogą wystąpić po dłuższym okresie pracy systemu na wysokim poziomie
  • Typowe problemy są identyfikowane w mniejszych ukierunkowanych testach wydajności, co oznacza, że ​​zapewnia to, że aplikacja pozostaje dostępna nawet w przypadku dużego obciążenia w bardzo krótkim czasie.
  • Test wytrzymałości służy również do sprawdzenia, czy po długim okresie wykonywania następuje pogorszenie wydajności

Wady testów wytrzymałościowych

  • Często trudno jest określić, ile stresu warto zastosować.
  • Testy wytrzymałościowe mogą spowodować awarie aplikacji i/lub sieci, które mogą skutkować znacznymi zakłóceniami, jeśli: Środowisko testowe nie są izolowane.
  • Trwała utrata lub uszkodzenie danych może wystąpić w wyniku nadmiernego obciążenia systemu.
  • Wykorzystanie zasobów pozostaje bardzo wysokie po usunięciu stresu.
  • Niektóre składniki aplikacji nie odpowiadają.
  • Nieobsłużone wyjątki są obserwowane przez użytkownika końcowego.

Streszczenie:

  • W inżynierii oprogramowania testowanie wytrzymałościowe jest podzbiorem testów obciążeniowych.
  • Testy wytrzymałościowe to długotrwały proces, który czasami trwa nawet rok
  • Kontrole są wykonywane w celu weryfikacji
    • Sprawdź wyciek pamięci
    • Czas odpowiedzi testu
    • Przetestuj połączenie z bazą danych itp.

Ten artykuł jest możliwy dzięki wkładowi Unnati Soni.