Przejdź do głównej zawartości

Integracja testów

Testowanie to obszar gdzie Claude Code dowodzi swojej wartości jako mnożnik siły rozwoju. Łącząc głębokie zrozumienie kodu z możliwością generowania, uruchamiania i iterowania testów, Claude przekształca testowanie z obowiązku w systematyczny proces zapewnienia jakości. Ten przewodnik ujawnia wzorce budowania kompleksowych zestawów testów, które wychwytują błędy zanim dotrą do produkcji.

Claude podchodzi do testowania z trzema podstawowymi zasadami:

Pokrycie przede wszystkim

Dąży do kompleksowego pokrycia poprzez identyfikację wszystkich ścieżek kodu, przypadków granicznych i potencjalnych trybów awarii wymagających testowania.

Rozwój kierowany testami

Przyjmuje TDD pisząc testy przed implementacją, zapewniając że kod jest budowany jako testowalny od początku.

Inteligentne generowanie

Używa analizy kodu do generowania znaczących testów zamiast trywialnych, skupiając się na logice biznesowej i punktach integracji.

  1. Zdefiniuj oczekiwane zachowanie

    "Napisz testy dla systemu uwierzytelniania użytkowników który:
    - Waliduje format email
    - Wymaga haseł z 8+ znakami
    - Zapobiega SQL injection
    - Obsługuje rate limiting
    Nie implementuj jeszcze, napisz tylko testy"
  2. Zweryfikuj że testy nie przechodzą

    "Uruchom testy i potwierdź że wszystkie nie przechodzą
    (ponieważ jeszcze nic nie zaimplementowaliśmy)"
  3. Implementuj aby testy przechodziły

    "Teraz zaimplementuj system uwierzytelniania
    aby wszystkie testy przechodziły. Nie modyfikuj testów."
  4. Iteruj aż do zielonych

    "Test walidacji hasła wciąż nie przechodzi.
    Napraw implementację aby poprawnie obsługiwała znaki specjalne."
  5. Refaktoryzuj z pewnością

    "Teraz gdy testy przechodzą, refaktoryzuj kod dla lepszej
    czytelności zachowując wszystkie testy zielone"
"Wygeneruj kompleksowe testy jednostkowe dla tej klasy UserService:
- Testuj wszystkie publiczne metody
- Dołącz przypadki graniczne i warunki błędów
- Mockuj zewnętrzne zależności
- Używaj konwencji Jest i testing-library
- Osiągnij 100% pokrycia kodu"
// Claude generuje:
// - Testy ścieżek szczęśliwych
// - Testy obsługi błędów
// - Testy warunków granicznych
// - Testy weryfikacji mocków

Claude doskonale identyfikuje przypadki graniczne, które ludzie mogą przegapić:

Generowanie przypadków granicznych

"Zidentyfikuj i napisz testy dla wszystkich przypadków granicznych w tej
funkcji, która oblicza ceny ze zniżką:
function calculateDiscount(price, discountPercent, userType) {
// ... implementacja
}
Rozważ:
- Wartości ujemne
- Wartości zerowe
- Bardzo duże liczby
- Nieprawidłowe typy użytkowników
- Precyzję zmiennoprzecinkową
- Wejścia null/undefined"

Mockowanie zależności

"Mockuj wywołania bazy danych w tym teście:
- Zwróć predefiniowane dane dla zapytań
- Symuluj błędy połączenia
- Testuj logikę retry
- Weryfikuj parametry zapytań"

Mockowanie API

"Utwórz mocki dla zewnętrznych wywołań API:
- Symuluj różne kody odpowiedzi
- Testuj scenariusze timeout
- Mockuj odpowiedzi rate limit
- Weryfikuj nagłówki żądań"

Mockowanie czasu

"Mockuj datę/czas w testach:
- Testuj funkcje zależne od czasu
- Symuluj różne strefy czasowe
- Testuj logikę harmonogramowania
- Mockuj setTimeout/setInterval"

Mockowanie systemu plików

"Mockuj operacje na plikach:
- Symuluj błędy odczytu/zapisu
- Testuj obsługę dużych plików
- Mockuj operacje katalogów
- Testuj problemy uprawnień"
  1. Konfiguracja środowiska testowego

    "Utwórz konfigurację testów integracyjnych która:
    - Uruchamia serwer testowy
    - Seeduje bazę danych testową
    - Konfiguruje uwierzytelnianie testowe
    - Ustawia helpery żądań"
  2. Testuj kompletne przepływy

    "Napisz testy integracyjne dla kompletnego przepływu
    rejestracji użytkownika:
    - POST do /register
    - Zweryfikuj utworzenie rekordu w bazie danych
    - Sprawdź wysłanie maila powitalnego
    - Testuj logowanie z nowymi danymi uwierzytelniającymi"
  3. Testuj scenariusze błędów

    "Testuj obsługę błędów API:
    - Nieprawidłowe dane żądania
    - Awarie połączenia z bazą danych
    - Timeouty usług trzecich
    - Rate limiting"
  4. Sprzątanie

    "Zapewnij że testy sprzątają po sobie:
    - Wyczyść dane testowe
    - Zresetuj mocki
    - Zamknij połączenia"
"Napisz testy dla transakcji bazodanowych:
- Testuj rollback na błędach
- Weryfikuj poziomy izolacji
- Testuj dostęp współbieżny
- Sprawdź obsługę deadlocków"

Generowanie testów E2E

"Wygeneruj testy Playwright/Cypress dla naszego przepływu e-commerce:
1. Użytkownik przegląda produkty
2. Dodaje elementy do koszyka
3. Aplikuje kod kuponu
4. Kończy checkout
5. Otrzymuje potwierdzenie zamówienia
Dołącz:
- Testowanie wielu przeglądarek
- Testowanie widoku mobilnego
- Testowanie odzyskiwania po błędach
- Metryki wydajności"
"Utwórz testy cross-browser z Playwright:
- Testuj na Chrome, Firefox, Safari
- Dołącz widoki mobilne
- Testuj funkcjonalność offline
- Przechwytuj zrzuty ekranu przy awarii
- Generuj raporty testów"

Integracja Faker

"Wygeneruj realistyczne dane testowe używając Faker:
- Profile użytkowników z adresami
- Katalogi produktów
- Historie transakcji
- Dane szeregów czasowych"

Zarządzanie fixtures

"Utwórz fixtures wielokrotnego użytku:
- Obiekty bazowe z domyślnymi
- Nadpisania specyficzne dla scenariusza
- Obsługa relacji
- Lazy evaluation"

Dane seed

"Zaimplementuj seedowanie bazy danych:
- Spójne scenariusze testowe
- Zbiory danych testów wydajności
- Dane przypadków granicznych
- Strategie sprzątania"

Testowanie snapshot

"Użyj testowania snapshot dla:
- Walidacji odpowiedzi API
- Wyjścia komponentów UI
- Plików konfiguracyjnych
- Generowania raportów"
  1. Utwórz skrypty testów obciążenia

    "Napisz testy obciążenia k6/JMeter dla naszego API:
    - Zwiększ do 1000 współbieżnych użytkowników
    - Testuj krytyczne endpointy
    - Monitoruj czasy odpowiedzi
    - Identyfikuj wąskie gardła"
  2. Testowanie stresu

    "Utwórz testy stresu aby znaleźć punkty łamania:
    - Stopniowo zwiększaj obciążenie
    - Monitoruj zasoby systemowe
    - Identyfikuj tryby awarii
    - Testuj zachowanie odzyskiwania"
  3. Testowanie skoków

    "Testuj nagłe skoki ruchu:
    - Symuluj scenariusz flash sale
    - Testuj auto-scaling
    - Monitoruj zachowanie kolejek
    - Weryfikuj spójność danych"
  4. Testowanie wytrzymałości

    "Uruchom testy długotrwałe:
    - Sprawdź wycieki pamięci
    - Monitoruj degradację wydajności
    - Testuj rotację logów
    - Weryfikuj procesy sprzątania"

Zestaw testów bezpieczeństwa

"Wygeneruj testy bezpieczeństwa dla naszej aplikacji:
1. Testy uwierzytelniania:
- Ochrona przed brute force haseł
- Zapobieganie porwaniu sesji
- Wygaśnięcie tokenów
- Uwierzytelnianie wieloczynnikowe
2. Testy autoryzacji:
- Kontrola dostępu oparta na rolach
- Weryfikacja własności zasobów
- Próby eskalacji uprawnień
- Ochrona endpointów API
3. Walidacja wejścia:
- Próby SQL injection
- Testowanie payloadów XSS
- Command injection
- Path traversal
4. Nagłówki bezpieczeństwa:
- Walidacja CSP
- Konfiguracja CORS
- Obecność nagłówków bezpieczeństwa"
"Ten test sporadycznie nie przechodzi. Pomóż mi:
1. Zidentyfikować potencjalne race conditions
2. Dodać odpowiednie wait/retry
3. Poprawić izolację testów
4. Dodać wyjście debugowania
5. Uczynić go deterministycznym"
"Utwórz workflow GitHub Actions dla testowania:
- Uruchamiaj na wszystkich PR
- Równoległe wykonanie testów
- Raportowanie pokrycia
- Benchmarki wydajności
- Powiadomienia o awariach"

Raporty pokrycia

"Wygeneruj raporty pokrycia testów pokazujące:
- Pokrycie linii
- Pokrycie gałęzi
- Pokrycie funkcji
- Podświetlenia niepokrytego kodu"

Raporty wydajności

"Utwórz raporty testów wydajności z:
- Trendami czasów odpowiedzi
- Metrykami przepustowości
- Analizą wskaźnika błędów
- Wykorzystaniem zasobów"

Analityka testów

"Zbuduj dashboard analityki testów:
- Trendy wykonania testów
- Śledzenie niestabilnych testów
- Analiza czasu trwania
- Wzorce awarii"

Metryki jakości

"Śledź metryki jakości testowania:
- Stosunek test-do-kod
- Wskaźnik ucieczki defektów
- Efektywność testów
- Trendy pokrycia"
.claude/commands/test-feature.md
Utwórz kompleksowe testy dla funkcji: $ARGUMENTS
1. Wygeneruj testy jednostkowe z pełnym pokryciem
2. Utwórz testy integracyjne dla endpointów API
3. Napisz testy E2E dla przepływów użytkownika
4. Dodaj benchmarki wydajności
5. Dołącz przypadki testowe bezpieczeństwa
6. Wygeneruj dokumentację testów
Używaj naszych standardowych frameworków testowych i podążaj za konwencjami zespołu.
.claude/commands/review-tests.md
Przejrzyj jakość testów dla: $ARGUMENTS
Sprawdź:
- Odpowiednie pokrycie
- Obsługę przypadków granicznych
- Właściwe mockowanie
- Przejrzyste opisy
- Wpływ na wydajność
- Obciążenie utrzymaniem
Zasugeruj ulepszenia i zidentyfikuj luki.

Lista kontrolna doskonałości testowania

✅ Pisz testy przed implementacją (TDD) ✅ Dąż do wysokiego pokrycia ale skupiaj się na jakości ✅ Testuj przypadki graniczne i warunki błędów ✅ Utrzymuj testy szybkie i deterministyczne ✅ Używaj znaczących opisów testów ✅ Utrzymuj dane testowe oddzielnie ✅ Uruchamiaj testy w potokach CI/CD ✅ Monitoruj i naprawiaj niestabilne testy ✅ Dokumentuj strategie testowe ✅ Przeglądaj i refaktoryzuj testy regularnie

Testowanie z Claude Code przekształca zapewnienie jakości z koniecznego zła w systematyczny, kompleksowy proces. Wykorzystując zdolność Claude do rozumienia kodu, generowania znaczących testów i iterowania na podstawie wyników, możesz budować zestawy testów, które wychwytują błędy wcześnie i dają pewność w kodzie. Kluczem jest przyjęcie rozwoju kierowanego testami, utrzymywanie wysokich standardów jakości testów i używanie inteligencji Claude do identyfikacji przypadków granicznych i scenariuszy, które możesz przegapić. Z tymi wzorcami Twoje testy stają się siatką bezpieczeństwa, która umożliwia szybki, pewny rozwój.