Co to jest test stresowy w testowaniu oprogramowania?
Testy warunków skrajnych
Testy warunków skrajnych jest rodzajem testowania oprogramowania, który weryfikuje stabilność i niezawodność aplikacji oprogramowania. Celem testów obciążeniowych jest zmierzenie oprogramowania pod kątem jego wytrzymałości i możliwości obsługi błędów w warunkach ekstremalnie dużego obciążenia i upewnienie się, że oprogramowanie nie ulegnie awarii w sytuacjach kryzysowych. Testuje nawet poza normalnymi punktami operacyjnymi i ocenia, jak oprogramowanie działa w ekstremalnych warunkach.
W inżynierii oprogramowania testowanie warunków skrajnych jest również znane jako Testy wytrzymałościowe. W ramach testów obciążeniowych AUT jest poddawany obciążeniom przez krótki czas, aby poznać jego wytrzymałość. Najbardziej znane zastosowanie testów warunków skrajnych polega na określeniu limitu, przy którym system, oprogramowanie lub sprzęt ulega uszkodzeniu. Sprawdza także, czy system wykazuje skuteczne zarządzanie błędami w ekstremalnych warunkach.
Testowana aplikacja zostanie obciążona po skopiowaniu ze strony internetowej 5 GB danych i wklejeniu ich do notatnika. Notatnik jest obciążony i wyświetla komunikat o błędzie „Brak odpowiedzi”.
Potrzeba testów obciążeniowych
Rozważmy następujące przykłady w czasie rzeczywistym, w których możemy odkryć zastosowanie testów obciążeniowych:
- W okresie festiwalu witryna zakupów online może odnotować gwałtowny wzrost ruchu lub ogłosić wyprzedaż.
- Kiedy w wiodącej gazecie pojawia się wzmianka o blogu, następuje nagły wzrost ruchu.
Konieczne jest przeprowadzenie testów warunków skrajnych, aby uwzględnić takie nietypowe skoki ruchu. Niezastosowanie się do tego nagłego ruchu może skutkować utratą przychodów i reputacji.
Testy wytrzymałościowe są również niezwykle cenne z następujących powodów:
- Aby sprawdzić, czy system działa w nietypowych warunkach.
- Wyświetlanie odpowiedniego komunikatu o błędzie, gdy system jest pod obciążeniem.
- Awaria systemu w ekstremalnych warunkach może spowodować ogromną utratę przychodów
- Lepiej przygotować się na ekstremalne warunki, przeprowadzając testy warunków skrajnych.
Cele testów warunków skrajnych
Celem testów warunków skrajnych jest analiza zachowania systemu po awarii. Aby test warunków skrajnych zakończył się sukcesem, system powinien wyświetlić odpowiedni komunikat o błędzie, gdy znajduje się w ekstremalnych warunkach.
Czasami do przeprowadzenia testów warunków skrajnych można wykorzystać ogromne zbiory danych, które mogą zostać utracone podczas testów warunków skrajnych. Testerzy nie powinni tracić danych związanych z bezpieczeństwem podczas przeprowadzania testów warunków skrajnych.
Głównym celem testów warunków skrajnych jest upewnienie się, że system odzyska siły po awarii, co nazywa się odzyskiwalność.
Testowanie obciążeniowe a testowanie obciążeniowe
Testowanie obciążenia | Testy warunków skrajnych |
---|---|
Testowanie obciążenia polega na przetestowaniu zachowania systemu w normalnych warunkach obciążenia i jest to po prostu testowanie lub symulacja przy rzeczywistym obciążeniu | Testy obciążeniowe mają na celu sprawdzenie zachowania systemu w ekstremalnych warunkach i są przeprowadzane aż do awarii systemu. |
Testowanie obciążenia nie psuje systemu | testy warunków skrajnych próbują złamać system, testując przytłaczające dane lub zasoby. |
Rodzaje testów warunków skrajnych
Poniżej przedstawiono rodzaje testów wytrzymałościowych, które można znaleźć poniżej:
Rozproszone testy warunków skrajnych:
W rozproszonych systemach klient-serwer testowanie odbywa się na wszystkich klientach serwera. Rolą serwera stresu jest dystrybucja zestawu testów warunków skrajnych do wszystkich klientów stresu i śledzenie statusu klienta. Gdy klient skontaktuje się z serwerem, serwer dodaje nazwę klienta i rozpoczyna wysyłanie danych do testów.
W międzyczasie komputery klienckie wysyłają sygnał lub sygnał pulsu potwierdzający połączenie z serwerem. Jeśli serwer nie odbiera żadnych sygnałów z komputera klienckiego, należy go dokładniej sprawdzić pod kątem debugowania. Jak wynika z rysunku, serwer może połączyć się z 2 klientami (Klientem 1 i Klientem 2), ale nie może wysyłać ani odbierać sygnału od Klientów 3 i 4.
Przebieg nocny jest najlepszą opcją do przeprowadzenia scenariuszy testów warunków skrajnych. Duże farmy serwerów potrzebują bardziej wydajnej metody określania, które komputery uległy awariom wymagającym zbadania.
Testowanie obciążeniowe aplikacji:
Testy te koncentrują się na wyszukiwaniu defektów związanych z blokowaniem i blokowaniem danych, problemami z siecią i wąskimi gardłami wydajnościowymi w aplikacji.
Transakcyjne testy warunków skrajnych:
Wykonuje testy warunków skrajnych dla jednej lub większej liczby transakcji pomiędzy dwiema lub większą liczbą aplikacji. Służy do dostrajania i optymalizacji systemu.
Systemowe testy warunków skrajnych:
Jest to zintegrowany test warunków skrajnych, który można przetestować na wielu systemach działających na tym samym serwerze. Służy do wyszukiwania defektów, gdy dane jednej aplikacji blokują inną aplikację.
Eksploracyjne testy warunków skrajnych:
Jest to jeden z rodzajów testów warunków skrajnych, który służy do testowania systemu przy nietypowych parametrach lub warunkach, które są mało prawdopodobne w rzeczywistym scenariuszu. Służy do wyszukiwania defektów w nieoczekiwanych sytuacjach, np
- Duża liczba użytkowników zalogowała się w tym samym czasie
- Jeżeli skaner antywirusowy został uruchomiony na wszystkich komputerach jednocześnie
- Jeśli baza danych została przełączona w tryb offline podczas uzyskiwania do niej dostępu ze strony internetowej,
- Gdy do bazy danych wprowadzana jest jednocześnie duża ilość danych
Jak przeprowadzić testy warunków skrajnych?
Proces testów warunków skrajnych można przeprowadzić w 5 głównych krokach:
Krok 1) Planowanie testu warunków skrajnych: Tutaj zbierasz dane systemowe, analizujesz system, definiujesz cele testów warunków skrajnych
Krok 2) Utwórz skrypty automatyzacji: W tej fazie tworzysz skrypty automatyzacji testów obciążeniowych i generujesz dane testowe dla scenariuszy warunków skrajnych.
Krok 3) Wykonanie skryptu: Na tym etapie uruchamiasz skrypty automatyzacji testów obciążeniowych i przechowujesz wyniki testów obciążeniowych.
Krok 4) Analiza wyników: Na tym etapie analizujesz wyniki testu warunków skrajnych i identyfikujesz wąskie gardła.
Krok 5) Udoskonalanie i optymalizacja: Na tym etapie dostrajasz system, zmieniasz konfiguracje, optymalizujesz kod, aby osiągnąć pożądany poziom odniesienia.
Na koniec ponownie uruchamiasz cały cykl, aby sprawdzić, czy poprawki przyniosły pożądane rezultaty. Na przykład nie jest niczym niezwykłym, że osiągnięcie celów wydajnościowych wymaga przeprowadzenia od 3 do 4 cykli procesu testów obciążeniowych
Narzędzia zalecane do testów obciążeniowych
LoadRunner
LoadRunner firmy HP to szeroko stosowane narzędzie do testowania obciążenia. Wyniki testu obciążenia ukształtowane przez Loadrunner są uważane za punkt odniesienia.
Jmetr
Jmeter to narzędzie testowe Open Source. Jest to czyste Java aplikacja na stres i Test wydajności. Jmeter jest przeznaczony do testowania takich typów testów jak testy obciążeniowe, funkcjonalne, obciążeniowe itp. Do działania wymaga JDK 5 lub nowszego.
Tester stresu
Narzędzie to zapewnia obszerną analizę wydajności aplikacji internetowych, dostarcza wyniki w formie graficznej i jest niezwykle proste w użyciu. Nie jest wymagane żadne skryptowanie wysokiego poziomu i zapewnia dobry zwrot z inwestycji.
Neo załadować
Jest to popularne na rynku narzędzie do testowania sieci i Aplikacje mobilne Aplikacje. To narzędzie może symulować tysiące użytkowników w celu oceny wydajności aplikacji pod obciążeniem i analizy czasów reakcji. Obsługuje również integrację z chmurą – testy wydajności, obciążenia i warunków skrajnych. Jest łatwy w obsłudze, ekonomiczny i zapewnia dobrą skalowalność.
Metryki do testów warunków skrajnych
Metryki pomagają w ocenie wydajności systemu i są zazwyczaj badane pod koniec testu warunków skrajnych. Powszechnie stosowanymi metrykami są –
Pomiar skalowalności i wydajności
- Strony na sekundę: Mierzy liczbę żądanych stron na sekundę
- Przepustowość: Metryka podstawowa – Rozmiar danych odpowiedzi/sekundę
- Rundy: liczba zaplanowanych scenariuszy testowych w porównaniu z liczbą wykonań klienta
Odpowiedź aplikacji
- Czas trafienia: średni czas pobrania obrazu lub strony
- Czas do pierwszego bajtu: czas potrzebny na zwrócenie pierwszego bajtu danych lub informacji
- Czas strony: czas potrzebny na pobranie wszystkich informacji na stronie
Awarie
- Nieudane połączenia: liczba nieudanych połączeń odrzuconych przez klienta (Weak Signal)
- Nieudane rundy: Liczba rund, w których doszło do niepowodzenia
- Nieudane trafienia: liczba nieudanych prób wykonanych przez system (uszkodzone łącza lub niewidoczne obrazy)
Podsumowanie
Celem testów warunków skrajnych jest sprawdzenie systemu w ekstremalnych warunkach. Monitoruje zasoby systemowe, takie jak pamięć, procesor, sieć itp., i sprawdza zdolność systemu do przywrócenia normalnego stanu. Sprawdza, czy system wyświetla odpowiednie komunikaty o błędach w czasie stresu.
Przykład testów warunków skrajnych
- Serwis e-commerce ogłasza festiwalową wyprzedaż
- Serwis informacyjny w czasie niektórych ważnych wydarzeń
- Strona internetowa z wynikami Rady ds. Edukacji
- Serwisy społecznościowe lub blogi, aplikacje itp