Co to jest testowanie wytrzymałościowe w testowaniu oprogramowania? (z przykładem)
Testy wytrzymałościowe
Testy wytrzymałościowe to niefunkcjonalny rodzaj testowania oprogramowania, podczas którego oprogramowanie jest testowane pod dużym obciążeniem przez dłuższy czas, aby ocenić zachowanie aplikacji przy długotrwałym użytkowaniu. Głównym celem testów wytrzymałościowych jest upewnienie się, że aplikacja jest w stanie wytrzymać duże obciążenia bez pogorszenia czasu reakcji.
Ten typ testów przeprowadza się na ostatnim etapie cyklu wydajnościowego. Badanie wytrzymałościowe jest procesem długotrwałym i czasami trwa nawet do roku. Może to obejmować zastosowanie 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 zazwyczaj kończy się po kilku godzinach.
Wytrzymałość oznacza zdolność, innymi słowy, badanie wytrzymałości można nazwać badaniem wydolności.
Cele testów wytrzymałościowych
- Głównym celem testów wytrzymałościowych jest sprawdzenie wycieków pamięci.
- Aby dowiedzieć się, jak system działa przy ciągłym użytkowaniu.
- Aby mieć pewność, że po długim czasie czas reakcji systemu pozostanie taki sam lub lepszy niż na początku testu.
- Aby określić liczbę użytkowników i/lub transakcji, które dany system będzie obsługiwał 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) jest niezbędnych do obsługi wykorzystania w przyszłości.
- Testowanie wytrzymałości zazwyczaj przeprowadza się poprzez przeciążenie systemu lub zmniejszenie niektórych zasobów systemowych i ocenę konsekwencji.
- Ma to na celu zapewnienie, że po stosunkowo „normalnym” okresie użytkowania nie wystąpią defekty lub wycieki pamięci.
Co monitorować w testach wytrzymałościowych
Podczas testów wytrzymałościowych sprawdzane są następujące rzeczy.- Sprawdź wyciek pamięci– Przeprowadzane są kontrole w celu sprawdzenia, czy w aplikacji nie występuje wyciek pamięci, który może spowodować awarię systemu lub systemu operacyjnego
- Przetestować zamknięcie połączenia pomiędzy warstwami układu – Jeśli połączenie pomiędzy warstwami systemu nie zostanie pomyślnie zamknięte, może to spowodować zablokowanie niektórych lub wszystkich modułów systemu.
- Przetestuj połączenie z bazą danych, które zostało pomyślnie zamknięte– Jeśli połączenie z bazą danych nie zostanie pomyślnie zamknięte, może to spowodować awarię systemu
- Czas reakcji testu – System jest testowany pod kątem czasu reakcji systemu, gdy aplikacja staje się mniej wydajna w wyniku długotrwałego użytkowania systemu.
Jak przeprowadzić badanie wytrzymałościowe
Poniżej znajduje się podstawowe podejście do testu wytrzymałościowego- Środowisko testowe – Określ sprzęt, oprogramowanie, system operacyjny wymagany do testowania wytrzymałości, przydziel role i obowiązki w zespole itd. Środowisko powinno być gotowe przed wykonaniem testu. Musisz również oszacować wspólny rozmiar produkcji bazy danych i roczny wzrost. Jest to wymagane, ponieważ musisz przetestować, jak Twoja aplikacja zareaguje po roku, dwóch lub pięciu latach.
- Tworzenie planu testów, scenariuszy – W zależności od charakteru testowania – ręcznego, automatycznego lub kombinacji obu, Przypadek testowy należy zaplanować projekt, przeglądy i wykonanie. Testowanie obciążające system, testowanie punktu krytycznego itp. również powinno być częścią planu testów. Testowanie obciążenia systemu określa punkt przerwania w aplikacji.
- Oszacowanie testu – Podaj szacunkowy czas potrzebny na ukończenie fazy testowania. Należy to przeanalizować na podstawie liczby zaangażowanych testerów i liczby wymaganych cykli testowych.
- Ocena ryzyka - Analiza ryzyka i podjęcie odpowiednich działań zapobiegawczych. Ustalenie priorytetów przypadków testowych zgodnie z czynnikiem ryzyka i zidentyfikowanie poniższych zagrożeń i problemów, które tester może wykonać podczas testu wytrzymałościowego.
- Czy wydajność pozostanie niezmienna w miarę upływu czasu?
- Czy są jeszcze inne drobne problemy, które nie zostały jeszcze wykryte?
- Czy występują zakłócenia zewnętrzne, które nie zostały wyeliminowane?
- Harmonogram testów – Określ budżet, rezultaty w ramach czasowych. Jak Testy wytrzymałościowe stosuje ogromny, ale naturalny układ obciążenia transakcji w systemie/aplikacji przez ciągły okres czasu.
Przykład testu wytrzymałościowego
Kompletujemy wszystkie dokumenty (wymagana jest kopia paszportu i XNUMX zdjęcia) potrzebne do Test naprężeń doprowadza testowany system do granic możliwości, Testy wytrzymałościowe przenosi aplikację do granic możliwości z biegiem czasu. Na przykład najbardziej złożone problemy – wycieki pamięci, wykorzystanie serwera bazy danych i brak reakcji 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
- Wczytaj do sieci
- Ładowanie zakończoneComp
- Apache JMeter
- LoadRunner
- Wygląd
- Załaduj interfejs użytkownika
- OtwórzSTA
- Rational Performance Tester
Zalety testów wytrzymałościowych
- Pomaga w określeniu obciążenia, jakie może obsłużyć system pod obciążeniem.
- Zapewnia dokładne dane, których klient może użyć do sprawdzenia lub ulepszenia 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 przy dużym obciążeniu w bardzo krótkim czasie.
- Test wytrzymałościowy służy również do sprawdzenia, czy po długim okresie wykonywania nastąpi pogorszenie wydajności
Wady testów wytrzymałościowych
- Często trudno jest określić, ile stresu warto zastosować.
- Testowanie wytrzymałości może spowodować awarie aplikacji i/lub sieci, które mogą skutkować poważnymi zakłóceniami, jeśli Środowisko testowe nie są izolowane.
- W wyniku nadmiernego obciążenia systemu może dojść do trwałej utraty lub uszkodzenia danych.
- Po usunięciu stresu wykorzystanie zasobów pozostaje bardzo wysokie.
- Niektóre komponenty aplikacji nie odpowiadają.
- Nieobsługiwane wyjątki są obserwowane przez użytkownika końcowego.
Podsumowanie
- In Inżynieria oprogramowania, Testowanie wytrzymałościowe jest podzbiorem testów obciążeniowych.
- Testowanie wytrzymałości jest procesem długotrwałym i czasami trwa nawet do roku
- Kontrole mają na celu weryfikację
- Sprawdź wyciek pamięci
- Czas reakcji testu
- Przetestuj połączenie z bazą danych itp.