Zamiast uruchamiać ciężką machinę testów integracyjnych, możemy szybko i precyzyjnie zweryfikować, czy nasze API nadal spełnia oczekiwania konsumentów - nawet jeśli technologia po drugiej stronie jest zupełnie inna. W tym odcinku rozmawiamy o tym, jak wdrożyć to podejście, by uniknąć sytuacji, w której „za płotem pali się budynek sąsiada" z powodu jednej zmiany w kodzie.
Gościem tego odcinka jest Łukasz Reszke, konsultant i Software Engineer w firmie Arkency. Łukasz na co dzień zajmuje się ratowaniem systemów przed rozpadem oraz tchnięciem nowego życia w aplikacje legacy, głównie w ekosystemie Ruby on Rails. W swojej pracy łączy Domain Driven Design i Event Sourcing , ale jego drugą wielką inżynierską miłością - i głównym tematem naszej rozmowy - są testy kontraktowe.
Z tego odcinka dowiesz się:
Linki:
Rozdziały:
00:00 Wstęp i przedstawienie gościa
00:33 Kim jest Łukasz Reszke?
01:41 Czym są testy kontraktowe?
06:55 Pact - narzędzie technology agnostic
12:00 Filozofia Consumer-Driven
14:45 Odkrywanie API i Swagger
17:15 Rola Pact Brokera
17:59 Próg wejścia i czas nauki
21:32 Testowanie komunikacji asynchronicznej
22:10 Automatyzacja w CI/CD
23:50 Webhooki i Pending Contracts
28:33 Skala testów w organizacji
29:18 Kiedy uruchamiać testy?
30:53 Miejsce w Piramidzie Testów
31:54 Kiedy (nie) warto wdrażać Pact'a?
35:47 Rozszerzanie kontraktu (bezpieczne zmiany)
40:55 Breaking Changes i zmiana nazw pól
44:57 HTTP czy Eventy - od czego zacząć?
46:00 Najczęstsze błędy przy projektowaniu
50:30 Wpływ AI i LLM na testowanie
52:35 Odbiór wśród developerów
56:15 Provider States - kluczowy element