close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności

Najważniejsze rodzaje testów oprogramowania

W tym artykule omówimy różne typy testów używane w procesie testowania oprogramowania. Wyjaśnimy, dlaczego są one ważne i jak pomagają w ocenie jakości oprogramowania. 

1. Testy funkcjonalne

Takie testy weryfikują czy dany system działa zgodnie z wymaganiami funkcjonalnymi. Mówimy tu o wymaganiach opisujących co system powinien robić, jak ma reagować na różne zdarzenia i jakie ma generować dane na wyjściu.

Celem testów funkcjonalnych jest sprawdzenie czy wszystkie funkcje danej aplikacji działają poprawnie i czy spełniają oczekiwania użytkowników. Co można sprawdzić za pomocą takich testów? Oto kilka przykładów:

  • Czy aplikacja działa zgodnie z projektem?
  • Czy zamówienie da się złożyć zgodnie z założonym scenariuszem?
  • Czy dane z formularza są prawidłowo przesyłane do serwera?

Typy testów funkcjonalnych

  • Testy jednostkowe testują pojedyncze komponenty albo funkcje w izolacji od innych elementów.
  • Testy integracyjne sprawdzają jak różne moduły aplikacji współdziałają ze sobą.
  • Testy systemowe przeprowadzane są na całym systemie, aby sprawdzić, czy spełnia on określone wymagania
  • Testy akceptacyjne potwierdzają, że system spełnia wymagania klienta i jest gotowy do wdrożenia.

2. Testy niefunkcjonalne

Takie testy badają właściwości systemu: wydajność, bezpieczeństwo, niezawodność lub użyteczność. Sprawdzają czy aplikacje spełnia oczekiwania w zakresie jakości. Oto kilka przykładów:

  • Czy aplikacja działa pod dużym obciążeniem?
  • Czy system jest odporny na ataki?
  • Czy aplikacja działa poprawnie na różnych urządzeniach?

Typy testów niefunkcjonalnych

  • Testy wydajnościowe skupiają się na ocenie, jak system radzi sobie z obciążeniem. 
  • Testy bezpieczeństwa weryfikują, czy aplikacja jest odporna na ataki i czy dane użytkowników są odpowiednio zabezpieczone.
  • Testy kompatybilności sprawdzają, jak system działa w różnych środowiskach, systemach czy przeglądarkach.
  • Testy niezawodności oceniają jak dobrze system radzi sobie w dłuższym okresie czasu oraz w różnych warunkach.

3. Testy w zależności od znajomości struktury kodu

W tej grupie wyróżniamy dwa podstawowe typy testów: białej skrzynki oraz czarnej skrzynki. Są to różne podejścia do testowania, które różnią się znajomością wewnętrznych mechanizmów systemu z punktu widzenia testera.

Testy białej skrzynki

Testowanie to opiera się na analizie wewnętrznej struktury kodu. Testerzy znają szczegóły implementacji i używają tej wiedzy do projektowania testów. Jest to bardziej techniczne podejście, wymagające znajomości kodu. Przykład: testowanie warunków logicznych w kodzie źródłowym.

Testy czarnej skrzynki

W tym przypadku testerzy nie mają wiedzy o wewnętrznej strukturze systemu. Skupiają się na wejściach i oczekiwanych wyjściach systemu, testując go z perspektywy użytkownika końcowego. 

4. Testy związane ze zmianami

Aplikacje i systemy są nieustannie modyfikowane. Dlatego musimy mieć pewność, że nowo wprowadzone zmiany, nie zepsuły dotychczasowych funkcjonalności. Wyróżniamy kilka odmian takich testów.

Testy potwierdzające (Confirmation Testing)

Takie testy mają na celu potwierdzenie, że naprawione defekty zostały skutecznie usunięte. Po wprowadzeniu poprawek testerzy przeprowadzają te same testy, które wcześniej wykazały błąd, aby upewnić się, że problem został rozwiązany.

Testy regresji (Regression Testing)

Testy regresji mają na celu wykrycie niezamierzonych efektów ubocznych, które mogą pojawić się w wyniku wprowadzenia zmian w kodzie. Mają zapewnić, że system działa poprawnie po każdej nowej modyfikacji.

Testy kondycji (Sanity Testing)

Testy kondycji to szybkie testy przeprowadzane w celu weryfikacji, że nowe funkcjonalności lub poprawki działają zgodnie z oczekiwaniami, zanim przeprowadzone zostaną bardziej szczegółowe testy. 

Testy dymne (smoke testing)

To testy, które mają na celu potwierdzenie, że najważniejsze funkcje systemu działają, zanim przeprowadzone zostaną bardziej zaawansowane testy. Sprawdzają w pierwszej kolejności, kluczowe funkcje danego systemu.

Podsumowanie

Złożoność współczesnego oprogramowania, wymaga przeprowadzania regularnych testów. Istnieją różne typy testów, dla różnych etapów cyklu tworzenia systemów czy aplikacji. Mamy nadzieję, że po lekturze tego artykułu masz już ogólną orientację w najważniejszych typach testów.