Testowanie manualne i automatyczne

Wydaje się, że automatyzacja jest w dzisiejszych czasach zawsze najlepszym rozwiązaniem. Tymczasem testy manualne, nierzadko sprawdzają się w obszarach, gdzie automatyczne nie będą miały racji zastosowania. Sprawdź różnice.

Przy realizacji nawet dużych projektów IT temat testów jest często pomijany. Wydaje się, że skoro dany system działa tak jak powinien, to nie ma sensu generować kolejnych kosztów... Tymczasem, może się okazać, że te (jak się wydaje) dodatkowe koszty, będą w praktyce oszczędnością.

W sytuacji, gdy np. jakiś element nie jest do końca dopracowany lub nie sprawdza się w środowisku użytkowym, konieczne może okazać się wyłączenie lub znaczna modyfikacja oprogramowania. W takim przypadku produkt, który powinien na siebie zarabiać - nie robi tego. Należy pamiętać, że systemy i aplikacje bardzo często trafiają do użytkowników, którzy niekoniecznie potrafią z nich korzystać lub takich, którzy chcą dopasować je pod własne potrzeby, omijając „oficjalne” rozwiązania. Testowanie pozwala na wskazanie takich obszarów i przewidzenie nietypowych scenariuszy.

W skrócie: tak jak wszelkie przedmioty użytkowe, również oprogramowanie, zanim zostanie oddane do użytku, powinno zostać dokładnie sprawdzone. Musisz mieć pewność, że działa zgodnie z założeniami nawet w nietypowych sytuacjach. Zapamiętaj - nie ma rzeczy i ludzi nieomylnych, a testowanie minimalizuje ryzyko wystąpienia (nieraz kosztownych) błędów.

Czym są testy manualne?

Testy manualne przeprowadzane są przez specjalistów (testerów), którzy krok po kroku, według ogólnego schematu / scenariusza, analizują daną aplikację lub system itp. Ich zadaniem jest znalezienie ewentualnie występujących błędów i nieprawidłowości, ale również sprawdzenie oprogramowana w taki sposób, w jaki zrobiłby to użytkownik nie posiadający szkolenia lub instrukcji. Tester nie używa skryptów czy narzędzi do automatyzacji. Nie jest od niego również wymaga znajomość języków oprogramowania.
 

Czym są testy automatyczne?

Testy automatyczne są wykonywane przez system, wcześniej przygotowane lub napisane narzędzia, kody czy skrypty. Testy te mogą być tworzone w wybranym języku programowania, dlatego jego znajomość jest wymogiem do przygotowania narzędzia.
 

Test manualny czy test automatyczny?

Przedstawiamy zestawienie testów manualnych z automatycznymi, w ujęciu najczęściej spotykanych czynników.

Czas realizacji

Czas wykonania takiego testu należy omawiać z różnych perspektyw. Z jednej strony przygotowanie narzędzi służących automatyzacji testów wymaga wcześniejszego nakładu pracy. Z kolei w późniejszej perspektywie są one wykorzystywane wielokrotnie. Testy manualne realizowane są ręcznie, za każdym razem na nowo. Oczywistym jest więc, że automatyzacja doprowadza do szybszej realizacji zadania. Ponadto testy automatyczne wykonują się w o wiele krótszym czasie, niż manualne.
 

Wielkość projektu

W przypadku projektów mniejszych, zdecydowanie bardziej opłacalnym jest zastosowanie testów manualnych. Koszt takiego testowania będzie wówczas niższy. Z kolei testy automatyczne sprawdzają się w konieczności przetestowania dużych projektów, gdzie wykonanie testu manualnego byłoby wręcz niemożliwe lub bardzo kosztowne i czasochłonne.
 

Wykrywanie błędów

Testy automatyczne pozwalają na wyeliminowanie błędu ludzkiego. Z kolei w testach manualnych może dojść do zmęczenia testera, co może być przyczyną kolejnych omyłek. Paradoksalnie, pozwalają one wykryć nietypowe zachowania i sprawdzić podatność systemu na ich wystąpienie. Z drugiej strony, jeśli zajdzie jakaś zmienna, która nie została wprowadzona do oprogramowania przed wykonaniem testu, wówczas oprogramowanie do testowania automatycznego, nie zanotuje jej obecności.
 

Koszty

Jednorazowo tańsze będą testy manualne, jednak wymagają ponoszenia kosztów za każdym razem, gdy są wykonywane. Wykorzystanie automatyzacji wiąże się z o wiele większą wiedzą testującego (dysponowanie językami programistycznymi), a przygotowanie i samo użycie narzędzi automatyzujących, to również wysokie koszty. W ujęciu długofalowym jednak zdecydowanie tańszą opcją będą testy automatyczne.
 

Testy wydajnościowe

W tym aspekcie wykonywanie testów manualnych nie ma zasadności. Dla przykładu testy obciążeniowe opierają się na sprawdzeniu ile zapytań system jest w stanie obsłużyć, w danym czasie. Jak nietrudno się domyślić, testy tego rodzaju są wyłącznie realizowane w sposób automatyczny.
 

UX i UI

Ocena User Experience oraz User Interface to sprawdzenie aspektu wizualnego oraz interakcji z użytkownikiem. Przetestowanie zakresu takich obszarów w sposób automatyczny jest niemożliwe, dlatego wykorzystuje się w tym celu wyłącznie testy manualne. Być może w przyszłości uczenie maszynowe, które obecnie jest w tym kierunku rozwijane, pozwoli na „wyeliminowanie” czynnika ludzkiego, lub będzie stanowić dla niego wartościowe narzędzie.
 

Zmienne współrzędne

Zmienną może być podmienienie tła, czy przeniesienie jakiegoś elementu w inne miejsce. Jak zostało wspomniane - testy automatyczne nie są w stanie wyłapać takich niuansów. Okazuje się więc, że w projektach, gdzie może dojść do zmiany takich aspektów, o wiele lepiej sprawdzają się testy manualne, gdzie czynnik ludzki jest w stanie wykryć takie różnice.
 

Reużywalność

Raz napisany test czy skrypt może być wykorzystywany nieskończenie wiele razy. Testy manualne są za każdym razem wykonywane od nowa – nie da się ich w żaden sposób wcześniej przygotować.
 

Nakład pracy

Testy automatyczne należy najpierw opracować, co może zająć dużo czasu. Z kolei ich przeprowadzenie trwa o wiele krócej i tester wykonuje mniejszy nakład pracy. Testy manualne wymagają przejścia każdego kroku od początku do końca, opracowania raportu lub podsumowania.
 

Ryzyko wstąpienia błędu po stronie testów

Jak zostało wspomniane w testach manualnych występuje czynnik ludzki, który obciążony jest ryzykiem wystąpienia błędu. Jeśli chodzi o testy automatyczne, jest ono całkowicie wyeliminowane (przy założeniu, że podczas testowania, nie doszło do zmiany współrzędnych).
 

Raportowanie

Testy automatyczne generują tego rodzaju dokumenty symultanicznie do wykonywanej pracy, co znacznie skraca i usprawnia cały proces. Z kolei testy manualne pozwalają na zawarcie aspektów, które nie zostały wcześniej uwzględnione. Dlatego raport może być bardziej indywidualny i dopasowany do potrzeb klientów lub być przygotowany w taki sposób, by nawet niewykwalifikowany odbiorca zrozumiał wyniki.
 

Kiedy lepiej sprawdzą się testy manualne?

  • Mniejsze projekty
  • Projekty niewymagające znajomości języka programowania
  • Jednorazowe testowanie jest wystarczające
  • Do oceny poddawane jest UX i UI
  • Istnieje wiele zmiennych w projekcie
  • Klient wymaga spersonalizowanego raportu lub objaśnienia go
  • Projekty z mniejszymi budżetami
     

Kiedy lepiej sprawdzą się testy automatyczne?

  • Duże projekty
  • Wymagane testy obciążeniowe
  • Wielokrotne przeprowadzanie tych samych testów
  • Szybkie otrzymanie wyników
  • Konieczność wyeliminowania błędów ludzkich
  • Projekty z dużymi budżetami
     

Podsumowanie

Warto zawsze zdawać się na opinie ekspertów, którzy na podstawie swojego doświadczenia doradzą wykorzystanie odpowiedniej metody, pod indywidualny projekt. Może się okazać, że z pozoru prosta aplikacja sprawdzona manualnie, będzie wymagała jeszcze automatycznej weryfikacji.

Tak naprawdę nie ma jednej, uniwersalnej odpowiedzi na pytanie: "co wybrać?" Należy zawsze kierować się indywidualnymi cechami projektu oraz celem jaki chce się osiągnąć.

Co możemy dla Ciebie zrobić?

×

Klienci o nas