Testy manualne, czyli co?

Testy manualne, czyli co?

 

Rygorystyczne testy oprogramowania są kluczem do stworzenia funkcjonalnej aplikacji. Warto jeszcze na etapie prac, odnaleźć i skorygować ewentualne błędy i nieprawidłowości w kodzie, aby uniknąć niepotrzebnych kosztów i niezadowolenia użytkowników oraz klientów. Czym są jednak testy manualne i jak się je przeprowadza? Jakie są ich wady i zalety oraz czym różnią się od testów automatycznych? Wyjaśniamy.

 

Czym są testy manualne?

 

Testy manualne są formą testowania oprogramowania, które jak nazwa wskazuje, przeprowadzane są przez daną osobę ręcznie. Tester opracowuje przypadki testowe i przygotowuje raporty z testów bez użycia skryptów czy dedykowanego oprogramowania automatyzującego jego pracę. Testy manualne pomagają w wykryciu błędów, nieprawidłowości i awarii oprogramowania.

 

Manualne testy — przykład zastosowania

 

Testy ręczne posiadają wiele rzeczywistych zastosowań — są szczególnie przydatne w ocenie użyteczności i dostępności danych aplikacji i systemów. Przykładowo, przy uruchamianiu witryny sklepu online, trzeba sprawdzić m.in. optymalizację dla wielu przeglądarek, sprawność procesu realizacji transakcji, szybkość ładowania się obrazów i ich wysoką rozdzielczość, działanie linków do mediów społecznościowych itd. Podczas swojej pracy, manualni testerzy sprawdzają kody sterujące do każdej z funkcji, ponadto mogą ocenić też wygląd i funkcjonalność działania takiego serwisu z punktu widzenia użytkownika. 

 

Różnice między testami manualnymi i automatycznymi

 

Czym różnią się testy manualne od automatycznych? Jedne i drugie wykonywane są przez testerów, jednak przy testach automatycznych — przy pomocy odpowiednich narzędzi — tworzy się skrypt testowy, mający na celu automatyczne wykonanie testów. Tester automatyzujący wykonuje testy automatyczne zaś tester manualny wykonuje testy ręcznie. Testy automatyczne opierają się na schemacie, który porównuje rzeczywiste wyniki z tymi oczekiwanymi. Dzięki temu tester odpowiedzialny za status wykonania skryptów może łatwo zweryfikować poprawność funkcjonowania danego oprogramowania.  Takie automatyczne działania (testy) przydają się i znacznie oszczędzają czas  w sytuacjach, gdy wymagane jest wielokrotne powtarzanie tych samych czynności. 

 

Poniżej podajemy najważniejsze cechy różniące testy manualne od automatycznych.

 

Testy manualne:

 

  • są wykonywane ręcznie

 

  • początkowa inwestycja jest niższa niż w testy automatyczne;

 

  • cechuje je mniejsza dokładność przy wykonywaniu testów (trzeba liczyć się z możliwością wystąpienia błędów ludzkich, szczególnie przy wykonywaniu powtarzalnych, nużących czynności);
  • konfiguracja przeprowadzania takich testów jest stosunkowo prosta;

 

  • pozwalają na uzyskanie dokładnych informacji zwrotnych;

 

  • nie wymagają zakupu specjalnego oprogramowania automatyzującego pracę;

 

  • nadają się do testów eksploracyjnych, adhoc i użyteczności. Dobrze sprawdzają się przy częstych zmianach testowanego systemu.

 

Testy automatyczne:

 

  • odbywają się przy użyciu odpowiednich narzędzi do wykonywania skryptów testowych;

 

  • najczęściej są szybsze w działaniu niż te manualne;

 

  • początkowa inwestycja w testy automatyczne jest wyższa, ale przy udanej automatyzacji pozwala na bardzo duże zyski;

 

  • niosą za sobą niskie ryzyko wystąpienia błędów;

 

  • umożliwiają wykonywanie testów np. wydajnościowych  (takich jak np. obciążenia czy stresowych), które muszą wykorzystywać specjalne narzędzia;

 

  • pozwalają na przeprowadzenie zadań i testów regresji w stosunkowo krótkim czasie;

 

  • do ich wykonywania niezbędne jest posiadanie wiedzy programistycznej;

 

  • cechuje je wysoka reużywalność skryptów testowych.

 

Testy manualne — plusy i minusy

 

Testy manualne są niezbędne, jeśli zależy Ci na eliminacji największej ilości błędów oraz ocenie systemu z ludzkiego punktu widzenia. Pomimo wielu idących za nimi korzyści, mają też swoje słabe strony. W dalszej części tekstu przeprowadzimy Cię przez największe zalety i wady testów manualnych.

 

Zalety testów manualnych:

  • Dokładność — zautomatyzowane narzędzia są inteligentne, jednak nigdy nie zastąpią pod tym względem człowieka. Są pewne rzeczy, które dostrzec może tylko osoba z doświadczeniem w tej branży. Dlatego jeśli chodzi o prawidłową identyfikację błędów i innych usterek w oprogramowaniu, testowanie manualne pozwala na większą szansę wykrycia wszystkich nieprawidłowości.


  • Oszczędność pieniędzy — pomimo iż testowanie manualne wymaga zaangażowania wykwalifikowanej kadry, w rzeczywistości pozwala zaoszczędzić pieniądze firmy. Dzieje się tak dlatego, że testy manualne nie wymagają inwestycji w żadne drogie programy czy narzędzia do automatyzacji. Sama ich instalacja, a potem też konfiguracje i nauka, mogą być bardzo kosztowne. Tester manualny jest również mniejszym kosztem, niż tester automatyzujący.


  • Elastyczność — testy manualne pozwalają na możliwość dostosowania się do danej sytuacji. Szczególnie przydatne są przy testach adhoc , testach eksploracyjnych oraz wtedy, gdy w oprogramowaniu wprowadzane są nieplanowane zmiany. Czynnik ludzki pozwala na to, by dane przypadki testowe można było w łatwy i szybki sposób przeprojektować lub zmodyfikować. Testowanie manualne jest też na tyle skuteczne, że może być wykorzystywane we wszystkich rodzajach aplikacji.


  • Ludzki punkt widzenia — manualni testerzy wnoszą coś więcej niż tylko wyłapywanie błędów i nieprawidłowości w działaniu systemu. Zapewniają bowiem niezastąpioną ludzką perspektywę w spojrzeniu na wygląd i finalne działanie produktu. Umożliwia to udoskonalenie systemu  w taki sposób, by był jak najbardziej przyjazny dla użytkownika.

Wadami testów manualnych są:

  • Czasochłonność — testy manualne są zdecydowanie bardziej wymagające i czasochłonne od ich automatycznych odpowiedników (brak reużywalności testów). Ponadto niezbędne jest zaangażowanie dużej ilości osób, co może być kosztowne. 

  • Ryzyko wystąpienia błędów — jak już wspominaliśmy przy zaletach testów manualnych, ludzie potrafią wychwycić większą ilość nieprawidłowości od maszyn. Pomimo wszystko, trzeba liczyć się z ryzykiem wystąpienia błędów lub przeoczeń, ze  względu na to, że jest to praca często nużąca i powtarzalna.

 

  • Ograniczony zakres prac — testowanie manualne nie nadaje się do niektórych rodzajów testowania m.in. do testów wydajnościowych czy testów bezpieczeństwa. Dzieje się tak dlatego, że człowiek nie jest w stanie stworzyć przykładowo symulacji dużej ilości użytkowników witryny, w taki sposób, jaki robi to maszyna. Dlatego te rodzaje testów przeprowadzane są zwykle przy pomocy testów automatycznych.

  • Brak możliwości ponownego wykorzystania skryptów — z uwagi na to, że testów manualnych nie można zarejestrować, nie mogą one być użyte ponownie, jak to często zdarza się w przypadku testów automatycznych. W manualnej wersji, dla każdej nowej aplikacji, potrzebne jest opracowanie nowych przypadków testowych.

Rodzaje testów manualnych

 

Testy manualne najprościej  podzielić można na:

 

  • Testy funkcjonalne (nazywane też testami czarnoskrzynkowymi), obejmują funkcjonalności oprogramowania. Dotyczą one funkcji oraz zachowania się danej aplikacji, z którymi będzie miał styczność przyszły użytkownik. Testy przeprowadzane są na podstawie określonych wcześniej wymogów, logiki biznesowej oraz dostarczonej dokumentacji. Istotne są sugestie testera, który próbuje również odgadnąć oczekiwania przyszłego odbiorcy. Testy funkcjonalne można przeprowadzić na wszystkich etapach pracy, nawet nie posiadając skomplikowanej wiedzy teoretycznej.

  • Testy niefunkcjonalne  skupiają się na tym, jak działa system. Dzięki nim można sprawdzić m.in. użyteczność aplikacji, jej bezpieczeństwo, wydajność, kompatybilność i niezawodność. Testy niefunkcjonalne sprawdzają bardzo ważne atrybuty systemu, niezastosowanie ich w procesie testowym skutkować może np.: zniechęcającym designem, brakiem intuicyjności aplikacji, a nawet wyciekiem danych klientów czy zablokowaniem strony przez hackerów. 

Łączenie testów manualnych z automatycznymi to rozsądna opcja

 

Pomimo że automatyzacja znacznie oszczędza czas, testy manualne wciąż pozostają istotną częścią tworzenia oprogramowania. Dzieje się tak dlatego, że testerzy manualni potrafią spojrzeć na produkt oczami przyszłego użytkownika i wyobrazić sobie wiele scenariuszy testowych. Ponadto są oni w stanie pomóc przy bardziej złożonych problemach, gdzie automatyzacja nie jest tak skuteczna. 

 

Warto pamiętać, że podczas gdy testowanie oprogramowania próbuje wyłapać jak najwięcej błędów, identyfikacja wszystkich możliwych defektów jest niemal niemożliwa. Testerzy manualni potrafią wykryć nieprawidłowości, które maszyna może przeoczyć. Sami jednak narażeni są na błędy ludzkie — wynikające ze zmęczenia, znużenia czy pośpiechu. Dlatego kombinacja testów automatycznych z manualnymi stanowi najbezpieczniejszy i najskuteczniejszy sposób wyłapywania największej liczby usterek oraz błędów w danym oprogramowaniu czy aplikacji.

Notatka o autorze:

Zajmuję się testowaniem, zabezpieczaniem i zapewnianiem jakości oprogramowania od ponad 13 lat. Rozpocząłem swoją karierę od testów manualnych i analizy biznesowo-technicznej. Obecnie prowadzę firmę Quality Island, która zajmuje się szeroko pojętym testowaniem oprogramowania oraz szkoleniami dla przyszłych i obecnych testerów oprogramowania. Moją specjalnością są testy automatyczne aplikacji webowych oraz budowa procesów automatyzacji i robotyzacji. Od 8 lat prowadzę aktywnie szkolenia oraz konsultacje z tych tematów i wykonuję zlecenia dla firm trzecich jako konsultant, ekspert oraz audytor. Współpracuję również z firmami jako osoba do rekrutacji i weryfikacji technicznych. Interesują mnie głównie tematy związane z architekturą IT oraz zagadnienia DevOps/TestOps, ponieważ ściśle wiążą się z zapewnianiem jakości oprogramowania.

 

Tomasz Stelmach

CEO&Founder

 

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *