Testowanie manualne vs testowanie automatyczne

sty 14, 2021

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

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.

Testowanie automatyczne

Testy manualne i automatyczne – różnice

Testowanie manualneTestowanie automatyczne
Testy wykonywane przez człowieka
Skrypty testowe uruchamiane są przez dedykowane narzędzia
Wykonywanie testów jest wolniejsze i bardziej czasochłonneSzybsza egzekucja testów
Inwestycja początkowa relatywnie niskaInwestycja początkowa relatywnie wysoka
Mniejsza niezawodność z uwagi na ludzkie wady, niedokładność, zmęczenieWiększa niezawodność, automaty są wolne od ludzkich ograniczeń
Reużywalność – praktycznie nie istniejeWysoka reużywalność skryptów testowych
Znajomość programowania – nie wymaganaZnajomość 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

Pozostałe:

Jak napisać Plan Testów?

Jeśli jesteś testerem oprogramowania, bądź pracujesz w działach zapewniania jakości oprogramowania, to być może zetknąłeś się już z dokumentem o opisowej nazwie „Plan Testów”. Tego typu dokumentację tworzy się zarówno w dużych, jak i małych firmach, formalnych, jak...

Jak mierzyć jakość oprogramowania?

Istnieją różne cele testowania oprogramowania. Jednym z głównych celów testowania jest mierzenie jakości oprogramowania. Czym zatem jest ta tajemnicza „jakość”? Jakość oprogramowania to zestaw istotnych cech, które wyróżniają dane oprogramowanie – negatywnie lub...

Środowisko testowe – słów kilka

W tym materiale postaram się Wam przybliżyć nieco temat środowisk, a w szczególności skupić się na środowiskach testowych. Na samym początku musimy sobie zadać podstawowe pytanie: „Czym w ogóle jest środowisko w kontekście pracy dowolnej aplikacji?” Środowisko – to...

Poziomy wykonywania testów

Wytwarzanie oprogramowania to zwykle długi, czasochłonny, skomplikowany proces. Aby przebiegał on poprawnie i dało się nim efektywnie zarządzać - proces developmentu dzielony jest na różne etapy, fazy. Każda faza charakteryzuje się swoimi unikalnymi czynnościami i...

Best Practices testowania aplikacji mobilnych

Testowanie aplikacji mobilnych jest niezbędne, aby upewnić się, że każda aplikacja spełnia postawione przed nią wymagania techniczne oraz biznesowe. Ważne jest, aby każdy tester aplikacji mobilnych stosował sprawdzone i przede wszystkim skuteczne metody testowania. Z...