Tworzenie i testowanie aplikacji z użyciem Test-Driven Development (Java/C#)
Opis
Szkolenie Test-Driven Development całkowicie zmienia myślenie programistów w związku z podejściem do programowania. Nie dość, że zaczynamy tworzyć testy automatyczne, które tworzą sieć bezpieczeństwa dla tworzonego kodu, to jeszcze testy powstają przed napisaniem docelowego rozwiązania. Godziny czasu spędzone na debugowaniu lub tworzeniu metod, które nie są nikomu do niczego potrzebne, uczestnicy szkolenia będą mogli przeznaczyć na rzeczywisty rozwój systemu. Jednak TDD nie jest prostym narzędziem, łatwo przesadzić z tworzeniem testów, testować nie to co trzeba i na tyle je skomplikować, że staną się one większym obciążeniem niż pomocą. Dlatego potrzeba dobrych, sprawdzonych praktyk, które dostarczą konkretnych wytycznych na temat tego: jak strukturyzować testy, co powinny a czego nie powinny zawierać, jak używać mocków, stubów i fake’ów. To wszystko znajdziesz w trakcie szkolenia Test-Driven Development, a do tego dowiesz się jak tworzyć testy integracyjne oraz akceptacyjne z użyciem Behaviour-Driven Development. Dzięki szkoleniu z TDD będziesz wiedział jak praktycznie użyć zdobytą wiedzę.
DLA KOGO
Programiści Java, C#, C++ lub innego języka programowania (według potrzeb)
Wymagane umiejętności
- Uczestnik zna konkretny język programowania na poziomie szkoleń JAVA lub NC#
- Uczestnik zna programowanie obiektowe na poziomie szkolenia POB
Szkolenie zamknięte jest prowadzone głównie w językach Java i C#. Po wcześniejszych ustaleniach szkolenie może być zrealizowane w innych językach np. PHP, C++, Python.
Podstawowy program
Moduł. 1
Wprowadzenie do TDD
Moduł. 2
xUnit jako narzędzie testowania
Moduł. 3
Wzorce testowania xUnit
Moduł. 5
Refaktoring w kontekście TDD
Moduł. 7
Mockito/Moq jako narzędzie do tworzenia mocków
Moduł. 8
Testowanie end-to-end
Moduł. 9
Behaviour-Driven Development
Moduł. 10
Testowanie integracyjne
Moduł. 11
Testowanie z udziałem komponentów zewnętrznych
Moduł. 12
Warsztat praktyczny
Szczegółowy program
Moduł. 1
Wprowadzenie do TDD
- Cykl programowania
- Cykl TDD red-green-refactor
- Programowanie przyrostowe
- Zasady tworzenia testów jednostkowych
- Przykład pracy z użyciem TDD
Moduł. 2
xUnit jako narzędzie testowania
- Tworzenie testów jednostkowych z użyciem xUnit
- Wybrane atrybuty konfiguracji xUnit
- @Test [Test]
- @Before [SetUp]
- @After [TearDown]
- @Expected [ExpectedException]
- @Ignore [Ignore]
- Wybrane asercje xUnit
- Assert.that
- Testowanie pozytywne
- Testowanie negatywne
- Testowanie wyjątków
- Wzorce TDD
- Co testować
- Testowanie stanu
- Testowanie zachowania
Moduł. 3
Wzorce testowania xUnit
- Asercja stanu końcowego
- Asercja pomocnicza
- Asercja delta
- Asercja własna
- Asercja interakcji
- Metoda fabryki
- Klasy pomocnicze
- Matka obiektów
- Testy parametryzowane
- Autopodstawianie
- Uprzywilejowany dostęp
- Dodatkowy konstruktor
- Podklasa na potrzeby testu
Moduł. 4
Zasady TDD
- Strategie testowania
- Ogół - szczegół
- Znane - nieznane
- Ścieżka pozytywna – negatywna
- Strategie implementacji
- Faking it
- Traingulation
- Obvious implementation
- Pojęcia TDD
- Fixture
- Test doubles (Stubs/Fakes/Mocks)
- Testowanie stanu i interakcji
Moduł. 5
Refaktoring w kontekście TDD
- Refaktoryzacje przydatne w TDD
- Elementy refaktoryzacji do wzorców projektowych
- Paradygmaty testowalnego kodu
- Refaktoryzacja testów jednostkowych
- Usuwanie redundancji w testach
Moduł. 6
Testowalny kod
- Kompozycja i dziedziczenie a TDD
- Elementy statyczne i singletony
- Izolowanie i wstrzykiwanie zależności
- Architektura warstwowa
Moduł. 7
Mockito/Moq jako narzędzie do tworzenia mocków
- Cykl życia mocka w Mockito/Moq
- Testowanie zachowania
- Stubbing
- Weryfikacja ilości wywołań
Moduł. 8
Testowanie end-to-end
- Testowanie akceptacyjne
- Testowanie end-to-end
- Jakość zewnętrzna i wewnętrzna
- Dobre praktyki testowania end-to-end
Moduł. 9
Behaviour-Driven Development
- Wprowadzenie do BDD
- Testowanie zachowania
- BDD a User Stories
- Specyfikacja poprzez przykłady
Moduł. 10
Testowanie integracyjne
- Testowanie dostępu do danych
- Narzędzie xDbUnit
- Testowanie transakcji
Moduł. 11
Testowanie z udziałem komponentów zewnętrznych
- Strategie testowania z udziałem komponentów zewnętrznych
- Warstwa adapterów
Moduł. 12
Warsztat praktyczny
- Inkrementacyjny rozwój przykładowego systemu z użyciem TDD