Lokalne uruchamianie testów
Możliwość lokalnego uruchamiania testów automatycznych sprawiła, że pełne testy regresji po lokalnych zmianach w kodzie stały się zbędne.
Wdrożenie kompleksowej automatyzacji QA dla aplikacji bankowości mobilnej dużego banku z Bliskiego Wschodu, obejmującej iOS i Androida, integrację z CI/CD oraz raportowanie w czasie rzeczywistym przez Slacka.

[ Klient ]
Klientem jest wiodący bank na Bliskim Wschodzie, który chce przekształcić swój dział technologiczny w niezależnego dostawcę SaaS produktów bankowości cyfrowej. Jako jeden z głównych dostawców usług finansowych w regionie, jego dział IT jako pierwszy dostrzegł wartość szybkiego, zrównoważonego i wysokiej jakości dostarczania oprogramowania dzięki testom automatycznym.
[ Wyzwanie ]
Sektor bankowy na Bliskim Wschodzie jest wyjątkowo dynamiczny i konkurencyjny. Koszt pozyskania użytkownika jest wysoki, dlatego każda instytucja finansowa, która chce odnieść sukces, musi działać szybko, wykazywać się zwinnością i oferować unikalne rozwiązania.
Interesariusze klienta stwierdzili, że testy manualne trwają zbyt długo i wydłużają czas wprowadzania zmian na rynek. Dlatego określili następujące wymagania:
[ Rozwiązanie ]
Zespół wdrożył proces automatyzacji QA dla wieloplatformowej aplikacji mobilnej dostępnej na iOS i Androida.
Automatyzację QA wprowadzono do projektu kompleksowo: od pierwszego projektu architektury aż po faktyczne wykonywanie testów.
Początkowo nasz zespół opierał się na testach manualnych, jednak liczba testów rosła wraz z liczbą funkcji. Trzeba było więc znaleźć odpowiednie narzędzia do testowania oprogramowania, które uczynią testy prostszymi i skuteczniejszymi. Wyzwanie polegało na poprawie szybkości, efektywności, precyzji i niezawodności procesu testowania.
Aby rozwiązać ten problem, nasz zespół wybrał podejście iteracyjne.
Jako bazę wybrano narzędzie open source Appium, aby ograniczyć koszty. Inżynierowie Akveo zbudowali od podstaw framework automatyzacji, który pozwala uruchamiać testy wersji aplikacji na iOS i Androida na rzeczywistych i wirtualnych urządzeniach za pośrednictwem platformy SauceLabs. Jedną z mocnych stron rozwiązania była możliwość łatwego i częstego uruchamiania testów automatycznych, a tym samym częstszej weryfikacji jakości aplikacji.
Aby usprawnić proces CI, zespół wykorzystał Bitrise do planowania uruchamiania skryptów i wykonywania testów na nowo wygenerowanych buildach lub na konkretnych wersjach aplikacji przechowywanych w AWS.
Ponieważ raporty i alerty odgrywają kluczową rolę, zespół zintegrował framework automatyzacji z istniejącym narzędziem do zarządzania testami i śledzenia błędów, czyli JIRA (za pomocą wtyczki Xray), a także ze Slackiem w celu wysyłania natychmiastowych powiadomień i alertów.
Testy automatyczne przygotowano dla różnych warstw aplikacji, np. API i UI.
Nasi specjaliści stworzyli w narzędziu UI Bakery dedykowany interfejs, który zapewnia łatwy dostęp do testów i bezproblemowe ich uruchamianie. Dzięki temu członkowie zespołu mogą wykonywać testy w dowolnym momencie. Spersonalizowany formularz pozwala wybrać zakres testów dla danej funkcjonalności i uruchomić je na konkretnej wersji aplikacji.
Regresje można więc wykrywać wcześnie i mniejszym kosztem. Ponadto rozwiązanie ogranicza powtarzalne zadania inżynierów QA, przyspiesza dostarczanie produktu i zwiększa pokrycie testami.
[ Rezultaty ]
Framework automatyzacji QA pozwolił zespołowi klienta w dowolnym momencie uruchamiać wybrane testy, wykonywać na żądanie pełne testy regresji lub smoke testy i natychmiast otrzymywać wyniki na Slacku.
Możliwość lokalnego uruchamiania testów automatycznych sprawiła, że pełne testy regresji po lokalnych zmianach w kodzie stały się zbędne.
Możliwość swobodnego konfigurowania uruchamiania testów automatycznych według funkcjonalności, platformy, systemu operacyjnego i środowiska.
Czas trwania testów regresji skrócił się o 30%.

[ Realizacje ]
Pomogliśmy ponad 200 firmom zwiększyć ich wartość i usprawnić działanie dzięki lepszemu oprogramowaniu.
Porozmawiajmy o Państwa celach i o tym, jak możemy pomóc je osiągnąć.