Aby jasno i konkretnie opisać korelacje oraz różnice miedzy testami manualnymi a testami automatycznymi, musimy przypomnieć sobie czym konkretnie są te dwie czynności.
Testowanie manualne (inaczej ręczne) jest formą testowania oprogramowania, w której testy są wykonywane ręcznie przez dedykowaną osobę odpowiedzialną za zapewnianie i utrzymywanie jakości oprogramowania (tester manualny). Testowanie manualne wykonywane w celu wykrycia błędów w testowanym oprogramowaniu. W tym procesie testerzy manualni wykonują przypadki testowe i generują raporty z testów. Do przeprowadzenia testów manualnych nie jest wymagane dedykowane oprogramowanie.
Szkolenie testowanie automatyczne
Testowanie automatyczne – jest to jedna z technik testowania oprogramowania, polegająca na weryfikacji i porównywaniu rzeczywistych wyników z oczekiwanymi.
W celu wytworzenia testów automatycznych wykorzystujemy specjalne stworzone do tego celu narzędzia lub też piszemy skrypty testowe w wybranym języku programowania.
Testy manualne i automatyczne – różnice
Testowanie manualne | Testowanie automatyczne |
Testy wykonywane przez człowieka | Skrypty testowe uruchamiane są przez dedykowane narzędzia |
Wykonywanie testów jest wolniejsze i bardziej czasochłonne | Szybsza egzekucja testów |
Inwestycja początkowa relatywnie niska | Inwestycja początkowa relatywnie wysoka |
Mniejsza niezawodność z uwagi na ludzkie wady, niedokładność, zmęczenie | Większa niezawodność, automaty są wolne od ludzkich ograniczeń |
Reużywalność – praktycznie nie istnieje | Wysoka reużywalność skryptów testowych |
Znajomość programowania – nie wymagana | Znajomość programowania – wymagana |
Testowanie automatyczne vs testowanie manualne – objaśnienie
- Wykonywanie testów, czyli ich egzekucja w przypadku testowania manualnego wykonywana jest ręcznie przez człowieka, zwykle dedykowanego specjalistę ds. testów – testera oprogramowania (testera manualnego).
W przypadku testów automatycznych uruchamianie skryptów testowych odbywa się poprzez dedykowane narzędzia oraz różne mechanizmy (triggerowanie, harmonogramy). Możemy tutaj ograniczyć rolę człowieka bądź nawet całkiem ją pominąć. Zatem wykorzystując automatyzację testów – możemy pozwolić sobie na ograniczenie zasobów ludzkich w projekcie lub skupić wysiłki testerów na innych czynnościach.
- Testowanie manualne jest zwykle znacznie wolniejsze i czasochłonne od działania testów automatycznych. Dzieje się tak dlatego, że interakcja automatów / robotów z aplikacjami odbywa się znacznie szybciej, niż gdy robi to człowiek. Automaty nie tracą czasu na myślenie, czy zastanawianie się. Testowanie automatyczne pozwala na wykonanie pracy znacznie bardziej maszynowo niż człowiek – skomplikowane operacje, obliczenia są nieporównywalnie szybciej wykonywane, co przekłada się na oszczędności budżetowe w postaci czasu, a w konsekwencji również pieniędzy.
- Wysoka inwestycja początkowa w automatyzację testów to jeden z minusów całego procesu, jakim jest testowanie automatyczne. Na początkowo wysoką cenę automatyzacji i robotyzacji składa się wiele czynników, np.: potrzeba zatrudnienia wysoko wykwalifikowanej technicznie kadry testerów automatyzujących. Na rynku panuje wysoki dysonans między zarobkami testerów manualnych i automatycznych. Ci drudzy zarabiają zwykle na poziomie programistów, developerów, czego na pewno nie można powiedzieć o zarobkach testerów manualnych. Do tego dochodzą niezbędne nakłady finansowe na narzędzia i potrzebne licencje produktowe. Testerzy manualni, nie korzystają z tego typu dedykowanych narzędzi. Warto jeszcze wspomnieć, iż do profesjonalnej automatyzacji testów niezbędna jest jeszcze rozbudowana infrastruktura sprzętowa (serwery, maszyny, środowiska) – w testach manualnych nie potrzebujemy, aż tak dużej infrastruktury sprzętowej.
- Testowanie manualne z definicji jest mniej niezawodne niż w przypadku automatyzacji testów. Dzieje się tak dlatego, iż nawet najlepszy tester jest tylko człowiekiem. Żaden człowiek niestety nie jest wolny od wad. Ryzyko błędów ludzkich rośnie wraz z ilością pracy, przemęczeniem i wypaleniem zawodowym. Człowiek bywa niedokładny, może mieć gorszy dzień, czy po prostu zdarzy mu się coś przeoczyć. Zaprogramowane testy automatyczne są wolne od tego typu ułomności. Nigdy się nie nudzą, mogą wykonywać tysiące iteracji tych samych testów i zawsze wykonają je dokładnie, tak jak zostały do tego zaprogramowane. Nie mają gorszych dni ani nie są obciążone wypaleniem zawodowym. Dlatego niezawodność to ogromna wartość, którą zapewnia poprawnie stworzona automatyzacja i robotyzacja.
Szkolenie testowanie – reużywalność
- Reużywalność to cecha testów, która w przypadku testowania manualnego praktycznie nie istnieje. Tester manualny wykonuje swoją pracę ręcznie, bez wykorzystywania specjalistycznego oprogramowania. Możemy wiec w dużym uproszczeniu przyjąć, że testowanie manualne to przeklikiwanie aplikacji przez dedykowane do tego zadania osoby. W takiej charakterystyce pracy wszystkie testy: nawet testy regresji, czy retesty trzeba za każdym razem przeklikać na nowo. Zdarza się, że w dużych projektach, jeden przypadek testowy trzeba przeklikiwać setki razy w różnych odstępach czasu i na różnym etapie projektu. Automatyzacja testów natomiast może nam dostarczyć dużej reużywalności raz napisanych testów. Oznacza to tyle, że raz napisany test może zostać wykorzystany, uruchomiony wielokrotnie na różnych etapach projektu. W ten sposób oszczędzamy czas na ponowne przetestowania danego przypadku testowego. Oczywiście, zwykle tworzenie testu automatycznego trwa znacznie dłużej niż przeklikanie go ręcznie, ale jeśli później musimy wykonać ten test np. 100 razy – to zainwestowany czas w pisanie przypadku testowego zwróci się dużą nawiązką oszczędności budżetowych w postaci czasu i pieniędzy.
- Tester manualny nie potrzebuje do wykonywania swojej pracy znajomości języka programowania. Testy manualne wykonywane są ręcznie, poprzez przeklikiwanie danej aplikacji. Tester automatyzujący programuje testy, co oznacza, że niezbędna do tej pracy jest umiejętność posługiwania się danym językiem programowania. Pomijam tutaj sprawę nagrywarek testów, które mogą obsługiwać testerzy manualni bez znajomości programowania. Aktualne trendy na rynku testowania oprogramowania są jednak takie, że nawet od testerów manualnych – pracodawcy zaczynają wymagać, chociaż podstawowej wiedzy programistycznej. Jest to oczywiście zrozumiałe, gdyż osoba posiadająca umiejętność kodowania, często znacznie lepiej rozumie budowę i architekturę aplikacji oraz ma większą świadomość błędów i problemów, które zostają wykrywane podczas testowania. Taka osoba również zdecydowanie lepiej komunikuje się z developerami, którzy rozwijają testowaną aplikację. Tester manualny ze znajomością programowania może na własny użytek zautomatyzować sobie pewne nudne zadania, co z pewnością wpływa pozytywnie na efektywność pracy.
Szkolenie testowanie – zapoznaj się z informacjami: Szkolenia stacjonarne
Autor: Tomasz Stelmach
0 komentarzy