Pierwsze dwa odcinki livestreama na moim kanale Youtube dotyczyły Test Driven Development w systemach embedded. W trakcie tych streamów pokazywałem przykładową implementację bufora cyklicznego i analizy przebiegów czasowych przy użyciu TDD.

Co omawiałem?

W opisach poszczególnych filmów możecie znaleźć odnośniki do ciekawszych momentów. Dotyczą one nie tylko implementacji, ale także tematów takich jak:

  • Konfiguracja środowiska
  • Jak przekonać zespół i managerów do TDD
  • Jaką przewagę daje TDD nad testowaniem na hardwarze
  • Unit testy a inne rodzaje testów
  • Refactoring, wpływ na projekt aplikacji, uwidocznianie decyzji

Poza ogólnymi zagadnieniami związanymi z TDD było też kilka tematów pobocznych:

  • Co to jest heartbeat – sposób na sprawdzenie czy drugi procesor żyje
  • Jak obsługiwać w kodzie fatal errory
  • Jak separować zależności HW od logiki aplikacji
  • O undefined behavior

Linki wykorzystane na nagraniach

W opisach na YT znajdziecie również linki do dodatkowych materiałów, wykorzystywanych bibliotek i innych zagadnień omawianych podczas live’a. Z najważniejszych rzeczy:

  • Wykorzystywałem framework testowy w C++ – Catch2
  • Kod ze streama znajdziecie na GitHubie
  • Jako przykład zastosowania produkcyjnego TDD w Embedded polecam projekt PW-SAT2, który znajdziecie na GitHubie
  • Jako książkę do nauki TDD polecam Jamesa Grenninga
  • Zagadnienia ze streama były też już poruszane na moim blogu

Czego nie omawiałem

Kilku ważnych zagadnień dotyczących TDD w Embedded jeszcze nie omówiłem. Są to przede wszystkim:

  • Frameworki do mockowania
  • Konfiguracja build systemu i Continuous Integration w realnym projekcie
  • TDD w Legacy Code – testy do istniejącego kodu i do nowych funkcjonalności, konfiguracja środowiska testowego dużej ilości zależności
  • Testowanie w trudnych przypadkach jak np. brak publicznego API testowanej funkcji, wstawki asemblerowe, nieskończone pętle (to akurat było na streamie ale się nie udało)

Kolejna transmisja

Możliwe, że jeszcze będę wracał do tych tematów w późniejszych odcinkach, ale na przyszły tydzień przygotowałem zupełnie nowy temat. Będzie to omówienie kompilacji na STM32, co się dzieje przed mainem, w linkerze, co nam generuje projekt IDE i jakie dodatkowe pliki tworzy nam kompilator. Zapraszam na żywo w środę 5 lutego o 20:00:

Dodatkowe materiały

Tymczasem jeżeli chcecie dowiedzieć się więcej o TDD to zapraszam do odwiedzenia następujących stron:

Szkoła Testów – Ola Kunysz publikuje dużo treści dotyczącej dobrych praktyk testowania. Znajdziecie tutaj wpisy na blogu, materiały wideo – w tym Rozmowy o Jakości z różnymi osobami z IT, filmy instruktażowe i kurs online. Materiały głównie skupiają się na Javie, ale większość dobrych praktyk nie zależy od technologii.

Wingman – blog Jamesa Grenninga, autora polecanej wyżej książki o TDD Embedded. Tutaj z kolei treści są skupione właśnie na systemach embedded. Możemy przeczytać wpisy o różnych specyficznych problemach. Wpisy są często uzupełnieniem materiałów z książki i w dużej części są już kierowane do zaawansowanych.

Oczywiście dużo treści znajdziecie również na moim blogu: