Techniki efektywnego testowania kodu dla programistów Java (Spock

Podobne dokumenty
Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Szkolenie wycofane z oferty

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

SZKOLENIE TWORZENIE SYSTEMÓW

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

METODY PROGRAMOWANIA

Architektura mikroserwisów na platformie Spring IO

Behavior Driven Development (BDD)

Program szkolenia: JavaScript Craftsmanship

Java Persistence API - zagadnienia zaawansowane

Wprowadzenie do Behaviordriven

Program szkolenia: Jenkins - Continuous Integration

Scala - programowanie obiektowo-funkcyjne

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Wprowadzenie do testów jednostkowych. Marcin Dziedzic, Wiktor Żołnowski

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Michał Olejnik. 22 grudnia 2009

Program szkolenia: Continuous Integration i Git

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

Zaawansowane programowanie w języku C++

Program szkolenia: REST i Microservices w PHP

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Praca z kodem legacy : strategie, naprawa błędów, refaktoryzacja oraz

Platformy Technologiczne

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Program szkolenia: Symfony, nowoczesny framework PHP

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

TWORZENIE I TESTOWANIE TEST-DRIVEN DEVELOPMENT APLIKACJI Z UŻYCIEM KOD: TDD

Programowanie zespołowe

Program szkolenia: Zaawansowane programowanie w C++

Programowanie.NET - kurs zaawansowany

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

REFERAT PRACY DYPLOMOWEJ

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Programowanie kontraktowe w Javie

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Projektowanie obiektowe oprogramowania Testowanie oprogramowania Wykład 13 Wiktor Zychla 2014

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

Testowanie aplikacji JAVA Laboratorium 8 (Tabele w scenariuszach JBehave. Projekt z podstaw BDD oraz atrap.)

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g

Podstawy frameworka Spring

Wzorce architektoniczne

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Szkolenie: Automatyzacja testowania

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Informatyzacja przedsiębiorstw WYKŁAD

Wykład Ćwiczenia Laboratorium Projekt Seminarium

PRZEWODNIK PO PRZEDMIOCIE

Programowanie aspektowe na przykładzie AspectJ JUG Poznań, Jacek Pospychała

Program szkolenia: Wzorce projektowe w C++

Automatyczne testowanie aplikacji Android

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Test-Driven Development

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

Testowanie oprogramowania

Continuous Integration i jakość kodu. Michał Prajs

Programowanie Zespołowe

Testowanie mutacyjne

Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium

IT Camp Junior Java Developer. Cel kursu

Programowanie poprzez testy z wykorzystaniem JUnit

Podstawy modelowania programów Kod przedmiotu

Wymagania: umiejętność modelowania systemów informatycznych z wykorzystaniem UML. umiejętność definiowania i kreatywnego rozwiązywania problemów

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Informatyzacja przedsiębiorstw

Załącznik 2 utworzenie projektu

KARTA PRZEDMIOTU. Tworzenie bezpiecznego kodu D1_13

Receptury - niezbędnik projektanta i architekta

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Szkolenie: Podstawy automatyzacji z Selenium IDE

Transkrypt:

Program szkolenia: Techniki efektywnego testowania kodu dla programistów Java (Spock/JUnit) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Techniki efektywnego testowania kodu dla programistów Java (Spock /JUnit) craft-test-dev Testowanie automatyczne developerzy 3-4 dni 50% wykłady / 50% warsztaty Podczas szkolenia uczestnicy poznają techniki programowania i testowania ułatwiające codzienną pracę z kodem. Podczas warsztatów praktycznych uczestnicy posiądą umiejętność pisania i utrzymywania testów oraz pracy techniką Test-Driven Development. Przedstawiona propozycja programu przy szerokim potraktowaniu wszystkich zagadnień przekracza zaproponowane ramy czasowe. Wcześniej przeprowadzone szkolenia potwierdzają, iż różne elementy szkolenia mogą być mnie lub bardziej istotne dla konkretnej grupy uczestników w zależności od specyfiki pracy, doświadczenia, czy posiadanej już znajomości rozwiązań. Dlatego też po zaakceptowaniu oferty konieczne będzie ustalenie nacisku, jaki ma być położony na poszczególne części szkolenia. Materiały wstępne Przed szkoleniem możesz zapoznać się z serią naszych artykułów: Testowanie automatyczne. Zalety szkolenia: Tworzenie skutecznych i łatwych w utrzymaniu testów automatycznych Najlepsze wzorce i praktyki Sensowne testowanie integracyjne (Opcjonalnie) Techniki pracy z kodem legacy Strona: 1/5

Szczegółowy program: 1. Jednostkowe testowanie kodu 1.1. Dlaczego warto automatycznie testować kod 1.2. Dobre testy jednostkowe - FIRST 1.3. Struktura testów jednostkowych (given-when-then/arrange-act-assert) 1.4. Nazewnictwo testów (metod testowych) 1.5. Konstrukcje wspierające testowalność kodu (m.in. dziedziczenie -> kompozycja, małe klasy, wstrzykiwanie zależności) 1.6. Antywzorce dla testowalnego kodu (m.in. singletony, elementy statyczne, pola i metody final) 1.7. Zadania frameworku testowego 1.8. Formułowanie naturalnie wyglądających asercji (AssertJ) 1.9. Ćwiczenia praktyczne (w trakcie - przeplatane z teorią) 2. Spock Framework - pisanie testów szybciej, zwięźlej i czytelniej (ew. JUnit) 2.1. Nowa jakość w testowaniu kodu - dlaczego warto poznać Spocka 2.2. Konstrukcje i techniki upraszczające kod testowy (Groovy w pigułce na potrzeby pisania testów) 2.3. Podział testu na bloki/sekcje 2.4. Testy parametryzowane 2.5. Testowanie wyjątków 2.6. Warunkowe wykonywanie testów 2.7. Inicjowanie i sprzątanie w testach 2.8. Porównanie trio JUnit/Mockito/AssertJ ze Spockiem 2.9. Ćwiczenia praktyczne (w trakcie - przeplatane z teorią) 3. Test Driven Development 3.1. Historia TDD Strona: 2/5

3.2. Podstawowe założenia 3.3. Cykl red-green-refactor 3.4. Przejrzysta struktura testu 3.5. Wybór kolejnych funkcji do zaimplementowania 3.6. Sprawne uruchamianie testów z IDE (przydatne wtyczki, skróty klawiaturowe) 3.7. Ćwiczenia praktyczne z TDD w formie Kata/Coding Dojo 3.8. Korzyści ze stosowania TDD 4. Bezpieczny refaktoring 4.1. Przydatne przekształcenia kodu (refaktoring) 4.2. Automatyczny refaktoring w IDE z użyciem skrótów klawiaturowych (Idea lub Eclipse) 4.3. Ćwiczenia praktyczne 5. Separacja od obiektów współpracujących 5.1. Potrzeba, kiedy i dlaczego warto 5.2. Testowe zastępniki obiektów współpracujących (ang. test doubles) 5.3. Mockowanie ze Spock Framework 5.4. Mockowanie z Mockito (mocki w Spocku mają swoje ograniczenia) 5.5. Ćwiczenia praktyczne (w trakcie - przeplatane z teorią) 6. Testowanie integracyjne aplikacji opartej o Spring Framework 6.1. Dlaczego tylko testy jednostkowe nie wystarczą 6.2. Wsparcie w JUnit/TestNG/Spock 6.3. Konfiguracja i zarządzanie kontekstem Springa 6.4. Wstrzykiwanie zależności 6.5. Odcinanie zależności w kontekście Springa (wstrzykiwanie zależności testowych, w tym mocków) 6.6. Ręczne tworzenie kontekstu w teście (do testowania specyficznych przypadków) 6.7. Cache'owanie kontekstu między testami (i problemy z tym związane) Strona: 3/5

6.8. Wydzielanie wspólnej konfiguracji dla wielu testów 6.9. Ćwiczenia praktyczne (w trakcie - przeplatane z teorią) 7. Testowanie aplikacji Spring MVC 7.1. Testowanie kontrolerów w Spring MVC bez kontenera serwletów 7.2. Pełne testy integracyjne z kontenerem serwletów 7.3. Mockowanie wywołań do zewnetrznych serwisów (WireMock) 7.4. Testowanie asynchronicznych wywołań HTTP 7.5. Ćwiczenia praktyczne (w trakcie - przeplatane z teorią) 8. Testowanie z bazą danych 8.1. Rozwiązywanie problemów z zależnościami między testami 8.2. Zarządzanie transakcjami bazodanowymi w testach 8.3. Utrzymywanie zestawu danych testowych 8.4. Testowanie z bazą danych w pamięci 8.5. Kiedy warto mockować warstwę dostępu do bazy danych 8.6. Ćwiczenia praktyczne (w trakcie - przeplatane z teorią) 9. Wybrane tematy z testowania akceptacyjnego 9.1. Wstęp do BDD (Behavior-Driven Development) 9.2. Kryteria akceptacyjne (w Cucumber lub JBehave) 9.3. Techniczne aspekty testowania GUI 9.3.1. Web Driver/Selenium 2 + GEB 9.3.2. Testowanie asynchronicznych elementów strony 9.3.3. Łatwiejsze utrzymywanie testów GUI z Page Object Pattern 9.4. Architektura microserwisów i consumer driven contract (AccuREST) 9.5. Ćwiczenia praktyczne (w trakcie - przeplatane z teorią) 10. Praca z odziedziczonym kodem (legacy code) Strona: 4/5

10.1. Czym jest, dlaczego powstaje i jak temu przeciwdziałać 10.2. Techniki rozbijania zależności 10.3. Techniki testowania 10.4. Techniki refaktoryzacji 10.5. Przydatne narzędzia 10.6. Ćwiczenia praktyczne 11. Zaawansowane zagadnienia 11.1. Techniki testowania asynchronicznych wywołań (Awaitility, Spock) 11.2. Badanie jakości testów z testowaniem mutacyjnym (PIT) 11.3. Techniki przyśpieszania testów 11.4. Uproszczenie niektórych aspektów testowania z Java 8 11.5. Zaawansowany Spock 11.5.1. Tworzenie własnych rozszerzeń Strona: 5/5