Cześć!
Testowanie oprogramowania wg. definicji to proces związany z wytwarzaniem oprogramowania. Testowanie ma na celu weryfikację i walidację oprogramowania. No dobra, ale co to oznacza? Każdy może przecież przeczytać regułkę z Wikipedii i nic nie zrozumieć w praktyce. Krótko mówiąc: to działania mające na celu przetestowanie, czy wszystko w aplikacji jest poprawne lub inaczej prawidłowe. Na przykład czy buttony są klikalne, czy wszystkie requesty przechodzą poprawnie itp. To proces, który od A do Z sprawdza wszystko, co się dzieje w aplikacji. Nierzadko możemy dzięki testom sprawdzić działanie kodu, ale też funkcjonalność oraz użytkowanie aplikacji.

Wszyscy jako użytkownicy mamy pewne wymagania odnośnie aplikacji: wszędzie mamy jakieś cele, specyfikacje czy jakieś punkty, które aplikacja ma spełnić. Właśnie po to potrzebny jest nam proces testowania. Co prawda są to dodatkowe koszty, ale zapewnia poprawność aplikacji i zaufanie do niej. Po prostu musi ona spełniać pewne kryteria jak np. szybkość, wydajność, bezpieczeństwo itp. Testowanie pomaga też w wykryciu błędów i sprawia, że nasza aplikacja staje się dla użytkownika bardziej atrakcyjna, przez co przychody twórców wzrastają.
Jakie istnieją rodzaje testów? W uproszczeniu możemy je podzielić na:
– testy jednostkowe — czyli takie, które sprawdzają jakieś jednostki. Na przykład? Klasy, moduły, komponenty. Czyli coś, co jest jednostką w aplikacji, jakąś częścią składową.
– testy integracyjne — sprawdzają komunikację pomiędzy komponentami i pozostałym elementami.
– testy e2e (end to end) nazywane również systemowymi — to testy, które sprawdzają całą aplikację od początku do końca, symulując rzeczywiste reakcje osoby, która obsługuje aplikację. Uwzględnia się w nich wszystkie elementy systemu, również komponenty i klasy.
– testy akceptacyjne — sprawdzają, czy aplikacja spełnia wymagania klienta (użytkownika końcowego)
Testy też dzielą się również na:
– testy frontendowe — czyli testy, które sprawdzają widoczną część aplikacji dla użytkownika (np. poszczególne elementy html i css oraz sprawdzają komponenty)
– testy backendowe (testy API) – czyli takie, które testują zapytania do bazy danych, endpointy i różne rzeczy związane z zapleczem (backendem) inaczej logiką aplikacji nie koniecznie widoczną bezpośrednio dla użytkownika.
Wiem.. na początku można się pogubić , Ale bez obaw. Najpierw polecam nabyć podstawową wiedzę z zakresu testowania oprogramowania.
No dobrze.
Ale jak dokładnie się robi testy?
Testy można zarówno pisać, jak i wykonywać manualnie. W przypadku testowania manualnego potrzebny jest nam scenariusz. A w przypadku testowania za pomocą kodu to właśnie nasz kod jest takim scenariuszem, który się wykonuje. Możesz zostać testerem manualnym, jak i pisać takie testy.
Ale jak je pisać?
Jest mnóstwo narzędzi, które to ułatwią. Możesz skorzystać z:
– Cypress.js – to framework (biblioteka) do testowania zarówno frontendu, layoutu jak i API.
– Selenium webdriver – do automatyzacji interfejsów
– JUnit – do testowania jednostkowego w język Java
– Postman – do testowania API.
Wybór właściwego frameworka do testowania to sztuka, ale na sam początek proponuję Playwright/Cypress lub Selenium. Są to przejrzyste, fajne frameworki, z którymi poradzicie sobie bez problemu na początku swojej przygody z testami oprogramowania. Testowanie nie jest takie straszne, ale wymaga dobrej znajomości aplikacji, nad którą pracujecie.