soak testing tutorial what is soak testing
Ten obszerny przewodnik po testach zanurzeniowych wyjaśnia, czym jest testowanie w kąpieli wodnej, dlaczego go potrzebujemy, jego zastosowanie, zalety, najlepsze praktyki i wady:
Podczas testowania aplikacji należy przeprowadzić różne rodzaje testów. Testowanie funkcjonalne i niefunkcjonalne to dwie szerokie kategorie, w których możemy podzielić typy testów.
Testowanie funkcjonalne, jak sama nazwa wskazuje, dotyczy testowania funkcjonalności aplikacji. Z drugiej strony testowanie niefunkcjonalne obejmuje wszystkie inne testy (użyteczność, wydajność itp.), Inne niż testy funkcjonalne.
Czego się nauczysz:
Soak Testing - kompletny przewodnik
Ten samouczek przedstawia koncepcje testów Soak, które są rodzajem testów wydajnościowych.
Jak widać na powyższym obrazku, możemy powiedzieć, że testowanie metodą Soak jest rodzajem testowania niefunkcjonalnego.
Co to jest test namaczania
Jest to rodzaj testu wydajności, który ma na celu sprawdzenie, czy testowana aplikacja (AUT) może wytrzymać ciągłe obciążenie przez z góry określony przedział czasu. To jest niefunkcjonalny typ testów. Jest również określany jako „Test wytrzymałościowy” lub „Testowanie żywotności” .
Jeśli użyjesz jego dosłownej nazwy, to słowo „namoczyć” samo w sobie ma znaczenie tego, co ten test zamierza zrobić. Tak więc to testowanie polega na poddaniu aplikacji przez określony czas dużemu obciążeniu.
Można się zastanawiać, jaka może być różnica, jeśli aplikacja jest ładowana przez godzinę, a może 20 godzin. Ale tak, ma znaczenie.
Można to lepiej wyjaśnić na podstawie scenariusza ze świata rzeczywistego. Jeśli lina jest ciągnięta z obu końców przez dwie osoby przez jakiś czas, może po prostu wytrzymać nacisk, jednak jeśli to samo będzie kontynuowane przez kilka dni, może po prostu pęknąć, poddając się naciskowi z jednego końca.
[wizerunek źródło ]
Tak jest w przypadku oprogramowania. Kiedy poddajemy aplikację dużemu obciążeniu (kilkaset lub kilka tysięcy użytkowników), może ona po prostu działać dobrze przez godzinę. Jednak gdy ta sama aplikacja jest obciążona przez 20 godzin, może się całkowicie zapaść.
etapy cyklu życia oprogramowania pdf
[wizerunek źródło ]
Ciągły duży ruch przez długi czas może powodować różne problemy w aplikacji. W związku z tym pojawia się potrzeba przeprowadzenia testów zanurzeniowych.
W tych testach podstawową koncepcją jest ładowanie aplikacji z oczekiwanymi użytkownikami, ale przez dłuższy czas. Pomaga to w zidentyfikowaniu różnych podstawowych problemów, które w przeciwnym razie pozostałyby niewykryte, dopóki rzeczywisty scenariusz nie wystąpi w aplikacji na żywo.
Potrzeba namoczenia testów
Aby zrozumieć tę potrzebę, musimy również zdawać sobie sprawę z możliwych problemów, przez które aplikacja może przejść, jeśli napotka duże obciążenie przez długi czas.
Przyjrzyjmy się różnym powodom, dla których testy Soak są konieczne.
# 1) Jest to głównie wymagane w celu zidentyfikowania problemów, takich jak nieprawidłowe zarządzanie pamięcią, problemy z połączeniem z bazą danych, obniżony czas odpowiedzi aplikacji itp.
Każdy z tych problemów został wyjaśniony poniżej:
- Nieprawidłowe zarządzanie pamięcią może wiązać się z problemami, takimi jak przydzielanie pamięci do użytku, ale nigdy nie zwalniane, lub gdy zasoby używają więcej pamięci niż jest to wymagane. Gdy takie scenariusze trwają przez długi czas, może to spowodować, że w systemie zabraknie pamięci, co spowoduje, że aplikacja przestanie odpowiadać.
- Problemy z połączeniem z bazą danych - błąd występujący podczas zamykania połączenia z bazą danych może w dłuższej perspektywie spowodować całkowitą awarię aplikacji.
- Zmniejszający się czas odpowiedzi aplikacji - czasami aplikacja z jakiegoś powodu może stać się mniej wydajna, a jej czas odpowiedzi może się wydłużyć. Z biegiem czasu może to spowodować, że aplikacja przestanie odpowiadać.
Aby uniknąć takich sytuacji, wolelibyśmy przetestować naszą aplikację. Pomaga w identyfikacji takich podstawowych problemów, które w przeciwnym razie mogłyby pozostać niewykryte.
#dwa) Soak Test pomaga określić, czy nasza aplikacja jest gotowa do przejęcia obciążenia przez dłuższy czas.
# 3) Umożliwia zespołowi podjęcie działań naprawczych w oparciu o reakcję systemu na testy Soak.
Kiedy rozpocząć test namaczania?
[wizerunek źródło ]
W idealnym przypadku, tak jak w przypadku każdego innego testu wydajności, testy te powinny być wykonywane podczas opracowywania produktu wraz z testami funkcjonalnymi. Jednak rzadko się to zdarza. Powód jest oczywisty, czyli zarządzanie kosztami projektu.
W związku z tym nacisk kładziony jest głównie na testowanie funkcjonalne, a wszystkie formy testów wydajnościowych są zwykle traktowane jako tylne miejsce i podejmowane w pobliżu daty wydania aplikacji.
Ogólnie rzecz biorąc, testy Soak są wykonywane tuż przed udostępnieniem aplikacji klientowi. Ma to jednak dużą wadę związaną z rozwiązaniem problemu.
Jeśli na późniejszym etapie zostanie wykryty jakikolwiek problem z wydajnością, jego naprawienie może być trudne, ponieważ może to wiązać się z poważną zmianą kodu, która może nie być możliwa, biorąc pod uwagę bliskość daty dostarczenia aplikacji.
Dlatego zawsze zaleca się, aby testy te były wykonywane na czas, aby można było rozwiązać zidentyfikowane problemy.
Soak Testing Strategy
[wizerunek źródło ]
Tak jak przygotowywana jest strategia testowa do testowania aplikacji, tak samo przygotowywana jest wcześniej strategia przeprowadzania testów typu Soak, a to jest bardzo potrzebne.
Przyjrzyjmy się, co składa się na przygotowanie strategii testowania.
Przed rozpoczęciem testu Soak zespół musi określić obciążenie, dla którego aplikacja musi zostać przetestowana. Czas, przez jaki ma być testowany, również musi być z góry określony. Zwykle zapewnia to zespół programistów.
Zespół testowy powinien zdecydować o scenariuszach, które planują do testu Soak. To z kolei zależałoby od zaangażowania Klienta i wymagań Testowanej Aplikacji.
Ponieważ testy Soak koncentrują się głównie na identyfikacji problemów z wyciekiem pamięci i zasobów, ważne jest, aby wcześniej poznać zużycie pamięci i bazy danych w porównaniu z dostępnymi.
Należy również zadecydować o szczegółach środowiska, takich jak system operacyjny, urządzenie itp., Na którym będą wykonywane testy Soak.
Wreszcie należy również wziąć pod uwagę ryzyko (a), które są z tym związane. W takich sytuacjach należy zawsze sporządzać plan awaryjny. Na przykład, jeśli baza danych ulegnie awarii podczas testowania, to jakie inne alternatywy są dostępne w jej miejsce i tak dalej.
Scenariusze testów zanurzeniowych
Kiedy witryna e-commerce ogłasza sprzedaż online swoich produktów, jest rzeczą naturalną, że ładuje się ona w okresie sprzedaży, który może trwać 3-5 dni. W takiej sytuacji należy przeprowadzić test Soak, aby uniknąć nieoczekiwanej awarii.
Podczas zamykania roku finansowego witryna banku może być bardzo obciążona przez ciągły okres. W takiej sytuacji witryna musiała zostać poddana testowi Soak, aby uniknąć nieoczekiwanej awarii aplikacji internetowej.
Gdy aplikacja jest zaprojektowana do obsługi z góry określonego obciążenia przez ciągły, z góry określony okres, konieczne staje się przetestowanie aplikacji pod kątem obciążenia co najmniej dwukrotnego jej znanego obciążenia.
Na przykład, jeśli wiadomo, że witryna obsługuje obciążenie 500 użytkowników przez nieprzerwany okres 15 godzin, aplikację należy również przetestować dla 1000 użytkowników przez 15 godzin. Pomogłoby nam to dowiedzieć się, czy aplikacja zareagowałaby nieprawidłowo, gdy zostanie zmuszona do dwukrotnego zwiększenia obciążenia.
Najlepsze praktyki
[wizerunek źródło ]
- Soak Testing należy zawsze przeprowadzać znając limit obciążenia bezczynności aplikacji, zarówno pod względem użytkowników, jak i czasu trwania. Jest to wymagane, aby było znane, ponieważ celem jest załadowanie aplikacji z oczekiwanymi użytkownikami, ale przez długi czas.
- Zaleca się przeprowadzanie testów Soak w nocy, a jeśli ma być przeprowadzone jeszcze dłuższe badanie, zaleca się wykonywanie tego w weekendy. Powód jest oczywisty, tj. W godzinach pracy zasoby są zajęte, podczas gdy w nocy lub poza godzinami pracy serwery testowe mogą być dostępne do użytku przez długi czas. Zatem godziny wolne od pracy to idealny czas na takie testy.
- Ryzyka związane z testowaniem aplikacji metodą Soak powinny być zawsze analizowane, a plan łagodzenia skutków powinien być przygotowany na to samo zdarzenie.
Zanurz ograniczenia testowania
[wizerunek źródło ]
- Długi czas wymagany do przetestowania aplikacji to jedno duże ograniczenie, generalnie ze względu na niedostępność czasu. W związku z tym czasami można uniknąć testów metodą Soak z powodu braku czasu.
- Środowisko testowe musi być starannie dobrane, aby nie miało to wpływu na inne rodzaje testów przeprowadzanych w Aplikacji. Może się tak zdarzyć, ponieważ testowanie aplikacji pod kątem dużego obciążenia przez długi czas może spowodować problemy.
- Czas na testy Soak musi być starannie określony i powinien być to głównie godziny wolne od pracy (jak weekend lub godziny nocne po zamknięciu pracy).
- Ogólnie rzecz biorąc, do testowania Soak wymagane są narzędzia automatyzacji, ponieważ testy muszą być wykonywane przez długi czas z dużą liczbą użytkowników.
Wady testu namaczania
- Na ramy czasowe projektu mogą mieć wpływ testy typu Soak, ponieważ czas wymagany do ich wykonania jest na ogół długi.
- Zasoby są zajęte na czas testowania, ponieważ wykorzystanie pamięci jest wysokie ze względu na dużą liczbę użytkowników uzyskujących dostęp do aplikacji.
Wniosek
Dzięki temu samouczkowi dowiedzieliśmy się, czym jest testowanie metodą Soak i co sprawia, że jest ono konieczne.
Teraz, mając zrozumienie tego, czym jest Soak Testing i jakiego rodzaju problemy pomaga w identyfikacji, możemy bardzo dobrze zrozumieć potrzebę wykonania tego samego. Szczególnie w czasach, gdy cały świat jest zawsze połączony, testy te stają się koniecznością.
Widzieliśmy, kiedy powinniśmy rozpocząć test Soak, wraz z podejściem, które należy zastosować. Omówiono tutaj również scenariusze, najlepsze praktyki i związane z nimi ograniczenia.
Mamy nadzieję, że ten samouczek pomógł ci zrozumieć, czym jest testowanie metodą Soak i musiał poszerzyć twoją wiedzę na ten temat.
rekomendowane lektury
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Testy niszczące i samouczek dotyczący testów nieniszczących
- Testing Primer Pobierz eBook
- Korelacja - Testowanie obciążenia za pomocą LoadRunner
- Testy funkcjonalne a testy niefunkcjonalne
- Różnica między testami na komputerach stacjonarnych, serwerach klienckich i testach internetowych
- Testowanie obciążenia za pomocą LoadUI - bezpłatnego i otwartego narzędzia do testowania obciążenia
- Kurs testowania SOA: Metodologia testowania modelu architektury SOA