Opis
Umiejętności zdobywane podczas kursu:
- definiowanie asercji testujących oraz grup testów
- określanie faz testowania i potrzeb testowania na każdym etapie typowego projektu
- etapy refaktoryzacji kodu i testów
- określanie wydajności testów i wpływu metodyki TDD na kształt projektu
- testowanie aplikacji wielowątkowych
Cel
- stosowanie metodyki TDD w codziennej pracy programisty
- wykształcenie umiejętności programowania zgodnie z metodyką TDD
- stosowanie refaktoryzacji w praktycznych projektach
Grupa docelowa:
Kurs jest przeznaczony dla programistów którzy programują w języku C++ na poziomie średnio zaawansowanym lub zaawansowanym i chcą, lub są zobligowani do stosowania metodki TDD w swojej codziennej pracy. Szkolenie zakłada biegłe posługiwanie się mechanizmami języka programowania oraz
koncentruje się na aspektach praktycznych zastosowania biblioteki cppunit. Wybrana biblioteka służy wyłącznie ilustrowaniu założeń metodyki i nie ogranicza uniwersalności przyswajanych umiejętności i wiedzy.
Czas trwania szkolenia - 3 dni.
Oferujemy szkolenia w naszych ośrodkach w Warszawie, Wrocławiu, Krakowie, jak i w lokalizacjach wskazanych przez klienta.
W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl
Wymagania:
- biegłe posługiwanie się mechanizmami języka C++ na poziomie średnio zaawansowanym lub zaawansowanym
- umiejętność pracy w wybranym środowisku IDE
- uczestnictwo w co najmniej 1 projekcie informatycznym związanym z wytwarzaniem oprogramowania
Konspekt
- TDD wprowadzenie
- rola i cel działania metodyki TDD
- etapy procesu TDD
- zyski i straty związane z metodyką TDD
- Proces TDD w codziennej pracy programisty
- wykładnie wprowadzania TDD do pracy programisty
- warunki zakończenia etapów TDD i często popełnianie błędy
- poziomy testowania i warunki zakończenia testów na określonych poziomach
- Style programowania testów w TDD
- praktyczne implementowanie testów na przykładzie biblioteki cppunit
- dostępne asercje
- klasy i obiekty testujące
- projektowanie i implementowanie testów
- Testowanie stanu i przechowywania danych (ang. persistence)
- izolowanie testów
- transakcje
- specyfika jarzma testującego
- Testowanie aplikacji wielowątkowych
- separowanie funkcjonalności i wielowątkowości
- synchronizacja testów modułowych
- testy obciążeniowe obiektów pasywnych
- synchronizacja wątku testu i wątku aplikacji
- Refaktoryzacja kodu
- zakresy refaktoryzacji
- koszt i zyski refaktoryzacji
- Rodzaje refaktoryzacji kodu i testów
- refaktoryzacja w klasach i pomiędzy klasami
- klasyfikacje rodzajów refaktoryzacji
- narzędzia wspierające refaktoryzację