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 manualne | Testy 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 rozumienie | Testowanie 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.