Testy automatyczne i Test Driven Design w JavaScript
Czas trwania szkolenia:2 dni (16h)
Kod kursu:JS/TDD
Poziom zaawansowania:
O szkoleniu Testy automatyczne i Test Driven Design w JavaScript
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Programiści chcący pisać lepszy i testowalny kod oraz poznać techniki test first oraz design by specification
Wymagania
- Podstawowa znajomość JavaScript
Zalety
- Szkolenie skupia się na budowaniu praktycznych umiejętności na każdym poziomie testów - od testowania jednostkowego, przez integrację po testowanie funkcyjne e2e
- Podczas szkolenia uczestnicy poznają praktyczne techniki pracy i różne podejścia do testowania, w tym podejście TDD, czyli najpierw piszemy testy, a potem kod
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Zaznajomienie z narzędziami oraz metodyką tworzenia testów na każdym poziomie oraz według sprawdzonych podejść
Program
Wprowadzenie
- Dlaczego testować kod?
- Rodzaje aplikacji i testowanie
- Piramida testów - wady i zalety każdej warstwy
Testy statyczne
- Statyczna analiza kodu
- Narzędzia i Reguły
- Dobre praktyki
- Automatyzacja, wtyczki i githooks
Testy Jednostkowe
- Konfiguracja narzędzi
- Struktura i nazewnictwo testów
- Asercje Jasmine i Chai
- Raportowanie
- Zamienniki - Stubs i Mocks
- Testowanie Czasu - Asynchroniczność
- Wzorzec Arrange/Act/Assert
- Testy parametryczne i fuzztesty
Testy Integracyjne
- Testy współpracujących obiektów
- Test Driven Design - testy najpierw
- Cykl Red-Green-Refactor
- Wykrywanie regresji
- Pokrycie kodu testami
- Testowanie interfejsów
- Testowanie zapytań HTTP
- Metoda czarnej skrzynki - blackbox testing
- Programowanie kontraktowe
- Metoda migawek - Snapshot testing
- Tworzenie utrzymywalnych i stabilnych testów
Refaktoryzacja kodu
- Testowalne aplikacje
- Code smells, antywzorce a dobre praktyki
- Modularna aplikacja i enkapsulacja
- Refaktoryzacja do jednej odpowiedzialności
- Refaktoryzacja do otwarte zamknięte
- Refaktoryzacja do segregowanych kontraktów
- Refaktoryzacja do odwróconych zależności
- Testowanie z dependency injection
Testy End-to-End
- Omówienie koncepcji testów e2e
- Wady i zalety testowania w przeglądarce
- Narzędzia i środowisko e2e
- Porównanie Selenium, WebDriver, Protractor, Cypress i inne
- Behavior Driven Design/Specification by Example
- Testy akceptacyjne
- Scenariusze testowe
- Akcje asynchroniczne
- Mockowanie zależności
Testy a Ciągła Integracja i Dostarczanie (CD/CI)
- Automatyzacja Testów
- Synchronizacja z Repozytorium kodu
- Testy jako część Code Review
- Raportowanie wyników testów
- Omówienie Continuous deployment and delivery