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

Kod: test-coop
Kategoria: Testowanie i QA
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 3 dni
Grupa docelowa: developerzy
testerzy
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Szkolenie ma na celu wprowadzenie konkretnych praktyk umożliwiających płynną współpracę pomiędzy testerami a programistami.

Przedstawione techniki mogą być stosowane również w celu umożliwienia współpracy na styku IT i biznesu.

Szkolenie rozpoczyna się od przyjęcia strategii testowania odpowiadając na pytanie: co testujemy (zakres) oraz w jakim celu (rola testu).

Rozpoczynamy od zapoznania z technikami Agile: Behavior Driven Development oraz Specification by Example raz z najlepszymi praktykami tworzenia wykonywalnych specyfikacji.

Drugiego dnia pracujemy w zespołach nad tworzeniem automatycznych testów akceptacyjnych do projektu szkoleniowego. Każdy zespół składa się z testerów i programistów (grających role twórców projektu testowego).

Programiści pracują nad warstwą automatyzacji tworząc Feature Objecty, które zajmują się interakcją z testowanym systemem - zarówno poprzez UI (Selenium) jak i API (REST). Celem programistów jest stworzenie wygodnych "agentów", na bazie których testerzy będą budować wyższe warsty testów.

Testerzy pracują nad warstwą Flow i Spec by Example. Testerzy ćwiczą deklaratywne formułowanie historyjek oraz narzędzia: JBehave/SpecFlow. Narzędzia te pozwalają testerom programować w języku naturalnym parametryzowalne, wykonywalne specyfikacje.

Warsztaty są wzbogacone o mechanikę grywalizacji: zespoły rywalizują ze sobą po kątem ilości znalezionych błędów i pokrycia systemu testami.

Materiały wstępne

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

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Współpraca programistów i testerów w całym procesie produkcji oprogramowania
  • Narzędzia automatyzacji
  • Zagadnienia architektury aplikacji wspierającej testowalność kodu
  • Najlepsze wzorce i praktyki
  • Aspekty Behavior Driven Development i Domain Driven Design

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. Podstawy testowania
    1. Strategiczne podejście do testowania - dwuwymiarowe ujęcie: CO x PO CO
      1. Zakres testów - co testujemy
        1. Jednostkowe
        2. Czym jest Unit w Unit testach?
        3. Integracyjne
        4. End 2 End komponentowe
        5. End 2 End systemowe
      2. Rola testów - po co testujemy
        1. Perfekcja działania szczegółów
        2. Akceptacyjne - spełnianie wymagań
        3. Testy funkcjonalne
        4. Testy bezpieczeństwa
        5. Testy wydajności
        6. Regresyjne - czy wciąż działa
    2. Automatyzacja procesu testowania
    3. Wybór strategii testowania w projekcie
    4. Strategia budowania piramidy testów
      1. Problem: im wyżej w warstwach tym więcej kombinacji możliwości i więcej zależności
      2. Mapowanie piramidy na warstwy systemu
  2. Architektura aplikacji otwartej na testowanie
    1. Rozwarstwienie logiki na aplikacyjną i domenową
      1. Wyłanianie Funktorów i Service Objectów
        1. Uniknięcie zależności technicznych
        2. Uniknięcie potrzeby Mockowania
    2. Piramida testów - jak ją interpretować w kontekście warstw
      1. Logika aplikacji - testy End 2 End
      2. Logika domenowa - testy jednostkowe
    3. Kiedy warto stosować zaślepki (Mock) a kiedy jest to zbędny koszt
  3. Behaviour Driven Development
    1. Zalety bliskiej współpracy z klientem
      1. Rola dostawcy, rola klienta w testach akceptacyjnych
    2. Tworzenie aplikacji podejściem BDD
    3. Techniki tworzenia scenariuszy akceptacyjnych
      1. Podejście deklaratywne zamiast imperatywnego
        1. Unikanie pisania "skryptów klikania"
        2. Raczej: "co ma być" niż "co trzeba zrobić"
      2. Odporność scenariuszy na zmiany systemu
      3. Wady kruchych scenariuszy
    4. Podejście dwuwarstwowe
      1. Warstwa Flow - User Story
      2. Warstwa Automatyzacji interakcji z systemem
    5. Narzędzia i wzorce
      1. JBehave/Spock/SpecFlow - najlepsze praktyki
        1. Integracja z Selenieum
      2. Page Object - antywzorzec powodujący powstawanie kruchych testów
      3. Feature Object - bezpieczna alternatywa dla Page Object
      4. Technika ujednolicania testów wykonywanych poprzez GUI i Servisy - Agenty
  4. Specification by Example
    1. Wzorce i techniki tworzenie wykonywalnych specyfikacji
      1. Pułapki
      2. Przykłady złych specyfikacji
    2. Podejście trójwarstwowe
      1. Warstwa Specyfikacji - cele biznesowe
      2. Warstwa Flow - User Story
      3. Warstwa Automatyzacji interakcji z systemem
    3. Narzędzia automatyzacji
  5. Architektura testów akceptacyjnych - podejście trójwarstwowe
    1. Strategia: metafora "stref zgniotu" z motoryzacji
      1. Tworzenie stabilnych testów, które nie rozpadają się podczas zmian systemu
      2. Integracja BDD i Spec by Example
    2. Warstwa automatyzacji - API dla testerów
      1. Interakcja z UI poprzez abstrakcję odporną zna zmiany ekranów
      2. Wzorce
        1. Agent
        2. Feature Object
      3. Narzędzia
        1. Selenium
        2. Remoting
    3. Warstwa Flow
      1. Scenariusze akceptacyjne BDD
      2. Nastawienie na kroki biznesowe zamiast na interakcje z UI
      3. Narzędzia
        1. JBehave/Spock/SpecFlow
    4. Warstwa Specyfikacji
      1. Nastawienie na cele biznesowe zamiast flow
      2. Narzędzia
        1. JBehave/Spock/SpecFlow
    5. Najlepsze praktyki
      1. Given i Then - unikamy UI
        1. Operowanie na API systemu
        2. Backdoors na potrzeby testów
      2. When - interakcja z UI
    6. Archetypowe role aktorów


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.

Zapytaj o 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ń