Testy jednostkowe (Unit Tests)
Testy jednostkowe sprawdzają poszczególne metody i klasy w izolacji. W kontekście naszego kasyna, można wyróżnić następujące testy jednostkowe:
-
Testy walidacji danych wejściowych:
- Sprawdzenie poprawności walidacji adresu e-mail.
- Sprawdzenie poprawności walidacji długości hasła.
- Sprawdzenie poprawności walidacji długości nazwy użytkownika.
-
Testy metod pomocniczych:
- Testowanie metody
hashPassword
w celu sprawdzenia poprawności generowania hasha. - Testowanie metody
generateSalt
w celu sprawdzenia poprawności generowania soli (ciągu zaburzającego).
- Testowanie metody
-
Testy logowania i rejestracji:
- Testowanie metod odpowiedzialnych za logowanie użytkownika.
- Testowanie metod odpowiedzialnych za rejestrację użytkownika.
- Testowanie metod odpowiedzialnych za resetowanie hasła.
Przykłady tego typu testów można znaleźć w naszym repozytorium.
Testy integracyjne (Integration Tests)
Testy integracyjne sprawdzają współdziałanie różnych modułów systemu. W kontekście naszego kasyna, można wyróżnić następujące testy integracyjne:
-
Testy integracji z bazą danych:
- Sprawdzenie poprawności zapisu nowego użytkownika do bazy danych.
- Sprawdzenie poprawności odczytu danych użytkownika z bazy danych.
- Sprawdzenie poprawności aktualizacji hasła użytkownika w bazie danych.
-
Testy integracji z sesjami użytkowników:
- Sprawdzenie poprawności tworzenia sesji po zalogowaniu użytkownika.
- Sprawdzenie poprawności usuwania sesji po wylogowaniu użytkownika.
Testy funkcjonalne (Functional Tests)
Testy funkcjonalne sprawdzają, czy system działa zgodnie z wymaganiami. W kontekście naszego kasyna, można wyróżnić następujące testy funkcjonalne:
-
Testy formularzy:
- Sprawdzenie poprawności działania formularza rejestracji.
- Sprawdzenie poprawności działania formularza logowania.
- Sprawdzenie poprawności działania formularza resetowania hasła.
-
Testy powiadomień:
- Sprawdzenie poprawności wyświetlania powiadomień o błędach (np. niepoprawne dane logowania).
- Sprawdzenie poprawności wyświetlania powiadomień o sukcesie (np. pomyślna rejestracja).
Testy end-to-end (E2E Tests)
Testy end-to-end sprawdzają cały przepływ aplikacji od początku do końca. W kontekście naszego kasyna, można wyróżnić następujące testy end-to-end:
-
Testy rejestracji i logowania:
- Sprawdzenie pełnego procesu rejestracji nowego użytkownika.
- Sprawdzenie pełnego procesu logowania zarejestrowanego użytkownika.
- Sprawdzenie pełnego procesu resetowania hasła.
-
Testy nawigacji:
- Sprawdzenie poprawności przekierowań po zalogowaniu.
- Sprawdzenie poprawności przekierowań po wylogowaniu.
Testy wydajnościowe (Performance Tests)
Testy wydajnościowe sprawdzają, jak system radzi sobie pod obciążeniem. W kontekście naszego kasyna, można wyróżnić następujące testy wydajnościowe:
-
Testy obciążeniowe:
- Sprawdzenie, jak system radzi sobie z dużą liczbą jednoczesnych rejestracji.
- Sprawdzenie, jak system radzi sobie z dużą liczbą jednoczesnych logowań.
-
Testy czasu odpowiedzi:
- Sprawdzenie czasu odpowiedzi na zapytania do bazy danych.
- Sprawdzenie czasu odpowiedzi na żądania HTTP.
Testy bezpieczeństwa (Security Tests)
Testy bezpieczeństwa sprawdzają, czy system jest odporny na różne rodzaje ataków. W kontekście naszego kasyna, można wyróżnić następujące testy bezpieczeństwa:
-
Testy podatności na SQL Injection:
- Sprawdzenie, czy aplikacja jest odporna na ataki SQL Injection.
-
Testy podatności na XSS:
- Sprawdzenie, czy aplikacja jest odporna na ataki Cross-Site Scripting (XSS).
-
Testy podatności na CSRF:
- Sprawdzenie, czy aplikacja jest odporna na ataki Cross-Site Request Forgery (CSRF).
Testy użyteczności (Usability Tests)
Testy użyteczności sprawdzają, czy aplikacja jest łatwa w użyciu dla użytkowników. W kontekście naszego kasyna, można wyróżnić następujące testy użyteczności:
-
Testy interfejsu użytkownika:
- Sprawdzenie, czy formularze są intuicyjne i łatwe w użyciu.
- Sprawdzenie, czy powiadomienia są czytelne i zrozumiałe.
-
Testy dostępności:
- Sprawdzenie, czy aplikacja jest dostępna dla osób z niepełnosprawnościami.