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?
- Wady i zalety testowania manualnego
- Zastosowanie testów automatycznych i manualnych
- Podsumowanie
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:
- https://smartbees.pl/blog/testy-manualne-vs-automatyczne
- https://netflix.github.io/chaosmonkey/
- https://www.gremlin.com/chaos-monkey/
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
Dyrektor Zarządzający
+48 695 990 128
m.jedrzejczak@interactivesystems.pl
- 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!