Szkolenie: Testy automatyczne i Test Driven Development (TDD) w JavaScript
Testowanie automatyczne pozwala szybciej dostarczać oprogramowanie, przy tym unikając typowych błędów oraz regresji - dzięki temu programista może poświecić więcej czasu na dostarczanie funkcjonalności, a nie szukanie błędów
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:2 dni (16h)
Kod kursu:JS/TDD
Testy automatyczne i Test Driven Development (TDD) w JavaScript
Cele szkolenia
Zaznajomienie z narzędziami oraz metodyką tworzenia testów na każdym poziomie oraz według sprawdzonych podejść
Dla kogo?
Programiści chcący pisać lepszy i testowalny kod oraz poznać techniki test first oraz design by specification
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
Wymagania
Podstawowa znajomość 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
Program szkolenia
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
BDD - Behavior Driven Development / 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