Testowanie architektury heksagonalnej

Produkty przemysłowe, zamiast być ogromnymi monolitami, stały się raczej zestawem małych, dobrze zintegrowanych, ale niezależnych aplikacji. Projektowanie automatyzacji testów w rozproszonym środowisku zawsze było wyzwaniem.

Podczas tego warsztatu chciałbym skupić się na:

  •  testach wewnątrz-aplikacyjnych- jakie rodzaje testów powinny być stosowane w jakich częściach naszego systemu?
  • testach między-aplikacyjnych – w jaki sposób architektura heksagonalna pomaga nam przy wprowadzaniu CDC (consumer driven contracts)?

Chciałbym rzucić nieco światła na odwieczną dyskusję na temat wykorzystywania w testach makiet (mocków), kiedy ma to sens i kiedy powinniśmy raczej ich unikać.
Pokażę, jak koncepcje projektowe oparte na domenach doskonale wpisują się w architekturę heksagonalną i jak to wszystko razem pomaga nam efektywnie zaprojektować nasze platformy i zestawy testowe.
Udzielimy odpowiedzi na pytanie „czym jest jednostka? I wreszcie, co nie mniej ważne, powiemy o tych najdroższych testach – integracyjnych testach między-aplikacyjnych. Architektura heksagonalna, jeśli zostanie wdrożona w połączeniu z dyscypliną związaną z CDC (consumer driven contracts), pozwala na przeprowadzenie takich testów z szybkością testów jednostkowych (każdy test trwa kilka milisekund).
Analiza statyczna kodu jest czymś koniecznym,, dlatego zajmę się również tą częścią. Niemniej jednak pójdziemy o krok dalej,
zamiast testować sam kod skoncentrujemy się na testowaniu czy zmiany są zgodne z architekturą aplikacji.
Myślę, że w zwinnym świecie, w którym różnica między testerem a programistą stopniowo zanika,
testowanie poprawności architektury oprogramowania wkrótce stanie się podobnie powszechne jak analiza wartości brzegowych.

Podczas warsztatów skupimy się na napisaniu usługi spring boot rest w stylu BDD/TDD. Uwzględnione zostaną następujące aspekty:

  •  CDC (consumer driven contracts), np. integracja usług z usługami;
  • Zautomatyzowane testy systemowe, np. testy end-2-end serwisów;
  • Zautomatyzowane testy integracyjne, np. integracja serwis – baza danych;
  • Towarzyskie testy jednostkowe;
  • Samotnicze testy jednostkowe;
  • Statyczna analiza kodu.

Maksymalna liczba uczestników: 10
Wymagania wstępne: Warsztat dla ekspertów z automatyzacji. Poziom zaawansowania kandydatów zostanie zweryfikowany za pomocą zadania przed warsztatami. Od jego wyniku zależeć będzie przyjęcie na warsztaty.

Język: angielski
Prowadzący:

Remigiusz Dudek

Remigiusz Dudek

Trener testowania zwinnego i członek dojrzałego zespołu Agile, od lat pracujący nad zapewnieniem jakości nie tylko oprogramowania, ale także procesu jego tworzenia.

Wraz z zespołem odbył podróż ze SCRUM do Kanban. Doświadczenie to pokazuje mu, że każda sztywna reguła ma swoją cenę i musi być nie tylko dogłębnie zrozumiana przez tych, którym została narzucona, ale także powinna być stale rewidowana przez tych, którzy ją narzucają.