Testowanie stabilnoƛci w testowaniu oprogramowania

⚡ Inteligentne podsumowanie

Testowanie stabilnoƛci sprawdza, czy aplikacja dziaƂa niezawodnie w zmieniających się warunkach, a nie tylko przy jednym, staƂym obciÄ…ĆŒeniu. Ujawnia awarie, wyczerpanie zasobĂłw i degradację, ktĂłrych nigdy nie osiągnie się w krĂłtkim okresie funkcjonalnym.

  • đŸ—ïž. GƂówny cel: PotwierdĆș niezawodnoƛć systemu przy zmieniającym się obciÄ…ĆŒeniu i dƂuĆŒszym okresie eksploatacji.
  • ⚠ Uniknięte ryzyko: Nieprzetestowane systemy zawodzą w warunkach produkcyjnych, ktĂłrych nikt nie przećwiczyƂ.
  • 📊 Pierwotny Signals: Liczba procesorĂłw, pamięci, dyskĂłw i wątkĂłw tracprzez caƂy okres trwania.
  • 🔄 Niefunkcjonalne: Mierzy zachowanie pod wpƂywem stresu, a nie poprawnoƛć cech.
  • đŸ§Ș Projekt testu: PrzykƂady obejmują staƂe obciÄ…ĆŒenie procesora, wykorzystanie pamięci i powtarzające się transakcje.
  • 📈 Raportowanie: Wykresy trendĂłw są waĆŒniejsze niĆŒ pojedyncze odczyty, poniewaĆŒ dryft jest wadą.

Testowanie stabilnoƛci w testowaniu oprogramowania

Czym jest testowanie stabilnoƛci?

Testowanie stabilnoƛci to rodzaj niefunkcjonalnego testowania oprogramowania przeprowadzanego w celu pomiaru wydajnoƛci i zdolnoƛci aplikacji do ciągƂego dziaƂania przez dƂugi okres czasu. Celem testowania stabilnoƛci jest sprawdzenie, czy aplikacja nie ulega awarii lub awarii podczas normalnego uĆŒytkowania w dowolnym momencie, poprzez wykorzystanie peƂnego zakresu uĆŒytkowania.

Testowanie stabilnoƛci przeprowadza się w celu sprawdzenia wydajnoƛci opracowanego produktu poza normalną wydajnoƛcią operacyjną, często do punktu przerwania. Większe znaczenie ma obsƂuga bƂędĂłw, niezawodnoƛć oprogramowania, solidnoƛć i skalowalnoƛć produktu przy duĆŒym obciÄ…ĆŒeniu niĆŒ sprawdzanie zachowania systemu w normalnych okolicznoƛciach.

Testowanie stabilnoƛci ocenia problemy ze stabilnoƛcią. Testowanie to ma na celu przede wszystkim maksymalne obciÄ…ĆŒenie komponentu oprogramowania. Jest to technika niefunkcjonalna.

Testowanie stabilnoƛci
Testowanie stabilnoƛci

Testowanie stabilnoƛci jest rĂłwnieĆŒ okreƛlane jako obciÄ…ĆŒenie lub testy wytrzymaƂoƛciowe.

Ryzyko, jeƛli testowany system nie przeszedƂ testu stabilnoƛci

W przypadku testowanej aplikacji, do ktĂłrej wprowadzana jest duĆŒa liczba uĆŒytkownikĂłw i aplikacji, ktĂłre muszą dziaƂać miesiącami bez ponownego uruchamiania, prawdopodobnie wystąpi szereg problemĂłw:

MoĆŒna napotkać moĆŒliwy bƂąd,

  • system zwalnia
  • system napotyka problemy z funkcjonalnoƛcią
  • system wykazuje zachowanie przewodowe
  • system caƂkowicie się zawiesza

W inĆŒynierii oprogramowania Testowanie stabilnoƛci zazwyczaj obejmuje testowanie systemu z duĆŒÄ… liczbą uĆŒytkownikĂłw (wirtualnie) i pomiar parametrĂłw wydajnoƛci w celu sprawdzenia, czy system moĆŒe wytrzymać przewidywane obciÄ…ĆŒenie.

Dlaczego testowanie stabilnoƛci

Tego rodzaju testy pomagają uĆŒytkownikom zrozumieć, jak system będzie dziaƂaƂ w rzeczywistych sytuacjach.

Dlatego testowanie stabilnoƛci pozwala sprawdzić,

  • Zapewnij pewnoƛć co do stabilnoƛci testowanego systemu.
  • Upewnij się, ĆŒe TwĂłj system moĆŒe obsƂuĆŒyć duĆŒe programy.
  • Monitoruj efektywnoƛć swojego systemu.
  • SprawdĆș stabilnoƛć systemu pod obciÄ…ĆŒeniem.

Odgrywa waĆŒną rolę w rozwoju produktu, poniewaĆŒ sƂuĆŒy do okreƛlenia ograniczeƄ testowanego oprogramowania przed jego wydaniem lub obszarĂłw wymagających dalszych ulepszeƄ, zanim produkt zostanie wprowadzony na rynek lub do produkcji.

Bardzo częstym przykƂadem techniki testowania stabilnoƛci jest

Online Schmielping Portals: Testy stabilnoƛci sprawdzą, jak strona będzie się zachowywać, gdy –

  • Wysoka Iloƛć danych wprowadzonych w godzinach szczytu
  • Liczba trafieƄ w okreƛlonym czasie
  • Problem z Ƃadowaniem strony w tym samym czasie
  • Zachowanie systemu
  • Responsywnoƛć systemu i wiele innych podlegają Testowanie stabilnoƛci

Inny przykƂad

A CPU test jest popularną formą testu stabilnoƛci w ramach Test wydajnoƛci technika. Ten test sprawdza stabilnoƛć procesora, a takĆŒe monitoruje jego wydajnoƛć w miarę wzrostu obciÄ…ĆŒenia procesora.

Jak przeprowadzić test stabilnoƛci

  • Aby okreƛlić zakres i cel testĂłw, musimy upewnić się, ĆŒe serwer(y) aplikacji nie ulegnie awarii podczas wykonywania testu obciÄ…ĆŒenia.
  • Aby okreƛlić problemy biznesowe, sprawdĆș wydajnoƛć i obciÄ…ĆŒenie systemu z punktu widzenia uĆŒytkownika koƄcowego.
  • Aby przypisać rĂłĆŒne obowiązki i role, np. - Tworzenie planu testĂłw, Przypadek testowy projektowanie, przegląd przypadkĂłw testowych, wykonanie testĂłw itp.
  • Aby zapewnić dostarczenie wynikĂłw testu w okreƛlonym czasie
  • Aby zapewnić prawidƂowe Testowanie obciÄ…ĆŒenia narzędzia i zespóƂ doƛwiadczenia jest obecny w tym samym.
  • Pomiar ryzyka i kosztĂłw obejmuje testowanie. To okreƛli koszt kaĆŒdego wykonania pod względem wykorzystania procesora i pamięci.
  • Okreƛl Wada trackrĂłl i raportowanie oraz ich wƂaƛciwa mapaping z wymaganiami.

Przypadek testowy do testowania stabilnoƛci wydajnoƛci procesora

  • Aby sprawdzić gĂłrną granicę systemu.
  • SposĂłb awarii lub odzyskiwania systemu.
  • Ɓączna liczba transakcji zrealizowanych na ĆŒÄ…danie.
  • NiezaleĆŒnie od tego, czy reakcja na transakcję pozostaje staƂa, czy teĆŒ wzrasta w czasie.
  • Jak system zachowuje się pod duĆŒym obciÄ…ĆŒeniem.
  • Jego reakcja i zachowanie pod duĆŒym obciÄ…ĆŒeniem.

Raporty z testów dotyczących testów stabilnoƛci

Podczas wykonywania testĂłw gromadzone i mierzone są rĂłĆŒne statystyki, ktĂłre następnie analizuje się w celu wygenerowania raportu i zidentyfikowania moĆŒliwych problemĂłw z wydajnoƛcią.

PrzykƂadowe statystyki zebrane w ramach testu to:

  • Czasy reakcji transakcji: Úredni czas potrzebny na wykonanie transakcji podczas testu. Statystyka ta oceni, czy wydajnoƛć serwera mieƛci się w akceptowalnych minimalnych i maksymalnych okresach realizacji transakcji zdefiniowanych dla systemu. Informacje te pozwolą oszacować czas potrzebny na przetworzenie ĆŒÄ…dania przez serwer WWW i przesƂanie go do serwera aplikacji, ktĂłry w w większoƛci przypadkĂłw wyƛle â€‹â€‹ĆŒÄ…danie do serwera bazy danych.
  • Trafienia na sekundę: Liczba wejƛć na serwer przez uĆŒytkownikĂłw. Te statystyki pozwalają okreƛlić liczbę obciÄ…ĆŒeƄ generowanych przez uĆŒytkownikĂłw w odniesieniu do liczby trafieƄ.
  • Wydajnoƛć: Wielkoƛć przepustowoƛci serwera WWW podczas testu, mierzona w bajtach. Przepustowoƛć oznacza iloƛć danych, ktĂłre uĆŒytkownicy otrzymali z serwera w dowolnym momencie. Ta statystyka pomaga ocenić wielkoƛć obciÄ…ĆŒenia generowanego przez uĆŒytkownikĂłw.
  • Transakcja na sekundę: Są to Ƃączna liczba zakoƄczonych transakcji (zarĂłwno udanych, jak i nieudanych) przeprowadzonych podczas testu. Ta statystyka pomaga sprawdzić rzeczywiste obciÄ…ĆŒenie transakcyjne w systemie.
  • PROCESOR: Procent wykorzystania procesora podczas testu.
  • Pamięć: UĆŒycie pamięci podczas testu.
  • Dysk: wykorzystanie miejsca na dysku wykorzystanego podczas testu.

Podstawy testowania stabilnoƛci

Testowanie stabilnoƛci podlega testowaniu wydajnoƛci – technice przeprowadzanej w celu sprawdzenia niektórych atrybutów jakoƛci Oprogramowania, takich jak stabilnoƛć, niezawodnoƛć i dostępnoƛć.

Testowanie to sƂuĆŒy do okreƛlenia szybkoƛci dziaƂania systemu lub podsystemu przy okreƛlonym obciÄ…ĆŒeniu.

Testowanie wydajnoƛci ma wiele rodzajów, a jednym z nich jest test stabilnoƛci.

  • Test naprÄ™ĆŒeƄ: Jest to rodzaj testu, ktĂłry sprawdza wytrzymaƂoƛć systemu wykraczającą poza jego moĆŒliwoƛci.
  • Testowanie Spike'a: SƂuĆŒy do sprawdzania zachowania systemu poprzez natychmiastowe zwiększenie obciÄ…ĆŒenia systemu. Celem jest sprawdzenie, w ktĂłrym momencie system będzie miaƂ problemy z wydajnoƛcią, w przeciwnym razie problem przejdzie.
  • Testowanie skalowalnoƛci: SƂuĆŒy do sprawdzania moĆŒliwoƛci systemu. Jak skutecznie system będzie zachowywaƂ się przy rosnących potrzebach, zmianach rozmiaru i zmianach wolumenu.
  • Testowanie objętoƛci: Jest to niefunkcjonalna technika testowania, w ktĂłrej testowane oprogramowanie poddawane jest dziaƂaniu ogromnej iloƛci danych, a zachowanie systemu jest odpowiednio sprawdzane i weryfikowane.
  • Testowanie obciÄ…ĆŒenia lub stabilnoƛci: (juĆŒ omĂłwione powyĆŒej)

Narzędzia do testowania stabilnoƛci

Niektóre narzędzia do testowania wydajnoƛci to:

  • Wczytaj do sieci
  • LoadRunner
  • Apache JMeter
  • NeoZaƂadować
  • Test chmury
  • Burza obciÄ…ĆŒenia
  • ZaƂaduj interfejs uĆŒytkownika
  • WAP
  • ZaƂadujImpact
  • Ɓadowarka
  • Httperf , , , , , , , , , , , , , , , , ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,
  • OtwĂłrzSTA

Jak ten test pasuje do rodziny testów wydajnoƛciowych

Testowanie wydajnoƛci to termin ogĂłlny. PoniĆŒsze warianty rĂłĆŒnią się jedynie ksztaƂtem przyƂoĆŒonego obciÄ…ĆŒenia i czasem jego utrzymywania, dlatego tak często są ze sobą mylone.

Rodzaj testu WzĂłr obciÄ…ĆŒenia Pytanie, na ktĂłre odpowiada
Testowanie obciÄ…ĆŒenia Oczekiwane obciÄ…ĆŒenie szczytowe, krĂłtki czas trwania Czy system speƂnia swoje cele przy normalnym, szczytowym natÄ™ĆŒeniu ruchu?
Test naprÄ™ĆŒeƄ Zwiększony ponad pojemnoƛć aĆŒ do awarii Gdzie następuje przerwa i czy awaria przebiega gƂadko?
Testowanie Spike'a NagƂy, ekstremalny wzrost, a następnie wycofanie Czy przeĆŒywa i dochodzi do siebie po szoku komunikacyjnym?
Testy wytrzymaƂoƛciowe Normalne obciÄ…ĆŒenie utrzymywane przez wiele godzin Czy wydajnoƛć pogarsza się z czasem?
Testowanie zanurzeniowe DƂugotrwaƂe obciÄ…ĆŒenie przez dƂuĆŒszy okres Czy występują wycieki pamięci lub wyczerpanie zasobĂłw?
Testy stabilnoƛci Zmienne obciÄ…ĆŒenie w rĂłĆŒnych warunkach Czy system pozostaje niezawodny w zmieniających się warunkach?
Testowanie gƂoƛnoƛci Zwykli uĆŒytkownicy, bardzo duĆŒa iloƛć danych Czy system radzi sobie ze wzrostem bazy danych?

Test wytrzymaƂoƛciowy i test zanurzeniowy są często traktowane jako synonimy. W powszechnym uĆŒyciu są to: oba utrzymują staƂe obciÄ…ĆŒenie przez dƂugi czas. Tam, gdzie zespoƂy je rozrĂłĆŒniają, testy wytrzymaƂoƛciowe koncentrują się na tym, czy czasy reakcji rosną, podczas gdy testy nasączenia koncentrują się na zuĆŒyciu zasobĂłw, takich jak pamięć, uchwyty plikĂłw i pule poƂączeƄ. Uruchomienie takiego testu zazwyczaj dostarcza dowodĂłw na oba te zjawiska.

Kluczowe wskaĆșniki do uchwycenia podczas testu

Wydajnoƛć testu jest tak dobra, jak to, co rejestrujesz podczas jego wykonywania. Zarejestruj te szeƛć parametrów po stronie serwera i klienta, a następnie porównaj je z danymi bazowymi, a nie z przeczuciem.

metryczny Co ci to mĂłwi Znak ostrzegawczy
Úredni czas odpowiedzi Typowe doƛwiadczenie uĆŒytkownika Jakiekolwiek przesunięcie w gĂłrę w poprzek biegu
95. percentyl czasu reakcji Doƛwiadczenia najwolniejszych uĆŒytkownikĂłw Znacznie powyĆŒej ƛredniej, co oznacza niespĂłjnoƛć
Wydajnoƛć Liczba ĆŒÄ…daƄ obsƂuĆŒonych na sekundę Spadek przy staƂym obciÄ…ĆŒeniu
Poziom bƂędu UdziaƂ nieudanych lub przekroczonych limitĂłw czasu ĆŒÄ…daƄ KaĆŒde przekroczenie ustalonego progu
Wykorzystanie procesora i pamięci Zapas zasobów serwera Pamięć, która pnie się w górę i nigdy nie powraca
PoƂączenia i wątki bazy danych Wyczerpanie basenu Liczba, która stale roƛnie bez wydawania

Odczytaj ƛrednią i percentyl jednoczeƛnie. Úrednia 800 ms przy 95. percentylu 900 ms opisuje spĂłjny system. Ta sama ƛrednia przy 95. percentylu 9 sekund oznacza, ĆŒe ​​jeden na dwudziestu uĆŒytkownikĂłw ma problemy, a ƛrednia to ukrywa.

Zwróć uwagę na ksztaƂt, nie tylko na wartoƛć. W przypadku kaĆŒdego dƂugotrwaƂego testu pƂaska linia zasobĂłw oznacza zaliczenie testu, a rosnąca – przeciek, nawet jeƛli w chwili zakoƄczenia testu liczba bezwzględna nadal mieƛci się w limicie.

FAQ

Testy obciÄ…ĆŒeniowe sprawdzają zachowanie w zdefiniowanym punkcie szczytowym przez krĂłtki okres. Testy stabilnoƛci są przeprowadzane w zmiennych warunkach przez znacznie dƂuĆŒszy czas, w celu sprawdzenia degradacji, a nie wyniku pozytywnego lub negatywnego w odniesieniu do celu.

Wystarczająco dƂugo, aby pojawiƂy się problemy z powolnym budowaniem, zazwyczaj od 8 do 72 godzin. Czas krĂłtszy niĆŒ godzina rzadko powoduje wyciek pamięci lub stopniowe rozƂadowywanie się puli poƂączeƄ.

Wycieki zasobów, niezamknięte poƂączenia z bazą danych, nieograniczona pamięć podręczna i wątki, które są tworzone, ale nigdy nie są zwalniane. Wszystkie cztery wyglądają na sprawne w krótkim okresie i koƄczą się niepowodzeniem, gdy okres ten jest wystarczająco dƂugi.

Wykrywanie anomalii oparte na sztucznej inteligencji wykrywa moment, w ktĂłrym krzywa zasobĂłw zmienia nachylenie, co ma miejsce znacznie wczeƛniej, niĆŒ gdyby uruchomiƂ się alarm o staƂym progu, i jest znacznie bardziej niezawodne niĆŒ odczytywanie wykresĂłw na oko.

Tak. Modele trenowane na podstawie przeszƂych incydentów i zmian w kodzie wskazują moduƂy, które najprawdopodobniej będą miaƂy problemy z utratą zasobów, co pozwala zespoƂom skupić się na dƂugotrwaƂych testach, które przyniosą efekty.

Podsumuj ten post następująco: