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
Grupa docelowa: developerzy
testerzy

Szkolenie ma na celu wprowadzenie konkretnych praktyk umożliwiających płynną współpracę pomiędzy telstarami 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

Pobierz program w formacie PDF
  1. Podstawy testowania
    1. Strategiczne podejście do testowania - dwuwymiarowe ujęcie: CO x PO CO
      1. Zakres testów - co testujemy
          JednostkoweCzym jest Unit w Unit testach?IntegracyjneEnd 2 End komponentoweEnd 2 End systemowe
      2. Rola testów - po co testujemy
          Perfekcja działania szczegółówAkceptacyjne - spełnianie wymagańTesty funkcjonalneTesty bezpieczeństwaTesty wydajnościRegresyjne - 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
          Uniknięcie zależności technicznychUniknię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
          Unikanie pisania "skryptów klikania"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
          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
          AgentFeature Object
      3. Narzędzia
          SeleniumRemoting
    3. Warstwa Flow
      1. Scenariusze akceptacyjne BDD
      2. Nastawienie na kroki biznesowe zamiast na interakcje z UI
      3. Narzędzia
          JBehave/Spock/SpecFlow
    4. Warstwa Specyfikacji
      1. Nastawienie na cele biznesowe zamiast flow
      2. Narzędzia
          JBehave/Spock/SpecFlow
    5. Najlepsze praktyki
      1. Given i Then - unikamy UI
          Operowanie na API systemuBackdoors na potrzeby testów
      2. When - interakcja z UI
    6. Archetypowe role aktorów

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ń