Tworzenie i testowanie aplikacji z użyciem Test Driven Development (TDD) w Spock (lub JUnit 5)

Tytuł: Tworzenie i testowanie aplikacji z użyciem Test Driven Development (TDD) w Spock (lub JUnit 5)
Kod: craft-test-TDD
Kategoria: Testowanie automatyczne
Forma: 40% wykłady / 60% warsztaty
Czas trwania: 3-4 dni
Odbiorcy: developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Szkolenie prezentuje techniki tworzenia i testowania aplikacji z użyciem Test Driven Development (TDD).

Dodatkowo uczestnicy zdobędą/rozszerzą wiedzę dotyczącą programowania w parach, skutecznego refaktoringu, separacji zależności (mockowania) czy testowania integracyjnego.

Materiały wstępne

Przed szkoleniem możesz zapoznać się z serią naszych artykułów: Testowanie automatyczne.

Wyróżniki szkolenia

  • nacisk na praktyczne "poczucie" tematu
  • efektywne techniki testowania
  • dobre praktyki i wzorce
  • nowoczesne narzędzia: Spock lub JUnit 5

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Jednostkowe testowanie kodu - niezbędnik do pisania dobrych testów w TDD
    1. dobre testy jednostkowe - FIRST
    2. struktura testów jednostkowych (given-when-then/arrange-act-assert)
    3. nazewnictwo testów (metod testowych)
    4. konstrukcje wspierające testowalność kodu (m.in. dziedziczenie -> kompozycja, małe klasy, wstrzykiwanie zależności)
    5. antywzorce dla testowalnego kodu (m.in. singletony, elementy statyczne, pola i metody final)
    6. zadania frameworku testowego
    7. formułowanie naturalnie wyglądających asercji (AssertJ)
    8. ćwiczenia praktyczne (w trakcie - przeplatane z teorią)
  2. Spock Framework - pisanie testów szybciej, zwięźlej i czytelniej (alternatywnie JUnit 5)
    1. nowa jakość w testowaniu kodu - dlaczego warto poznać Spocka
    2. konstrukcje i techniki upraszczające kod testowy (Groovy w pigułce na potrzeby pisania testów)
    3. podział testu na bloki/sekcje
    4. testy parametryzowane
    5. testowanie wyjątków
    6. warunkowe wykonywanie testów
    7. inicjowanie i sprzątanie w testach
    8. porównanie trio JUnit/Mockito/AssertJ ze Spockiem
    9. efektywne przejście w projekcie z JUnit/TestNG na Spocka
    10. ćwiczenia praktyczne (w trakcie - przeplatane z teorią)
  3. Test Driven Development
    1. historia TDD
    2. podstawowe założenia
    3. cykl red-green-refactor
    4. przejrzysta struktura testu
    5. wybór kolejnych funkcji do zaimplementowania
    6. sprawne uruchamianie testów z IDE (przydatne wtyczki, skróty klawiaturowe, ciągłe uruchamianie testów)
    7. ćwiczenia praktyczne z TDD w formie Kata/Coding Dojo
    8. korzyści ze stosowania TDD
  4. Bezpieczny refaktoring
    1. cel refaktoringu
    2. przydatne przekształcenia kodu
    3. automatyczny refaktoring w IDE z użyciem skrótów klawiaturowych (Idea lub Eclipse)
    4. ćwiczenia praktyczne - Golf refaktoryzacyjny
  5. Stosowanie separacji od obiektów współpracujących przy TDD
    1. potrzeba, kiedy i dlaczego warto
    2. testowe zastępniki obiektów współpracujących
    3. mockowanie ze Spock Framework
    4. mockowanie z Mockito (mocki w Spocku mają swoje ograniczenia)
    5. ćwiczenia praktyczne (w trakcie - przeplatane z teorią)
  6. TDD i testowanie integracyjne (Spring Framework)
    1. dlaczego tylko testy jednostkowe nie wystarczą
    2. wsparcie w Spock/JUnit
    3. konfiguracja i zarządzanie kontekstem Springa
    4. wstrzykiwanie zależności
    5. odcinanie zależności w kontekście Springa (wstrzykiwanie zależności testowych, w tym mocków)
    6. ręczne tworzenie kontekstu w teście (do testowania specyficznych przypadków)
    7. cache'owanie kontekstu między testami (i problemy z tym związane)
    8. wydzielanie wspólnej konfiguracji dla wielu testów
    9. ćwiczenia praktyczne (w trakcie - przeplatane z teorią)
  7. Test Driven Development - dobre praktyki i techniki unikania typowych problemów
    1. małe kroki a efektywność pracy
    2. TDD i programowanie w parach (ang. pair programming)
    3. test-first vs test-last
    4. wykorzystanie TDD do pracy nad dobrym designem systemu
    5. wybór właściwego poziomu odcięcia zależności
    6. wykorzystanie TDD/BDD na poziomie testowania akceptacyjnego (wstęp)
    7. wprowadzenie TDD w organizacji
    8. zestaw ćwiczeń praktycznych uwypuklających typowe problemy spotykane przy tworzeniu kodu produkcyjnego i testów z pomocą TDD oraz pokazanie sposób ich unikania/rozwiązywania
  8. Testowanie - zaawansowane zagadnienia (podzbiór ustalany indywidualnie)
    1. techniki testowania asynchronicznych wywołań (Awaitility, Spock)
    2. badanie jakości testów z testowaniem mutacyjnym (PIT)
    3. testowanie kodu wykorzystującego mechanizm feature toogle
    4. techniki przyśpieszania testów
    5. uproszczenie niektórych aspektów testowania z Java 8
    6. testowanie z losowymi danymi wejściowymi
      1. powstarzalność w testach z danymi losowymi
      2. property based testing - QuickCheck
    7. zaawansowany Spock
      1. tworzenie własnych rozszerzeń
    8. miarodajne microbeanchmarki
      1. kiedy i dlaczego warto stosować
      2. naiwne podejście i jego znikoma przydatność
      3. optymalizacja kodu w JVM
      4. ćwiczenia praktyczne z JMH (Java Microbenchmarking Harness)
    9. testowanie reaktywnego kodu RxJava
    10. system legacy bez testów - jak do tego podejść?
    11. testowanie architektury Event-Driven
    12. testowanie architektury mikroserwisów - TDD na poziomie architektury
    13. consumer-Driven-Contracts
    14. testowanie projektów stosujących Event Sourcing


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.