Znaczenie testowania oprogramowania manualnego oraz automatycznego

Znaczenie testowania oprogramowania manualnego oraz automatycznego

W zależności od stworzonego oprogramowania jednym z etapów jego tworzenia jest wybór pomiędzy testowaniem manualnym a testowaniem automatycznym. Warto również już na wstępie przeanalizować wady i zalety każdej z tych etapów.

Testy manualne wykonywane są wyłącznie manualnie – przez człowieka. Nie obejmują wsparcia ze strony dodatkowych narzędzi, czy skryptów. Dlatego można testować oprogramowanie bez znajomości systemu i nie wymaga znajomości konkretnych skryptów.

Natomiast w testowaniu automatycznym, przypadki testowe są wykonywane z użyciem oprogramowania i skryptów. Celem tej metody jest wykonanie testów w krótkim czasie, za pomocą powtarzalnych zadań oraz testowanie regresywne, bez interwencji testera manualnego. Jednakże w tym przypadku pewne części procesu wymagają interwencji człowieka, by na tej podstawie stworzyć automatyczne skrypty testowe.

Warto wskazać, że nie można jednoznacznie stwierdzić, która metoda jest lepsza. Oba typy testowania – manualne i automatyczne aplikuje się w różnych przypadkach, zależnie od wielu czynników, takich jak budżet, wymagania projektu, zasoby, czas, stosowność, doświadczenie i struktura projektu.

Obie metody, zarówno manualna, jak automatyczna obejmują testowanie integracyjne, testowanie systemowe, testowanie wydajnościowe i testowanie obciążeniowe. Niektóre z typów testowania są jednak lepiej wykonywane w ramach podejścia manualnego – inne automatycznego.

Poniżej dokonano wstępnego porównania testowań wg następujących czynników: czas, koszt, dokładność, wymagana wiedza, frameworki, itd.

Testy manualneTesty automatyczne
 Czas
Czasochłonne, bazuje na samym człowieku.Optymalnie szybsze, ale skłonność do powtarzania.
 Dokładność
Rutyna człowieka jest zagrożeniem.Przeprowadzane za pomocą skryptów i narzędzi, dzięki którym jest rzetelne i dokładniejsze, ale automaty też są realizowane przez człowieka.
 Raportowanie
Podejście manualne pozwala dokładniej obserwować i ocenić, czy aplikacja jest łatwa w użyciu. Używa się również specjalistycznego oprogramowania/stron wspierających proces testowania i rejestrujących błędy (Testrail, Jira, itd.)Automaty nie weryfikują czynnika ludzkiego, przez co aplikacje mogą działać tylko w ramach zawansowanych użytkowników. Wyniki testów składają się z dużej próbki i wynik jest bardziej prawdopodobny.
 Inwestycja
Początkowa inwestycja w proces testowania manualnego jest niższa niż w przypadku automatyzacji, ale opłacalność jest niższa w dłuższej perspektywie. Wymagana jest inwestycja w zasoby ludzkie.Testowanie automatyczne wymaga zazwyczaj większej inwestycji na wstępie, ale opłacalność jest korzystniejsza. W tym wypadku inwestuje się w rozwój narzędzi do testowania, co jest jednoznaczne z zatrudnieniem specjalisty w dziedzinie automatyzacji.
 Wymagana wiedza
Umiejętności programistyczne nie są wymagane w testowaniu manualnym.Znajomość języków programowania jest niezbędna przy tworzeniu skryptów z użyciem większości narzędzi.
 Frameworki
W testowaniu manualnym nie używa się frameworków, proces testowania obejmuje użycie list kontrolnych, reguł i procesów.Testowanie automatyczne oparte jest na frameworkach takich, jak: Selenide, Serenity, Data Driven, Hybrid, BDD, itd.
 Użycie
Testowanie eksploracyjne: wymaga doświadczenia i intuicji testera Testowanie użyteczności: testowanie mające na celu ocenę zrozumiałości i łatwości w użyciu danego oprogramowania Testowanie ad hoc: testowanie bez planu i scenariusza, ważnym czynnikiem jest człowiek i ludzkie rozumienieTestowanie wydajnościowe: testowanie, które wymaga symulacji jednoczesnej aktywności dużej liczby użytkowników jest łatwiej osiągalne poprzez automatyzację Testowanie obciążenia: automatyzacja pozwala na testowanie systemu w warunkach pracy z dużą ilością danych Testowanie funkcjonalne: automatyzacja pozwala na symulację szybkich zmian kodu w krótkim czasie Powtarzalne zadania: jeśli test bazuje na powtarzaniu danego zadania, zalecana jest automatyzacja

Powyższe porównanie sygnalizuje, że metody testowania: manualna i automatyczna mają swoje zalety i wady. Za pomocą testowania manualnego – na przykład – możemy uzyskać dokładniejsza informację zwrotną na bazie ludzkiego doświadczenia, niewymagana jest tu umiejętności kodowania. Testy automatyczne pozwalają natomiast znaleźć większą ilość błędów w ramach szybszego i bardziej efektywnego procesu, który może być z łatwością zarejestrowany.

Comments are closed.