Kategoria: PHP, WWW, HTML/CSS, CMS, front-end
O szkoleniu
Testy automatyczne pozwalają zmieniać aplikację bez obawy, że coś się po cichu zepsuje. Na szkoleniu uczymy pisać testy w PHPUnit: od pierwszego testu jednostkowego, przez dublery testowe i testy integracyjne z bazą danych, po pracę metodą TDD i uruchamianie testów w procesie CI. Ćwiczymy na przykładowej aplikacji, a nie na oderwanych przykładach z kalkulatorem.
Na szkoleniu nauczysz się:
- pisać czytelne testy jednostkowe w PHPUnit i porządkować je w projekcie,
- dobierać właściwe narzędzie: mock, stub albo prawdziwa zależność,
- testować kod korzystający z bazy danych, plików i zewnętrznych API,
- projektować kod tak, żeby dało się go łatwo testować,
- pracować metodą TDD przy konkretnej funkcjonalności,
- uruchamiać testy i raport pokrycia kodu automatycznie, w procesie CI.
Szkolenie opiera się na PHP i PHPUnit bez konkretnego frameworka, więc przydaje się niezależnie od tego, czy projekt stoi na Laravelu, Symfony, czy na własnym kodzie. Pokazujemy też, jak generować testy z pomocą asystentów AI i jak ocenić, czy wygenerowany test naprawdę coś sprawdza.
Szkolenie jest dla programistów PHP na różnych poziomach doświadczenia, liderów zespołów wprowadzających testy w projekcie, a także testerów automatyzujących, którzy współpracują z zespołem PHP. Jeśli testy mają przede wszystkim zabezpieczyć aktualizację starszego systemu, zobacz też szkolenie Modernizacja aplikacji PHP.
Czas trwania
2 dni
Program
- Po co testy i jakie testy
- piramida testów: testy jednostkowe, integracyjne i funkcjonalne
- co i ile testować – testy, które pomagają, i testy, które przeszkadzają
- PHPUnit – podstawy
- instalacja przez Composer, konfiguracja projektu (phpunit.xml)
- struktura testu, asercje, konwencje nazewnicze
- przygotowanie i sprzątanie stanu (setUp, tearDown)
- dostawcy danych (data providers), testowanie wyjątków
- Dublery testowe
- stub, mock, fake – czym się różnią i kiedy którego użyć
- tworzenie dublerów w PHPUnit
- pułapki nadmiernego mockowania
- Kod, który da się testować
- wstrzykiwanie zależności i interfejsy
- wydzielanie efektów ubocznych: czas, losowość, pliki, sieć
- pierwsze kroki z testami w starszym kodzie
- Testy integracyjne
- testy z bazą danych: przygotowanie danych, izolacja testów
- testowanie komunikacji z zewnętrznymi API
- testy endpointów HTTP aplikacji
- TDD w praktyce
- cykl red – green – refactor na przykładowej funkcjonalności
- kiedy TDD pomaga, a kiedy lepiej pisać testy po kodzie
- Jakość testów
- pokrycie kodu – jak je mierzyć i jak nie dać się mu oszukać
- rzut oka na testy mutacyjne (Infection)
- rzut oka na framework Pest
- Testy z pomocą AI
- generowanie szkieletów testów i przypadków brzegowych z asystentem AI
- ocena i poprawianie wygenerowanych testów
- Testy w procesie CI
- automatyczne uruchamianie testów przy każdej zmianie w repozytorium
- raporty wyników i pokrycia kodu
Dla grup na zamówienie możemy pokazać specyfikę testów w Laravelu lub Symfony, testy end-to-end aplikacji webowej albo wprowadzanie testów do dużego, starszego projektu – a program rozszerzyć do 3 dni.
Training also available in English .
Przeznaczenie i wymagania
Szkolenie jest przeznaczone przede wszystkim dla:
- programistów PHP, którzy chcą zacząć pisać testy albo robić to lepiej,
- liderów zespołów wprowadzających testy automatyczne w projekcie,
- testerów automatyzujących współpracujących z zespołem PHP.
Od uczestników oczekujemy:
- praktycznej znajomości PHP i podstaw programowania obiektowego (klasy, interfejsy),
- podstawowej znajomości Composera i Gita.
Wcześniejsze doświadczenie z testami automatycznymi nie jest wymagane.
Certyfikaty
Uczestnicy szkolenia otrzymują imienne certyfikaty sygnowane przez ALX.