Testowanie wytrzymałości
Testowanie wytrzymałościowe to niefunkcjonalny rodzaj testowania oprogramowania, w którym oprogramowanie jest testowane pod dużym obciążeniem przez znaczny czas w celu oceny zachowania aplikacji podczas długotrwałego użytkowania. Głównym celem testów wytrzymałościowych jest upewnienie się, że aplikacja jest zdolna do obsługi zwiększonego obciążenia bez pogorszenia czasu odpowiedzi.
Ten rodzaj testów jest wykonywany na ostatnim etapie cyklu pracy wydajności. Testy wytrzymałościowe to długi proces, który czasami trwa nawet rok. 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 testów obciążeniowych, które zwykle kończą się w ciągu kilku godzin.
Wytrzymałość oznacza wydolność, więc innymi słowy, możesz nazwać testy wytrzymałościowe jako testowanie zdolności.
W tym samouczku nauczysz się:
- Co to jest test wytrzymałościowy?
- Cele testów wytrzymałościowych
- Co monitorować w testach wytrzymałościowych
- Jak przeprowadzić testy wytrzymałościowe
- Przykład testu wytrzymałościowego
- Narzędzia do testowania wytrzymałości
- Zalety testów wytrzymałościowych
- Wady testów wytrzymałościowych
Cele testów wytrzymałościowych
- Podstawowym celem testów wytrzymałościowych jest sprawdzenie wycieków pamięci.
- Aby dowiedzieć się, jak system działa przy długotrwałym użytkowaniu.
- 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 obsługiwał i osiągał cele wydajnościowe.
- Aby zarządzać przyszłymi obciążeniami, musimy zrozumieć, ile dodatkowych zasobów (takich jak pojemność procesora, pojemność dysku, użycie pamięci lub przepustowość sieci) jest niezbędnych do obsługi użycia w przyszłości.
- Testy wytrzymałościowe zwykle przeprowadza się albo przez przeciążenie systemu, albo przez zmniejszenie niektórych zasobów systemu i ocenę konsekwencji.
- Jest wykonywany w celu zapewnienia, że defekty lub wycieki pamięci nie wystąpią po tym, co jest uważane za stosunkowo „normalny” okres użytkowania.
Co monitorować w testach wytrzymałościowych
W testach wytrzymałościowych testowane są następujące rzeczy.
- Test wycieku pamięci - kontrole są wykonywane w celu sprawdzenia, czy w aplikacji występuje przeciek pamięci, który może spowodować awarię systemu lub systemu operacyjnego
- Test zamknięcia połączenia między warstwami 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.
- Testowe połączenie z bazą danych zostało pomyślnie zamknięte - 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 przeprowadzić testy wytrzymałościowe
Poniżej znajduje się podstawowe podejście do testu wytrzymałościowego
- Środowisko testowe - Zidentyfikuj sprzęt, oprogramowanie, system operacyjny wymagany do testów wytrzymałościowych, przypisując role i obowiązki w zespole itp. Środowisko powinno być gotowe przed wykonaniem testu. Musisz również oszacować wielkość produkcji wspólnej bazy danych i roczny wzrost. Jest to wymagane, ponieważ musisz sprawdzić, jak zareaguje Twoja aplikacja po roku, dwóch lub pięciu.
- Tworzenie planu testów, scenariuszy - w oparciu o charakter testowania - ręczne lub zautomatyzowane lub kombinacja obu, należy zaplanować projektowanie, przeglądy i wykonanie Przypadku Testowego. Testowanie obciążające system, testowanie punktu załamania itp. Również powinno być częścią planu testów. Testowanie obciążające system określa punkt przerwania aplikacji.
- Oszacowanie testu - podaj oszacowanie, ile czasu zajmie ukończenie fazy testowania. Należy go przeanalizować na podstawie liczby zaangażowanych testerów i liczby wymaganych cykli testowych.
- Analiza ryzyka - Analiza ryzyka i podjęcie odpowiednich działań zapobiegawczych. Priorytetyzacja przypadków testowych zgodnie z czynnikiem ryzyka i identyfikacja poniższych zagrożeń i problemów, które tester może fazować podczas testu wytrzymałościowego.
- Czy wydajność pozostanie niezmienna w czasie?
- Czy są inne drobne problemy, które nie zostały jeszcze wykryte?
- Czy występują zakłócenia zewnętrzne, którym nie zajęto się?
- Harmonogram testów - Określ budżet, rezultaty w ramach czasowych. Ponieważ testowanie wytrzymałościowe stosuje ogromny, ale naturalny rozkład obciążenia transakcji w systemie / aplikacji przez nieprzerwany okres czasu.
Przykład testu wytrzymałościowego
Podczas gdy testy obciążeniowe doprowadzają testowany system do granic możliwości, testy wytrzymałościowe doprowadzają aplikację do granic możliwości w czasie .
Na przykład najbardziej złożone problemy - wycieki pamięci, wykorzystanie serwera bazy danych i brak odpowiedzi systemu - występują, gdy oprogramowanie działa przez dłuższy czas. Jeśli pominiesz testy wytrzymałościowe, szanse na wykrycie takich defektów przed wdrożeniem są dość niskie.
Narzędzia do testowania wytrzymałości
- POBIERZ WEB
- LoadComplete
- Apache JMeter
- LoadRunner
- Wygląd
- LoadUI
- OpenSTA
- Rational Performance Tester
Zalety testów wytrzymałościowych
- Pomaga w określeniu, jak obciążenie może obsługiwać system pod obciążeniem.
- Zapewnia dokładne dane, których klient może użyć do weryfikacji lub poprawy swoich potrzeb w zakresie infrastruktury.
- Identyfikuje problemy z wydajnością, które mogą wystąpić, gdy system działa na wysokim poziomie przez dłuższy czas
- Typowe problemy są identyfikowane w mniejszych ukierunkowanych testach wydajności, co oznacza, że aplikacja pozostaje dostępna nawet w przypadku dużego obciążenia w bardzo krótkim czasie.
- Test wytrzymałościowy służy również do sprawdzenia, czy po długim okresie wykonywania nie następuje pogorszenie wydajności
Wady testów wytrzymałościowych
- Często trudno jest określić, ile stresu warto zastosować.
- Testowanie wytrzymałościowe może spowodować awarie aplikacji i / lub sieci, które mogą spowodować poważne zakłócenia, jeśli środowisko testowe nie jest izolowane.
- Trwała utrata lub uszkodzenie danych może nastąpić w wyniku nadmiernego obciążenia systemu.
- Wykorzystanie zasobów pozostaje bardzo wysokie po usunięciu stresu.
- Niektóre składniki aplikacji nie odpowiadają.
- Użytkownik końcowy przestrzega nieobsłużonych wyjątków.
Podsumowanie:
- W inżynierii oprogramowania testy wytrzymałościowe to podzbiór testów obciążeniowych.
- Testy wytrzymałościowe to długi proces i czasami trwają nawet rok
- Kontrole są wykonywane w celu weryfikacji
- Przetestuj wyciek pamięci
- Czas odpowiedzi testu
- Przetestuj połączenie z bazą danych itp.
Ten artykuł jest możliwy dzięki wkładowi Unnati Soni.