Blog
Wróć do wszystkich wpisów
25 listopada 2022 (19:08)

Testy manualne – chaos czy porządek?

Testy manualne – chaos czy porządek?

Jak mówi teoria testowania – testowanie jest nieskończone. Proces testowania oprogramowania powinien zacząć się od przygotowania test planu, który zawiera informacje: jak dokładnie powinny działać funkcjonalności, jakie ich części testowanie powinno pokryć oraz w jaki sposób je testować. Testowanie w IT dzielimy na manualne i automatyczne. Każde z nich ma swoje wady i zalety. W artykule skupimy się na testach manualnych – zastanowimy się, czy są one rzetelniejsze od automatycznych, korzystniejsze, czy może wprowadzają jedynie chaos.

Spis treści:

Czym są testy manualne i automatyczne?

Testowanie jest bardzo ważnym elementem wdrażania nowego oprogramowania. W dobrych praktykach nie powinno się pomijać tego kroku. Dzielimy je na dwa modele – manualne oraz automatyczne. Jak wcześniej wspomnieliśmy, proces testowania oprogramowania należy zacząć od przygotowania test planu. Powinien on zawierać informacje o tym, jak dokładnie powinny działać funkcjonalności, jakie części funkcjonalności testowanie powinno pokryć oraz w jaki sposób testować – jaką metodą (manualnie lub automatycznie) oraz wylistować krok po kroku od jakich funkcjonalności oprogramowania zacząć i na jakich zakończyć. Test plan powinno się przygotować niezależnie od tego, jaki jest to rodzaj testów. Istnieje wiele standardów, które dobry test plan powinien spełnić. Standardy te zawarte są w normach IEEE (to skrót nazwy Instytutu Inżynierów Elektryków i Elektroników, którego głównym zadaniem jest ustalanie standardów m.in. dla urządzeń i formatów komputerowych). Reasumując, poprzez testowanie sprawdzamy czy np. dany button na stronie przenosi nas w docelowe miejsce, czy też nie lub czy przesłany formularz kontaktowy trafia tam, gdzie zaplanowaliśmy.

Wady i zalety testowania manualnego?

Testowanie manualne to nic innego jak “ręczne” testowanie systemu przez człowieka. Jest to klasyczna metoda wykrywania błędów i awarii oprogramowania. Głównym celem jest po prostu sprawdzenie, czy wszystko w danym produkcie działa poprawnie, bezproblemowo oraz zgodnie z wcześniej ustalonymi założeniami.

Aby móc odpowiedzieć na pytanie zadane w tytule, warto znać plusy i minusy tej metody. Postaramy się je przedstawić i szerzej opisać.

Testy manualne są relatywnie szybsze (nie trzeba pisać kodu, który wykona automatyczne testy), testerzy nie muszą znać się na programowaniu i jest to mierzalne. Testy manualne cechują się niższymi kosztami startowymi, gdyż nie trzeba m.in. pisać kodu, który jest niezbędny przy automatycznych testach, a w dodatku wymaga on zakupu odpowiedniego oprogramowania. Za ogromną zaletę testów manualnych uznaje się również czynnik ludzki, ponieważ doświadczony tester manualny posiada umiejętność rozwiązywania niestandardowych, złożonych zagadnień, z którymi automat z pewnością miałby problem.

Z kolei do wad możemy zaliczyć fakt, że tester musi każdorazowo sprawdzać tę samą funkcjonalność, podczas gdy testy automatyczne mogą być uruchamiane np. przy każdym deployu. W przypadku testowania manualnego bardzo łatwo jest również o przeoczenie regresji. Produkt jest testowany przez człowieka, który nie jest nieomylny. Przy sprawdzaniu poprawności przez kilka godzin, łatwo o pomyłkę i przypadkowe pominięcie defektu. Wówczas po uruchomieniu produktu istnieje ryzyko, że bug zauważy klient końcowy – co może mieć negatywny wpływ na postrzeganie danej firmy. Z tej perspektywy – przy założeniu, że system jest bardzo skomplikowany i ściśle powiązany (tight coupling) – testy automatyczne wydają się być lepszym wyborem. Są one również lepszą inwestycją na przyszłość – nie angażują w taki stopniu jak testy manualne wkładu człowieka, można je wykorzystać w przyszłości wielokrotnie, a co więcej – nie generują dodatkowych nakładów kosztowych.

Zastosowanie testów automatycznych i manualnych

Automatyzacja tego procesu, czyli wyżej wspomniane testy automatyczne, również w pierwszej fazie wymagają zaangażowania człowieka. Aby skorzystać z tej metody, należy napisać skrypt, który umożliwi automatyczne testowanie powtarzających się zadań w danym oprogramowaniu.

Świetnym przykładem na wykorzystanie testów automatycznych jest Netflix, który ma bardzo rozproszoną infrastrukturę i fail jednego serwisu mógłby doprowadzić do upadku całego biznesu. Wspomniany Netflix jest swojego rodzaju prekursorem w kwestii testów rozproszonych systemów – stworzył narzędzie o nazwie Chaos Monkey. Jak ono działa? W dużym uproszczeniu „tytułowa” małpa specjalnie, w kontrolowany sposób demoluje niektóre serwisy, aby sprawdzić, czy system to przeżyje. Testy manualne nie wymagają specjalnych oprogramowań czy też pisania kodu. Potrzebujemy jedynie człowieka. W naszej firmie stawiamy właśnie na takie testowanie, które jest lepszym wyborem w przypadku funkcjonalności, które wdrażamy i częstotliwości ich wdrażania. Nie mamy tak rozproszonych systemów co ww. Netflix oraz takiej grupy odbiorczej.

Przykładem wykorzystania testowania manualnego w naszej firmie jest np. dodanie generatora menu dla gastronomów w programie lojalnościowym. Tester sprawdza czy dany generator wygeneruje prawidłowo założone pozycje w odpowiednim formacie. Rozwoje takiego generatora pojawiają się systematycznie – dodawanie nowych filtrów, pozycji czy też formatów. Wówczas testy manualne sprawdzają się najlepiej ponieważ nie jesteśmy zmuszeni do pisania kodu do automatyzacji za każdym razem a tester jest w stanie sprawnie zweryfikować jego prawidłowość.

Konkludując, testy manualne są wystarczające dla nieskomplikowanych aplikacji, jednak w przypadku złożonych systemów składających się z wielu serwisów*, testowanie manualne byłoby po prostu zbyt czasochłonne.

Podsumowanie

Czy zatem jesteśmy w stanie odpowiedzieć sobie na tytułowe pytanie? To zależy – głównie od stopnia skomplikowania testowanego środowiska. Testy manualne sprawdzają się przy prostszych specyfikacjach, z kolei automatyczne – przy bardziej rozbudowanych systemach o gęstej sieci wewnętrznych powiązań.

Żadne testy nie wprowadzają chaosu, o ile są odpowiednio dobrane do potrzeb.

*serwisy to nowoczesne podejście do tworzenia aplikacji, w których jeden system (np. sklep internetowy) jest dzielony na wiele luźno powiązanych aplikacji.

Bibliografia

Publikacje elektroniczne:

 

Zdjęcie: Image by pressfoto on Freepik

Autor: Gabriela Bączkiewicz

Marketing Event Coordinator

Project Manager z wieloletnim doświadczeniem w programach technologicznych.

Redakcja: Emilia Seweryn, Ewa Nowaczyk-Przybylak
Chcesz się z nami skontaktować - zadzwoń lub napisz

Dyrektor Zarządzający
+48 695 990 128

Co zyskasz, kontaktując się z nami?
  • znajdziesz rozwiązania dla swoich wyzwań;
  • poznasz mechanizmy aktywizujące partnerów B2B i klientów;
  • rzetelnie wycenisz i zrealizujesz pomysł na program lojalnościowy.

Chcesz się dowiedzieć, czy w pełni wykorzystujesz potencjał, jaki daje wsparcie sprzedaży?

Skorzystaj z naszego kalkulatora wydajności i sprawdź, jak to wygląda u Ciebie!