stability testing software testing
Testowanie stabilności jest częścią testów wydajności. Ten samouczek wyjaśnia cele, znaczenie i potrzebę testowania stabilności z przykładami:
Testowanie stabilności to testowanie „niefunkcjonalne”. Tutaj zespół nie testuje funkcji i podstawowej funkcjonalności witryny; ale testuje cechy oprogramowania, takie jak „odporność”, „obsługa błędów”, „niezawodność” i stabilność produktu ”.
Rozważmy osobę kupującą nowy produkt z rynku ( Na przykład, telefon komórkowy). Kupujący będzie oczekiwał, że produkt będzie działał równomiernie przez długi czas, bez żadnych awarii. Podobnie użytkownicy strony internetowej i aplikacji mobilnej będą oczekiwać, że odpowiednia witryna lub aplikacje mobilne będą działać z wysoką niezawodnością i stabilnością.
Weźmy teraz przykład użytkowników próbujących kupować towary na portalach e-commerce. Jeśli ogromna liczba użytkowników korzysta jednocześnie z tego samego portalu, szanse na obniżenie wydajności serwisu WWW są wysokie. Użytkownicy mogą również doświadczyć długiego czasu odpowiedzi lub nawet wycieku pamięci podczas sesji.
Kwestie te stanowią zagrożenie zarówno dla programistów, jak i interesariuszy. Zespół testujący jest odpowiedzialny za znalezienie tych problemów i zgłoszenie ich zespołowi programistycznemu, zanim dotrą one do użytkowników końcowych. Ten rodzaj testów będzie podlegał testom wydajności. Testowanie stabilności jest częścią testów wydajności.
Czego się nauczysz:
Przegląd testów stabilności
Jak wspomniano wcześniej, testy stabilności są również definiowane jako testy „niefunkcjonalne”. Tutaj zespoły testujące sprawdzają solidność, obsługę błędów, niezawodność i stabilność produktu.
To badanie jest również określane jako „badanie wytrzymałościowe” lub „badanie w zanurzeniu”. Nazywa się je również „testem na ekstremalne obciążenia”.
W tego typu testach testerzy sprawdzą, jak portal internetowy reaguje, gdy wielu aktywnych użytkowników korzysta z serwisu jednocześnie. Testerzy muszą również sprawdzić odpowiedź systemu w takim środowisku.
W wielu przypadkach strony internetowe muszą działać nieprzerwanie przez tygodnie (nawet miesiące) bez możliwości ponownego uruchomienia serwera. Aktywni użytkownicy takich witryn (użytkownicy aktualnie korzystający z serwisu) mogą być niesamowici i każdy użytkownik będzie oczekiwał bezproblemowego działania.
Rolą testerów jest zapewnienie programistom zaufania i zapewnienie użytkownikom końcowym, że mogą używać systemu z wcięciem, bez awarii lub wycieków pamięci, nawet przy dużym ruchu. W tym celu aplikacja poddawana jest maksymalnemu obciążeniu (aż do punktu wstrzymania aplikacji) iw takich warunkach sprawdzane jest zachowanie systemu.
Testowanie to jest zwykle wykonywane przed wydaniem oprogramowania. Testerzy muszą upewnić się, że aplikacja jest w stanie obsłużyć przewidywane obciążenie witryny. Czasami system może ulec awarii z powodu dużego obciążenia lub może spowolnić lub nawet wykazywać nieoczekiwane zachowanie.
Stabilność oprogramowania w dużym stopniu zależy od płynnego działania systemu w wyżej wymienionych stresujących warunkach. Tak więc testy stabilności odgrywają bardzo ważną rolę.
Cele testowania stabilności
Cele są wymienione poniżej:
- Aby znaleźć trwałość systemu.
- Znajdź stabilność aplikacji, a tym samym zwiększ zaufanie programisty.
- Znajdź usterkę w systemie w stresującym środowisku.
- Ogólna ocena i skuteczność produktu.
- Aby upewnić się, że system może obsłużyć duży program.
- Aby przetestować czas odpowiedzi aplikacji.
- Aby sprawdzić łączność z bazą danych.
Fakty dotyczące testowania stabilności
Poniżej wymieniono kilka przydatnych faktów:
- Testowanie stabilności wymaga odpowiedniego środowiska testowego.
- Aby uzyskać lepsze wyniki, testy stabilności wymagają dobrze zaplanowanego i zorganizowanego podejścia.
- To czasochłonny proces. Czas potrzebny na proces testowania może się różnić w zależności od wymagań klienta, rodzaju produktu i zasad firmy.
- W tej formie testowania ważna jest izolacja systemu. Podczas testowania stabilności aplikacji istnieje ryzyko trwałej utraty lub uszkodzenia danych.
- Testy wytrzymałościowe mogą powodować awarie komponentów aplikacji, więc użytkownicy końcowi mogą obserwować nieobsługiwane wyjątki.
Różnica między stabilnością a niezawodnością w systemie oprogramowania
Istnieje zasadnicza różnica między niezawodnością a stabilnością aplikacji. Można to wyjaśnić na przykładzie.
Przykład:
Weźmy pod uwagę, że użytkownik zainstalował nową aplikację na swoim telefonie komórkowym i uruchomił ją. Jeśli zainstalowana aplikacja ulega awarii po każdych 3 minutach użytkowania, z pewnością będzie to denerwować użytkownika. Jeśli jednak użytkownik może przywrócić dane bez żadnych strat po ponownym uruchomieniu aplikacji, aplikacja nie straci swojej niezawodności. Taką aplikację można uznać za wiarygodną, ale nie można jej uznać za stabilną.
faza analizy cyklu życia oprogramowania
Z drugiej strony weź scenariusz, w którym dane aplikacji nie są poprawnie zapisywane. Tutaj aplikacja działa dobrze i nie ulega awarii (jak co 3 minuty). Takie zastosowanie można uznać za wiarygodne lub nie, ale można je uznać za „stabilne”.
Niezawodność i stabilność to dwie strony tego samego medalu. Więc pamiętaj tylko, że zarówno niezawodność, jak i stabilność są ważne dla produktu z biznesowego punktu widzenia.
Przykłady testów stabilności:
Powszechnym podejściem jest to, że gdy użytkownik kupuje nowy telefon komórkowy, świadomie lub nieświadomie przeprowadza test stabilności. Użytkownik zapisze wiele obrazów, zdjęć, filmów, dokumentów itp. W pamięci urządzenia i sprawdzi, czy zbyt wiele przechowywanych danych wpłynęło na działanie urządzenia, czy nie. To jest szczególny przykład testów stabilności.
Ze względu na ogromną ilość przechowywanych danych nasze urządzenie może czasami się zawieszać, a następnie użytkownik musi usunąć niektóre dane lub wyczyścić pliki tymczasowe, aby urządzenie odzyskało wydajność. Po tych testach użytkownik będzie miał jasny obraz pojemności systemu.
Innym przykładem działającym w czasie rzeczywistym są portale zakupowe online. W okresie „wyprzedaży / festiwalu” wiele osób kupuje towary na tego typu portalach internetowych. Wydajność strony internetowej musi spełniać oczekiwania użytkowników.
Dlatego testerzy muszą przetestować witrynę, pamiętając o oczekiwanym „pośpiechu”, który może mieć miejsce w tych witrynach w tych dniach.
Testowanie stabilności połączenia internetowego
Tutaj przypadkiem testowym będzie sprawdzenie, jak stabilne jest nasze połączenie internetowe. Podczas nawiązywania połączenia przez Internet i wysyłania żądań do stron internetowych, z powodu utraty pakietów, użytkownicy muszą cierpieć z powodu niespójnych opóźnień w przeglądaniu stron internetowych.
Czasami utrata pakietów ma miejsce, gdy nie dociera do celu. Jest to spowodowane utratą pakietów, że wielu z nas mogło napotkać podobne problemy podczas korzystania z rozmów wideo Skype, grania w gry przez Internet lub przypadkowego rozłączania się z Internetem.
Wymagania wstępne do testowania łączności internetowej:
- Aby przetestować stabilność internetu, musimy mieć przeglądarkę internetową, w której firewall jest wyłączony.
- Wybierz adres internetowy ( Na przykład, https://www.google.com/ ), co jest mało prawdopodobne.
- Użyj arkusza kalkulacyjnego Google lub programu Microsoft Excel, aby zapisać wynik, ponieważ jest on łatwy do zrozumienia i czytelny dla użytkowników.
- Dokładnie sprawdź łączność internetową, urządzenia i ponownie sprawdź połączenia. Następnie wykonamy poniższe testy.
Metody używane do testowania łączności internetowej:
Najlepszym sposobem na przetestowanie łączności jest wizyta Test prędkości . (przed dalszą lekturą zapraszamy na stronę). W SpeedTest.net mamy możliwość wyboru serwerów. Wybierz i uruchom serwer, który jest blisko Ciebie.
Następnie witryna wykona obliczenia w oparciu o predefiniowane algorytmy i natychmiast wyświetli raport, który określa jakość naszego połączenia internetowego. Raport zawiera procent utraconych pakietów. Powinno wynosić „0%”.
Utrata pakietów „0%” decyduje o wysokiej stabilności połączenia. Każda liczba większa niż „0” wskazuje, że połączenie jest niestabilne.
Drugim sposobem jest użycie znaku zachęty „cmd” i wpisanie polecenia „ping” (patrz poniższy rysunek). Tutaj, używając wiersza poleceń, możemy również przetestować stabilność i opóźnienie Internetu w czasie rzeczywistym.
Na rysunku zaznacz sekcję „Statystyki pingów”.
Tutaj,
Liczba wysłanych pakietów = 4
Liczba odebranych pakietów = 4
Liczba utraconych pakietów = 0
Wynik pokazuje, że połączenie jest bardzo stabilne.
Zastosowany proces:
Krok 1: Testerzy wybiorą dowolną z dwóch metod opisanych powyżej.
Krok 2: Testerzy uruchomią proces i zapiszą potrzebne informacje uzyskane w odpowiedzi na połączenie internetowe w arkuszu kalkulacyjnym.
Krok 3: Będą powtarzać ten proces 3 lub cztery razy w tygodniu.
(Ponieważ testy stabilności są wykonywane przez pewien okres czasu, testerzy będą musieli zaplanować proces co najmniej dwa razy w tygodniu).
Krok 4: Wyniki są zapisywane w arkuszach kalkulacyjnych.
Testerzy muszą zanotować datę uruchomienia procesu. Porównaj wyniki uzyskane w każdym dniu, aby mieć pojęcie o stabilności naszej obecnej sieci.
Uwaga: Punkt przerwania jest stanem systemu, w którym system się zawali, gdy zostanie do niego przyłożone dalsze obciążenie. Określa pojemność systemu.
Dokument specyfikacji to dokument przekazany testerom przez lidera zespołu i będzie zawierał szczegółowe informacje o przewidywanym obciążeniu systemu. W testach stabilności testerzy sprawdzą punkt przerwania systemu na podstawie wytycznych dostarczonych im w dokumencie specyfikacji.
Zespół testujący sprawdzi system, testując aplikację z obciążeniem powyżej / poniżej punktu przerwania określonego w dokumencie specyfikacji. Różni się to od przypadku testowania obciążenia.
najlepsze firmy zajmujące się grami wideo do pracy w 2018 roku
W testach stabilności do testowania użyjemy tylko oczekiwanego obciążenia, ale podczas testowania obciążenia aplikacja jest obciążana nieoczekiwanie, a testerzy sprawdzają pojemność aplikacji.
Cykl życia testowania oprogramowania w oparciu o testy stabilności
Różne fazy Cykl życia testowania oprogramowania są wymienione poniżej:
- Analiza wymagań
- Plan testów
- Tworzenie przypadków testowych
- Konfiguracja środowiska testowego
- Wykonanie przypadku testowego
- Zamknięcie testu
Rozumiemy szczegółowo wszystkie powyższe fazy.
# 1) Analiza wymagań
Na tym etapie zespół testujący zadecyduje o różnych typach testów, które mają zostać przeprowadzone w aplikacji. Zależy to wyłącznie od wymagań klienta i rodzaju aplikacji. Na przykład, testerzy testują aplikację bankową, wtedy najważniejszym testem, w tym przypadku, są testy bezpieczeństwa. Jeśli testerzy testują aplikację działającą w branży nieruchomości, pierwszeństwo będą miały testy funkcjonalne.
2) Planowanie testów
Na tym etapie omawiane są zakresy testów. Testerzy omówią potrzebę automatyzacji. W przypadku testów stabilności procesy testowe są żmudne i muszą być powtarzane wiele razy w określonym czasie, automatyzacja będzie dobrym wyborem. „LoadStrom” to dobre narzędzie do przeprowadzania testów stabilności z wykorzystaniem automatyzacji.
W tej fazie omówimy z klientem budżet i limit czasu na testy. Ponieważ testowanie jest czasochłonne, budżet i limit czasu powinny być zgodne z planem testów.
# 3) Tworzenie przypadków testowych
W tej fazie tworzony jest przypadek testowy do testowania aplikacji.
# 4) Środowisko testowe
Środowisko testowe jest kluczowym czynnikiem przy testowaniu stabilności. Potrzebujemy odpowiedniego środowiska testowego, które jest repliką naszego środowiska produkcyjnego. Oryginalne środowisko powinno być nieużywane, ponieważ podczas testów witryna może czasami ulec awarii lub nawet utracie danych.
# 5) Wykonanie testu
W tej fazie wykonywane są przypadki testowe, a wyniki testów są weryfikowane. To jest czasochłonna faza. Ogólne problemy, z którymi borykają się testerzy w tej fazie, to wyciek pamięci, problemy z łącznością danych, długi czas odpowiedzi itp.
# 6) Zamknięcie testu
Na tym etapie wszyscy członkowie zespołu spotkają się i omówią kryteria wyjścia zastosowane w projekcie. Kryteria zakończenia zależą od takich czynników, jak liczba znalezionych defektów i czas poświęcony na testowanie.
Narzędzia używane w testowaniu stabilności
Stosowane są następujące narzędzia:
- LoadRunner
- OpenSTA
- LoadUI
- POBIERZ WEB
- LoadComplete
- Wygląd
- LoadUI
- Rational Performance Tester
Jak używać Apache JMeter do testów wytrzymałościowych?
Apache JMeter jest dobrym narzędziem do testów wytrzymałościowych. Przed przystąpieniem do testowania testerzy muszą mieć dobrą wiedzę na temat celów biznesowych. Następnie testerzy utworzą skrypty testowe. Następnie skonfigurujemy ustawienia grup wątków w JMeter.
pytania i odpowiedzi do wywiadu soapui pdf
Wykonując testy wytrzymałościowe za pomocą JMeter, musimy określić następujące czynniki:
- Liczba wątków: Wskazuje na oczekiwaną liczbę użytkowników w serwisie.
- Okres rozruchu: Wskazuje czas potrzebny na ukończenie każdego wątku. Jeśli mamy 5 wątków, okres rozruchu wynosi 50 sekund.
- Liczba pętli: Wskazuje, ile razy proces jest powtarzany. W przypadku testów wytrzymałościowych jest ustawiony na zawsze.
- Planista: W tym teście użyjemy funkcji harmonogramu. Musimy określić konfigurację harmonogramu zgodnie z wymaganiami.
Wniosek
Wiele aplikacji jest nieprawidłowo zaprojektowanych i po użyciu nie zwalnia pamięci urządzenia. To stopniowo doprowadzi do utraty pamięci. Możemy rozwiązać ten problem za pomocą testów stabilności. Dlatego testowanie stabilności jest bardzo ważne. To jest test niefunkcjonalny. Dotyczy tylko charakterystyki aplikacji. W tym przypadku testowanie nie dotyczy zachowania systemu.
Mam nadzieję, że zrozumiałeś znaczenie i potrzebę testowania stabilności.
rekomendowane lektury
- Asystent testowania oprogramowania
- Kurs testowania oprogramowania: Do którego Instytutu Testowania Oprogramowania mam dołączyć?
- Testowanie oprogramowania Praca pisarz treści technicznych Freelancer
- Wybór testowania oprogramowania jako swojej kariery
- Porady dotyczące testowania oprogramowania dla początkujących testerów
- Opinie i recenzje dotyczące kursu testowania oprogramowania
- Jak utrzymać motywację u testerów oprogramowania?
- Czym jest testowanie małp w testowaniu oprogramowania?