1.2. About Agenda

  • Working hours 9:00 - 17:00

  • Lunch break 13:15 - 14:00

  • 10 min break every 1.5 hour

1.2.1. Day 1

  • 10 min - Intro: welcome message, course introduction, agenda, spreadsheet

  • 60 min - Setup: IDE, Git, repository, Python, doctest

  • 30 min - Placement test: evaluating participant skills

  • 60 min - Placement test: live coding solution, IDE demonstration, ie. debugging, working with VCS, refactoring, quick documentation, type annotations, function signatures

  1. Rodzaje testów na przykładach:

    • Jednostkowe

    • Dymne

    • Analiza statyczna

    • Mutacyjne

    • Regresyjne

    • Funkcjonalne

    • Interfejsu

    • Obciążeniowe

    • Integracyjne

    • Bezpieczeństwa

  2. Test Driven Development:

    • Test first vs. test last development

    • Mock vs. Stub

    • Problem precyzji liczb float (IEEE-754)

    • Testowanie wartości pseudolosowych oraz pojęcie ziarna losowości

    • Framework unittest vs. doctest

    • Uruchamianie testów w środowisku IDE (PyCharm) oraz z konsoli

    • Demonstracja TDD

    • Samodzielny projekt TDD (kilka iteracji)

    • Demonstracja TDD oraz opcji refaktoringu w środowisku IDE (PyCharm)

    • Testy aplikacji asynchronicznych

  3. Automatyzacja testów:

    • Ekosystem narzędzi deweloperskich

    • Continuous Integration

    • Continuous Delivery

    • Continuous Deployment

    • Definiowanie Pipeline CI/CD

    • Automatyzacja testów na środowisku testowym

    • Zarządzanie zależnościami aplikacji

  4. Refaktoryzacja:

    • Rename

    • Extract Method

    • Extract Superclass

    • Inline

    • Introduce Variable

    • Introduce Constant

    • Introduce Field

    • Introduce Parameter

    • Pull Members Up

    • Push Members Down

1.2.2. Day 2

  • 20 min - Dragon: introduction to Dragon project and sprints

  • 30 min - Dragon v1: programming

  • 15 min - Dragon v1: code review

  • 30 min - Dragon v1: solution, live coding, TDD, debugging

  • 30 min - Dragon v2: programming

  • 15 min - Dragon v2: code review

  • 30 min - Dragon v2: solution, live coding, TDD, refactoring

  • 30 min - Dragon v3: programming

  • 15 min - Dragon v3: code review

1.2.3. Day 3

  • 30 min - Dragon v3: solution, live coding, TDD, refactoring

  • 30 min - Dragon v4: programming

  • 15 min - Dragon v4: code review

  • 30 min - Dragon v4: solution, live coding, TDD, refactoring

  • 30 min - Dragon v5: programming

  • 15 min - Dragon v5: code review

  • 30 min - Dragon v5: solution, live coding, TDD, refactoring

  • 25 min - Dragon: closing remarks