Co to jest testowanie dynamiczne? Rodzaje, techniki i przykłady
Testowanie dynamiczne
Testowanie dynamiczne to metoda testowania oprogramowania używana do testowania dynamicznego zachowania kodu oprogramowania. Głównym celem testowania dynamicznego jest testowanie zachowania oprogramowania przy użyciu zmiennych dynamicznych lub zmiennych, które nie są stałe i znajdowanie słabych obszarów w środowisku wykonawczym oprogramowania. Aby przetestować zachowanie dynamiczne, należy wykonać kod.
Wszyscy wiemy, że testowanie to weryfikacja i walidacja, a aby testowanie było kompletne, potrzeba 2 V. Spośród 2 V, weryfikacja nazywana jest testowaniem statycznym, a drugie „V”, walidacja jest znana jako testowanie dynamiczne.
Przykład testu dynamicznego
Rozumiemy, jak przeprowadzić testowanie dynamiczne na przykładzie:
Załóżmy, że testujemy stronę logowania, na której mamy dwa pola z napisem „Nazwa użytkownika” i „Hasło”, a nazwa użytkownika jest ograniczona do znaków alfanumerycznych.
Gdy użytkownik wprowadzi nazwę użytkownika jako „Guru99”, system zaakceptuje to samo. Gdzie, gdy użytkownik wprowadzi jako Guru99@123, aplikacja wyświetli komunikat o błędzie. Wynik ten pokazuje, że kod działa dynamicznie na podstawie danych wejściowych użytkownika.
Testowanie dynamiczne polega na pracy z rzeczywistym systemem poprzez dostarczenie danych wejściowych i porównanie rzeczywistego zachowania aplikacji z oczekiwanym zachowaniem. Innymi słowy, praca z systemem z zamiarem znalezienia błędów.
Zatem na podstawie powyższych stwierdzeń możemy stwierdzić lub stwierdzić, że testowanie dynamiczne to proces sprawdzania poprawności aplikacji jako użytkownika końcowego w różnych środowiskach w celu zbudowania odpowiedniego oprogramowania.
Do czego służą testy dynamiczne?
Głównym celem testów dynamicznych jest zapewnienie, że oprogramowanie działa poprawnie w trakcie i po instalacji oprogramowania, zapewniając stabilną aplikację bez większych wad (to stwierdzenie ma miejsce, ponieważ żadne oprogramowanie nie jest wolne od błędów, testowanie może jedynie wykazać obecność defektów i nie brak)
Głównym celem testu dynamicznego jest zapewnienie spójności oprogramowania; omówmy to na przykładzie.
W aplikacji bankowej znajdują się różne ekrany, takie jak Sekcja Moje konta, Transfer środków, Bill Zapłać itp. Wszystkie te ekrany zawierają pole kwoty, które akceptuje niektóre znaki.
Załóżmy, że pole Moje konta wyświetla kwotę jako 25,000 i transfer środków jako $25,000 i Bill płatny ekran jako $25000 chociaż kwota jest taka sama, sposób jej wyświetlania nie jest taki sam, co sprawia, że oprogramowanie jest niespójne.
Spójność nie ogranicza się tylko do funkcjonalności, ale odnosi się również do różnych standardów, takich jak wydajność, użyteczność, kompatybilność itp., dlatego bardzo ważne staje się przeprowadzanie testów dynamicznych.
Rodzaje testów dynamicznych
Testowanie dynamiczne dzieli się na dwie kategorie
- Biały Box Testowanie
- Czarny Box Testowanie
Poniższe obrazowe przedstawienie daje nam pojęcie o rodzajach testów dynamicznych, poziomach testowania itp.
Omówmy pokrótce każdy rodzaj testowania i jego zamierzony cel
Biały Box Testowanie - Biały Box Testowanie to metoda testowania oprogramowania, w której tester zna wewnętrzną strukturę/projekt. Głównym celem Białej Box testowanie polega na sprawdzeniu, jak działa system na podstawie kodu. Wykonują to głównie Deweloperzy lub White Box Testerzy posiadający wiedzę z zakresu programowania.
Czarny Box Testowanie - Czarny Box Testowanie to metoda testowania, w której znajduje się wewnętrzna struktura/kod/projekt NIE znany testerowi. Głównym celem tego testowania jest sprawdzenie funkcjonalności testowanego systemu. Tego typu testy wymagają wykonania pełnego zestawu testów i są wykonywane głównie przez Testerów i nie jest wymagana żadna wiedza programistyczna.
Kurs Czarna skrzynka Testowanie ponownie dzieli się na dwa typy.
Są
- Testy funkcjonalne
- Testy niefunkcjonalne
Testy funkcjonalności:
Testy funkcjonalne przeprowadza się w celu sprawdzenia, czy wszystkie opracowane funkcje są zgodne ze specyfikacjami funkcjonalnymi i przeprowadza się je poprzez wykonanie przypadków testów funkcjonalnych napisanych przez zespół ds. kontroli jakości. W fazie testów funkcjonalnych system jest testowany poprzez dostarczenie danych wejściowych, weryfikację wyników i porównanie rzeczywistych wyników z oczekiwanymi wynikami.
Istnieją różne poziomy testowania funkcjonalnego, z których najważniejsze są
- Testów jednostkowych – Generalnie Unit to mały fragment kodu, który można przetestować, Testów jednostkowych odbywa się na indywidualnej jednostce oprogramowania i jest wykonywana przez programistów
- Testy integracyjne - Testy integracyjne to testowanie przeprowadzane po testach jednostkowych, polegające na połączeniu wszystkich poszczególnych jednostek, które można testować, i wykonywane przez programistów lub testerów
- Testowanie systemu - Testowanie systemu jest wykonywana w celu sprawdzenia, czy system działa zgodnie z wymaganiami i zazwyczaj jest wykonywana, gdy kompletny system jest gotowy, jest wykonywana przez testerów, gdy kompilacja lub kod są udostępniane zespołowi ds. kontroli jakości
- Testy akceptacyjne – Testy akceptacyjne przeprowadzane są w celu sprawdzenia, czy system spełnił wymagania biznesowe i jest gotowy do użycia lub wdrożenia i są zazwyczaj przeprowadzane przez użytkowników końcowych.
Testowanie niefunkcjonalne: Testowanie niefunkcjonalne to technika testowania, która nie koncentruje się na aspektach funkcjonalnych, a koncentruje się głównie na niefunkcjonalnych atrybutach systemu, takich jak wycieki pamięci, wydajność lub odporność systemu. Testowanie niefunkcjonalne przeprowadza się na wszystkich poziomach testów.
Istnieje wiele technik testowania niefunkcjonalnego, z których najważniejsze są
- Test wydajności - Test wydajności przeprowadza się w celu sprawdzenia, czy czas reakcji systemu jest normalny i zgodny z wymaganiami przy pożądanym obciążeniu sieci.
- Testowanie odzyskiwania – Testowanie odzyskiwania to metoda sprawdzania, jak dobrze system jest w stanie odzyskać siły po awariach i awariach sprzętu.
- Testowanie kompatybilności – Testy zgodności przeprowadza się w celu sprawdzenia, jak system zachowuje się w różnych środowiskach.
- Testy bezpieczeństwa - Testy bezpieczeństwa wykonywana jest w celu sprawdzenia odporności aplikacji, tj. zapewnienia, że dostęp do systemu mają tylko uprawnieni użytkownicy/role
- Test użyteczności - Test użyteczności to metoda weryfikacji użyteczności systemu przez użytkowników końcowych w celu sprawdzenia, jak dobrze użytkownicy czują się z systemem.
Techniki testowania dynamicznego
Techniki testowania dynamicznego in STLC składa się z różnych zadań, takich jak analiza wymagań dla testów, planowanie testów, projektowanie i wdrażanie przypadków testowych, konfiguracja środowiska testowego, wykonanie przypadku testowego, zgłaszanie błędów i wreszcie zamknięcie testu. Wszystkie zadania w technikach testowania dynamicznego zależą od zakończenia poprzedniego zadania w procesie testowania.
W STLC możemy powiedzieć, że rzeczywisty proces testowania dynamicznego rozpoczyna się od projektu przypadku testowego. Omówmy teraz szczegółowo każdą czynność.
Zanim przejdziemy do procesu, omówmy strategię, której należy przestrzegać podczas testowania dynamicznego.
Strategia testów powinna skupiać się głównie na dostępnych zasobach i ramach czasowych. W oparciu o te czynniki należy udokumentować cel testowania, zakres testowania, fazy lub cykle testowania, rodzaj środowiska, założenia lub wyzwania, z którymi można się zmierzyć, ryzyko itp.
Po zdefiniowaniu strategii i zaakceptowaniu jej przez kierownictwo rozpoczyna się właściwe projektowanie przypadków testowych procesu
Co to jest projektowanie i implementacja testów
W tej fazie identyfikujemy,
- Funkcje do przetestowania
- Wyprowadź warunki testowe
- Wyprowadź elementy ubezpieczenia
- Wyprowadź przypadki testowe
Konfiguracja środowiska testowego
Musimy zadbać o to, aby środowisko testowe było zawsze podobne do środowiska produkcyjnego. Na tym etapie musimy zainstalować maszynę testową i zarządzać nią.
Wykonanie testu
W tej fazie faktycznie wykonywane są przypadki testowe.
Przechwycono raport o błędzie
Na podstawie wykonania, jeśli oczekiwane i rzeczywiste wyniki nie są takie same, przypadek testowy musi zostać oznaczony jako zakończony niepowodzeniem i powinien zostać zarejestrowany błąd.
Zalety testów dynamicznych
- Testowanie dynamiczne może ujawnić wykryte defekty, które są uważane za zbyt trudne lub skomplikowane i których nie da się objąć analizą statyczną
- W testowaniu dynamicznym wykonujemy oprogramowanie od początku do końca, zapewniając oprogramowanie wolne od błędów, co z kolei podnosi jakość produktu i projektu.
- Testowanie dynamiczne staje się niezbędnym narzędziem do wykrywania wszelkich zagrożeń bezpieczeństwa
Wady testów dynamicznych
- Testowanie dynamiczne jest czasochłonne, ponieważ wykonuje aplikację/oprogramowanie lub kod, który wymaga ogromnej ilości zasobów
- Testowanie dynamiczne zwiększa koszty projektu/produktu, ponieważ nie rozpoczyna się na wczesnym etapie cyklu życia oprogramowania. W związku z tym wszelkie problemy rozwiązane na późniejszych etapach mogą skutkować wzrostem kosztów.
Podsumowanie
In Inżynieria oprogramowania, Weryfikacja i Walidacja to dwa środki stosowane w celu sprawdzenia, czy oprogramowanie spełnia specyfikacje wymagań. Testowanie statyczne obejmuje weryfikację, podczas gdy testowanie dynamiczne obejmuje walidację. Razem pomagają dostarczać opłacalne oprogramowanie wysokiej jakości.