Moduł testów automatycznych, czyli niezastąpione narzędzie stworzone w nurcie DevOps
Autor
Agnieszka Mazek
Dlaczego to robimy?
Często podkreślamy skalę działania IT PZU, dlatego warto powiedzieć sobie jasno - mamy jeden z największych Software House'ów na rynku finansowym, który liczy ponad 1000 osób. W takiej skali musimy działać szybko przy jednoczesnym zmniejszaniu ryzyka błędów i regresji. Trudno więc nie zauważyć, że model testów automatycznych to kluczowy komponent w procesie wytwarzania oprogramowania w PZU. Umożliwia on naszym inżynierom efektywne i systematyczne sprawdzanie funkcjonalności i jakości aplikacji. Automatyzacja testów pozwala na natychmiastowe wykrywanie błędów, co znacząco skraca cykl developmentu produktu oraz poprawia jego jakość. Jednocześnie zespoły mogą skupić się na bardziej złożonych działaniach, dzięki eliminacji konieczności ręcznego wykonywania powtarzalnych testów. Wykorzystując skrypty testowe, które mogą być uruchamiane wielokrotnie bez konieczności manualnej (nudnej i powtarzalnej) interwencji, zautomatyzowaliśmy powtarzalne i czasochłonne testy regresyjne, a także zapewniliśmy spójność i powtarzalność testów.
Moduł Testów Automatycznych jest niezastąpionym narzędziem w transformacji DevOps, w której jesteśmy, a dodatkowo wspiera procesy CI /CD w naszych systemach. Scenariusze testów stanowią też udokumentowanie wymagań biznesowych. Śmiało możemy powiedzieć, że nasz Moduł Testów Automatycznych to nasza autorska recepta na „miej to automatycznie”.
Dlaczego to robimy?
Wyzwaniem w organizacji było napisanie framework’a, który będzie czytelny dla biznesu i naszych narzędzi, a dodatkowo zaopiekuje potrzeby wielu systemów pisanych w różnych technologiach. Dzięki wykorzystaniu Gherkina z Cucumberem (Java) oraz zintegrowaniu z Serenity, napisaliśmy własny framework, który skrótowo nazywany MTA (Moduł Testów Automatycznych).
Jest on szeroko wykorzystywany w organizacji w celu pisania testów GUI (oraz API). Dodatkowo, dzięki własnej mikrousłudze pozyskujemy i tworzymy dane testowe w innych systemach, w trakcie trwania testu bez żadnej ingerencji z zewnątrz i ich ręcznego tworzenia. Mikrousługa zapewnia integrację:
- międzysystemową,
- z Jenkinsem,
- z bazami danych różnych systemów,
- z własną wyizolowaną bazą do przechowywania danych.
Wychodząc naprzeciw potrzebom organizacji – szczególnie naszemu biznesowi, a jednocześnie zapewniając elastyczność testerom oraz programistom, daliśmy możliwość uruchamiania testów oraz pozyskiwania wyników testów z poziomu JIRA. Umożliwia to każdemu pracownikowi IT PZU uruchamianie testów automatycznych w oparciu o przekazane przez siebie parametry. W następnym kroku możliwe jest odczytywanie wyników już bezpośrednio w JIRA bez potrzeby logowania się do narzędzi developerskich.
Kod MTA tzw. Core utrzymywany i rozwijany jest przez powołany do tego zespół. Natomiast kod samych przypadków testowych przechowywany jest bezpośrednio w projektach systemowych. Jest on nadzorowany przez osoby odpowiedzialne w każdym systemie - odpowiedzialność za testy automatyczne pozostaje, tylko i wyłącznie, w zespołach wytwórczych danego systemu.
Jakie technologie za tym stoją?
Wcześniej wymienione Gherkin i Cucumber, dzięki którym kod piszemy w Javie i Kotlinie (mikrousługa). Raporty generujemy za pomocą Serenity. Kod frameworka oraz testów automatycznych przetrzymywany jest w Bitbucket i wywoływany przez Bamboo na agentach osadzonych na klastrze Kubernetesowym. Dane natomiast przechowujemy na bazie PostgreSQL. Integrację zapewnia nam wykorzystanie różnego rodzaju API (SOAP, REST, Rabbit Mq) oraz wykorzystanie skryptów bashowych.
Przykład:
Feature: Wyszukiwanie informacji o PZU w Wikipedii
Scenario: 01 Wyszukanie PZU w Wikipedii
Given Otwieram stronę 'Strona główna'
When Wypełniam pole 'Wyszukiwarka' wartością 'PZU'
And Zatwierdzam pole 'Wyszukiwarka' klawiszem Enter
Then Znajduję się na ekranie 'PZU'
Scenario: 02 Przejście na stronę opisem nowej siedziby PZU
Given Znajduję się na ekranie 'PZU'
When Widoczny jest tekst 'Centrala PZU w najbardziej zielonym biurowcu w Warszawie'
And Otwieram link o adresie 'https://media.pzu.pl/pl/informacje-prasowe/szczegoly/Centrala_PZU_w_najbardziej_zielonym_biurowcu_w_Warszawie' w nowej karcie
Then Znajduję się na ekranie 'Centrala PZU w najbardziej zielonym biurowcu w Warszawie'
And Widoczny jest tekst '1 czerwca 2022 r. PZU oficjalnie odebrał klucze do budynku Generation Park Y przy Rondzie Daszyńskiego w Warszawie.'
Liczby tego projektu
- ok. 70 testerów automatyzujących zajmuje się automatyzowaniem testów w ponad 23 systemach
- ponad 310 metod/kroków używamy w testach w tym 45 dotyczących generowania danych testowych (m.in. PESEL, NIP, nr. rachunku bankowego, ciągi znaków numeryczne i alfanumeryczne)
- 7 usług integracyjnych w celu wykonywania testów E2E służy nam do generowania danych