what is thread testing software testing
W tym samouczku wyjaśniono, czym jest testowanie wątków, kiedy i jak je wykonywać, typy testów opartych na wątkach oraz wyzwania:
Testowanie wątków to technika testowania oprogramowania używana do testowania aplikacji opartych na serwerze klienckim.
Testowanie oparte na wątkach powinno być wykonywane na początkowych etapach testowania integracyjnego, tak aby kluczowe funkcje mogły być testowane / weryfikowane dla określonego zadania / programu lub wątku.
Czego się nauczysz:
- Dlaczego testowanie wątków
- Kiedy i jak przeprowadza się testowanie wątków
- Rodzaje testów opartych na wątkach
- Różnica między wątkiem a procesami
- Różnica między testowaniem opartym na wątkach a testowaniem opartym na użytkownikach
- Wniosek
Dlaczego testowanie wątków
Gdy komponenty są zintegrowane, konieczne jest sprawdzenie, czy system będzie działał zgodnie z oczekiwaniami, czy nie, a wszystkie transakcje będą się odbywać zgodnie z wymaganiami, czy nie. Tak więc testowanie oparte na wątkach przychodzi, aby przetestować to samo.
Testowanie to odbywa się poprzez stopniową integrację wątków na wszystkich poziomach, począwszy od podsystemu do całego systemu, czyli całego systemu. Wszystkie działania systemowe są wykonywane tylko z wątkami.
Definicja wątku pomaga udostępniać testerom funkcjonalne tło i szczegóły wykonania wątku między programistami i deweloperami.
O wątkach
Wątek to przepływ kontroli w procesie. Jest to najmniejsze zadanie systemu, które można uruchomić.
złączenie wewnętrzne lewe złączenie prawe złączenie
Przykład
Przeglądarka internetowa może mieć jeden lub więcej uruchomionych wątków, a mianowicie. jeden wątek do wyświetlania obrazów i tekstu, a drugi do pobierania danych. W niektórych przypadkach do obsługi wszystkich procesów wymagana jest jedna aplikacja.
Tworzenie wielu wątków jest najlepszym rozwiązaniem w tym przypadku, w przeciwnym razie klient wysyła do serwera wiele żądań, a ich potwierdzenie jedno po drugim zajmie trochę czasu. Wielowątkowość pomoże w jednoczesnym odpowiadaniu na żądania.
Kiedy i jak przeprowadza się testowanie wątków
Należy to zrobić na początkowym etapie testowania integracji systemu.
Testowanie integracji odbywa się poprzez integrację różnych modułów w zaplanowany sposób. Plan integracji dotyczy tego samego, który określa kolejność, w jakiej moduły będą integrowane, aby stworzyć kompletny system.
Poniżej wymienione są techniki wykonywania testów integracyjnych:
- Podejście Big-Bang
- Podejście odgórne
- Podejście oddolne
- Podejście mieszane
Przyjrzyjmy się szczegółowo każdej technice.
# 1) Podejście Big-Bang
Podejście Big Bang jest stosowane tylko w małych systemach, ponieważ wszystkie moduły są integrowane i testowane za jednym razem.
Każdy problem znaleziony podczas tego podejścia jest trudny do zlokalizowania, ponieważ może pochodzić z dowolnego zintegrowanego modułu. Dlatego znalezione problemy z debugowaniem są bardzo kosztowne w rozwiązaniu tego podejścia.
# 2) Podejście odgórne
Podejście odgórne jest wykonywane przy użyciu kodów pośredniczących, tj. Po przetestowaniu modułu najwyższego poziomu następuje integracja i testowanie bezpośrednich podprogramów.
Stuby to programy, które symulują wpływ procedur niższego poziomu i są wywoływane przez procedury testowane. Testowanie wątków wykorzystuje podejście odgórne.
# 3) Podejście oddolne
W podejściu oddolnym wszystkie podsystemy są testowane indywidualnie, a następnie testowany jest cały system. Powodem testowania wszystkich podsystemów osobno jest przetestowanie interfejsu pomiędzy wszystkimi modułami wchodzącymi w skład podsystemu.
Ta technika wymaga sterowników testowych, tj. Programu, który wywołuje inne moduły i zapewnia te same dane wyjściowe, co rzeczywisty produkt.
# 4) Testowanie integracji mieszanej
Ta technika jest połączeniem podejścia odgórnego i oddolnego. Dlatego nazywa się to testowaniem integracji mieszanej.
Kluczowe punkty dotyczące przeprowadzania testów opartych na wątkach
- Podczas testowania wątków, wątki lub niewielka funkcjonalność są integrowane i testowane. Wykonywane testy to testy przyrostowe na poziomie podsystemu, a następnie jako kompletny system.
- Już na początkowym etapie testerzy integracji mają dobry pomysł i wiedzę, co dalej testować.
- Testerzy integracji muszą stosować i wykonywać scenariusze zarówno pozytywne, jak i negatywne, tylko w granicach wątku. Muszą zdecydować o podejściu do testowania wątków, które zostanie zastosowane w przypadku wyjątkowych przypadków, a także przypadków granicznych.
- Definicja wątku dostarczona testerowi przez programistę pomaga odpowiednio przetestować wątek przez testerów integratorów. Na wszelkie dodatkowe informacje wymagane przez testera można odpowiedzieć w procesie przeglądu wątku.
- Procesy wątków działają na potrzeby procesów integracji, a nie na zakończenie procesu tworzenia.
- Aby przetestować funkcjonalność wielowątkową, pozwól, aby wiele instancji testowanej aplikacji lub programu było aktywnych w tym samym czasie.
- Uruchom program wielowątkowy na innym sprzęcie.
- Testowanie wątków to forma testowania sesji, w przypadku której sesje są tworzone z wątków. Nie jest konieczne, aby utworzony wątek był sesją.
Rodzaje testów opartych na wątkach
Przeprowadzane są dwa rodzaje testów opartych na wątkach:
- Testowanie pojedynczego wątku
- Testowanie wielowątkowe
# 1) Testowanie pojedynczego wątku
Testowanie pojedynczego wątku testuje jedną transakcję naraz. Czas oczekiwania, aż klient otrzyma odpowiedź na swoje żądanie, może być nieco dłuższy, ponieważ będzie mógł obsłużyć lub odpowiedzieć jednemu klientowi na raz.
Testowanie to pomaga testerowi zrozumieć i przetestować logikę programu lub napisanego kodu.
# 2) Testowanie wielowątkowe
Testowanie wielowątkowe testuje kilka aktywnych transakcji jednocześnie. W takim przypadku na żądanie klienta tworzone są oddzielne wątki. Za każdym razem, gdy jest wysyłane żądanie, tworzony jest wątek do usługi lub odpowiada na żądanie.
Transakcja, która działała poprawnie w testowaniu jednowątkowym, może zakończyć się niepowodzeniem podczas testowania w wielu wątkach, a także może kolidować z innymi wątkami i funkcjami oraz zatrzymać ich działanie zgodnie z oczekiwaniami.
jak odtworzyć plik flash Shockwave
Czy podejście wielowątkowe jest lepsze niż podejście z jednym wątkiem?
Aplikacje wielowątkowe są lepsze niż aplikacje jednowątkowe, ponieważ poprawiają wydajność aplikacji. Wielowątkowość pozwala wielu zasobom pracować nad problemem / żądaniem w tym samym czasie.
Wyzwania związane z testami opartymi na wątkach
Podczas testowania opartego na wątkach tester napotyka kilka wyzwań, które mają wpływ na wydajność, czas i koszt testowania.
- Pisanie przypadków testów jednostkowych dla kodu wielowątkowego jest trudne.
- Gdy testy wielowątkowe są wykonywane na innym sprzęcie, różnią się one w zależności od rozmiaru, pojemności, pamięci, problemów itp.
- Scenariusze testowania dla pojedynczego wątku i wielu wątków są różne.
- W testowaniu wielowątkowym należy zaprogramować odtwarzalne testy dla testów jednostkowych.
Zalety / wady wielowątkowości
Wielowątkowość ma wiele zalet i wad. Jako tester, wiedząc to samo, może odpowiednio przetestować i przerwać proces testowania.
Zalety
- Wielowątkowość zwiększa szybkość reakcji dla użytkownika. Aplikacja może pozwolić na uruchomienie programu, nawet jeśli część aplikacji zostanie zablokowana.
- Udostępnianie zasobów to kolejna zaleta, ponieważ wątki współdzielą zasoby procesu, z którym są powiązane lub do którego należą.
- Tworzenie wątków jest ekonomiczne, ponieważ współdzieli zasoby, do których należą.
Niedogodności
- Złożony proces testowania
- Wyniki są bardzo nieprzewidywalne.
- Pisanie programu staje się trudniejsze.
- Wystąpienie impasu.
Co to jest impas
Po zakończeniu wielowątkowości wątek przechodzi w stan oczekiwania, jeśli zasób nie jest dostępny.
Stan oczekiwania może się nie zmienić dla wątku, ponieważ żądany zasób jest utrzymywany przez inne oczekujące wątki. Kiedy pojawia się taka sytuacja, nazywa się to impasem.
Różnica między wątkiem a procesami
Rozumiemy różnice między wątkiem a procesami:
S.Nr | Wątek | Proces |
---|---|---|
7 | Wątków nie można dalej dzielić. | Procesy mogą mieć wiele wątków. |
1 | Wątek to lekki proces. | Jest to proces ciężki. |
dwa | Jeśli wątek serwera zostanie zablokowany, można uruchomić drugi wątek tego samego zadania i zakończyć proces. | Jeśli proces serwera zostanie zablokowany, inne procesy nie będą działać, dopóki zablokowany proces serwera nie zostanie odblokowany. |
3 | Wątki nie izolują się, dzielą pamięć. | Proces jest izolowany. |
4 | Tworzenie wątków, przełączanie kontekstów, kończenie zajmuje mniej czasu w wątku. | Tworzenie wątków, przełączanie kontekstów, kończenie zajmuje więcej czasu w procesach. |
5 | Wątek odnosi się do konkretnego zadania procesu. | Proces oznacza wykonanie dowolnego programu. |
6 | Wykorzystywane zasoby są bardzo nieliczne w wątku. | Zasoby wykorzystywane w procesach są większe. |
Różnica między testowaniem opartym na wątkach a testowaniem opartym na użytkownikach
S.No. | Testowanie oparte na wątkach | Testowanie oparte na użytkowaniu |
---|---|---|
1 | Wątki są integrowane i testowane indywidualnie. | Testowanie rozpoczyna się od klas, które nie są od siebie zależne, czyli są niezależne. |
dwa | Testy regresji są wykonywane, aby upewnić się, że nic nie zostanie naruszone. | Po zakończeniu testowania klas niezależnych testowane są klasy zależne. Zależne to te, które zależą od klas niezależnych. Ta seria trwa do czasu zbudowania całego systemu. |
3 | Testowanie oparte na wątkach integruje klasy, które są niezbędne do potwierdzania danych wejściowych lub zdarzeń systemu. | Testowanie na podstawie użycia integruje klasy, które są niezbędne do odpowiedzi lub potwierdzenia przypadku użycia. |
Często Zadawane Pytania
P # 1) Co to jest testowanie wątków?
Odpowiedź: Testowanie oparte na wątkach to metodologia wykonywana we wczesnej fazie testów integracyjnych. Wątki lub programy są integrowane i testowane przyrostowo w podsystemie, a następnie jako cały system.
P # 2) Które testy wykonuje się najpierw?
Odpowiedź : Zazwyczaj najpierw wykonuje się testy oddolne, a następnie odgórne.
P # 3) Co to jest testowanie odgórne?
Odpowiedź: Top-down to technika testowania integracji, w której testowanie odbywa się za pomocą stubów, tj. Gdy komponenty niższego poziomu nie są jeszcze gotowe do testowania integracji, tworzone są stuby (moduły tymczasowe), aby uzyskać te same dane wyjściowe, co w przypadku rzeczywistych modułów.
Wniosek
Testowanie integracji oparte na wątkach odgrywa ważną rolę w testowaniu głównych funkcji lub określonego zadania lub wątku. Ta metodologia jest najlepsza w przypadku architektury opartej na serwerze klienta.
Przeprowadzając testowanie wątków, tester musi stawić czoła wielu wyzwaniom, jednak ma również wiele zalet, dzięki czemu jest łatwy i niezawodny do wykonania. Pozwoliło testerom przetestować wszystkie transakcje i sprawdzić, czy działa zgodnie z oczekiwaniami i wymaganiami.
Niemożliwe jest przetestowanie wszystkich transakcji / zdarzeń w celu zakończenia testowania wątku, przez co jest on podzielony na typy jedno i wielowątkowe.
rekomendowane lektury
- Wybór testowania oprogramowania jako swojej kariery
- Kilka interesujących pytań do rozmowy kwalifikacyjnej dotyczącej testowania oprogramowania
- Czy testowanie oprogramowania to zadanie emocjonalne?
- Synchronizacja Java: Co to jest synchronizacja wątków w języku Java
- Wątki Java z metodami i cyklem życia
- Wielowątkowość w C ++ z przykładami
- Wielowątkowość w Javie - samouczek z przykładami
- Thread.Sleep () - Metoda Thread Sleep () w języku Java z przykładami