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
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ą.