W skrócie
- Zadania: Twórz i rozwijaj nowoczesne rozwiązania testowe dla platformy handlowej.
- Firma: Globalna firma IT, część DXC Technology, z innowacyjną kulturą pracy.
- Benefity: Atrakcyjne wynagrodzenie, benefity zdrowotne, praca zdalna i możliwości rozwoju zawodowego.
- Pozostałe informacje: Dynamiczne środowisko z doskonałymi możliwościami rozwoju kariery.
- Dlaczego ta praca: Pracuj z najnowszymi technologiami i wpływaj na rozwój nowoczesnych rozwiązań.
- Kwalifikacje: 5+ lat doświadczenia w automatyzacji testów UI oraz umiejętności programowania w Pythonie.
Przewidywane wynagrodzenie mieści się w przedziale 54000 - 66000 zł za rok.
DXC Luxoft jest globalną firmą świadczącą usługi IT i konsultingowe, będącą częścią DXC Technology, dostarczającą nowoczesne rozwiązania cyfrowe i programowe na całym świecie. Współpracujemy z wiodącymi instytucjami finansowymi i globalnymi przedsiębiorstwami, pomagając im w transformacji i skalowaniu dzięki nowoczesnej technologii. Dołącz do globalnej społeczności inżynierów i bądź częścią budowania wpływowych, nowoczesnych rozwiązań technologicznych!
Opis projektu: Budujemy wewnętrzną platformę handlową obejmującą zarządzanie zamówieniami, realizację i analizę danych. Interfejs użytkownika to zestaw aplikacji TypeScript/React działających w kontenerze desktopowym i przesyłających dane w czasie rzeczywistym.
Obowiązki:
- Współtworzenie i współposiadanie, wraz z naszym backendowym SDET, zjednoczonego frameworka testowego, który obejmuje każdy obszar, który testujemy:
- Wspólne fundamenty: fikstury, dane testowe, konfiguracja, środowiska i raportowanie są wspólne dla UI, API, Kafka, bazy danych i zestawów wydajnościowych.
- Scenariusze międzywarstwowe: jeden scenariusz może obejmować różne warstwy. Na przykład, test składa zamówienie w UI, a następnie sprawdza wynikowe zdarzenie i rekord w bazie danych.
- Jedna jakość widoku: wyniki z każdego zestawu zasilają jeden widok jakości wydania.
- Projektowanie, budowanie i utrzymywanie testów end-to-end i komponentowych z użyciem Playwright i TypeScript dla przepływów pracy związanych z handlem i analizą.
- Rozszerzanie naszego wspólnego zestawu narzędzi testowych: obiekty stron, fikstury i mocki API kontenera desktopowego.
- Budowanie front-endowych narzędzi dla danych w czasie rzeczywistym: mockowane odpowiedzi WebSocket i REST, kontrolowane dane testowe oraz deterministyczne odtwarzanie aktualizacji strumieniowych.
- Pokrycie trybów awarii UI: rozłączenia i ponowne połączenia, wygasłe sesje, błędy uprawnień, nieregularne dane i przestarzałe dane.
- Posiadanie testów wydajnościowych front-endu:
- Startup i responsywność: pomiar czasu uruchamiania aplikacji i czasu do pierwszych danych oraz sprawdzenie, czy UI pozostaje responsywne przy wysokich wskaźnikach aktualizacji.
- Zachowanie siatki w skali: pomiar wydajności renderowania i przewijania siatek z dziesiątkami tysięcy wierszy.
- Zasoby kontenera: śledzenie wzrostu pamięci i wycieków w długoterminowych sesjach desktopowych oraz koszt CPU na okno.
- Bramki regresji: przekształcanie wyników w budżety, które powodują niepowodzenie CI w przypadku regresji.
- Budowanie i utrzymywanie izolowanych, na żądanie środowisk testowych na Linuxie i AWS:
- Cykl życia: środowiska są tworzone na podstawie gałęzi lub uruchomienia, zaczynają się od zasianych danych i znanego stanu, a następnie są automatycznie usuwane.
- Izolacja: uruchomienia testów nie zakłócają się nawzajem ani nie kolidują z wspólnymi środowiskami.
- Walidacja kontraktów front-end/back-end i schematów ładunków.
- Uruchamianie zestawów UI w CI/CD: podzielone równoległe uruchomienia, zaplanowane regresje i raportowanie w pull requestach.
- Uczynienie niepowodzeń diagnozowalnymi: ślady Playwright, zrzuty ekranu i wideo oraz korelacja z telemetrią.
- Współpraca z inżynierami UI, analitykami biznesowymi i traderami w celu automatyzacji krytycznych przepływów pracy i definiowania kryteriów akceptacji QA.
- Używanie narzędzi wspomaganych AI tam, gdzie pomagają w pisaniu, utrzymywaniu i triage'u testów.
Wymagane umiejętności:
- 5+ lat doświadczenia w automatyzacji testów UI, w tym projektowanie lub znaczne rozszerzanie frameworka.
- Umiejętności programowania w Pythonie (pytest, Playwright dla Pythona): narzędzia testowe, przygotowanie danych, kontrole backendowe w scenariuszach UI oraz wkład w wspólny framework.
- Doświadczenie w testowaniu aplikacji React z złożonymi siatkami danych (AG Grid lub podobne), dynamicznymi formularzami i dużym stanem po stronie klienta.
- Doświadczenie w testowaniu wydajności front-endu:
- Profilowanie: panele wydajności i pamięci Chrome DevTools oraz API Lighthouse i wydajności.
- Diagnoza: znajdowanie długich zadań, wstrząsy układu i wycieki pamięci.
- Budżety: ustalanie budżetów wydajności i egzekwowanie ich w CI.
- Doświadczenie w CI/CD z Azure DevOps (preferowane) lub Jenkins/GitHub Actions oraz Git.
- Doświadczenie w budowaniu izolowanych środowisk testowych:
- Linux: komfortowa praca w wierszu poleceń, skrypty powłoki, procesy, sieci i rozwiązywanie problemów z logami.
- Docker: Docker i Docker Compose.
- AWS: EC2, ECS lub EKS, S3, IAM, VPC i CloudWatch.
- Infrastruktura jako kod: Terraform, CloudFormation lub CDK.
- Silne nawyki dotyczące niezawodności: izolowane testy, deterministyczne oczekiwania zamiast snu, kontrolowane ponowne próby i triage testów niestabilnych.
- Doświadczenie z raportowaniem testów i śledzeniem (raporty Playwright, Allure, Azure Test Plans, TestRail).
- Jasna komunikacja i dobra dokumentacja.
Umiejętności dodatkowe:
- Doświadczenie w handlu lub po stronie kupującego: OMS/EMS, algorytmy, pozycje, alokacje lub ryzyko.
- Znajomość Javy, wystarczająca do czytania kodu serwisowego i wkładu w zestawy backendowe w wspólnym frameworku.
- Automatyzacja kontenera desktopowego: Electron, OpenFin lub podobne.
- Testowanie komponentów (Vitest lub Jest).
- Testowanie wizualne lub interakcyjne Storybook.
- Testowanie dostępności i regresji wizualnej.
- Profiler React i znajomość wydajności renderowania React (memoizacja, wirtualizacja).
- OpenTelemetry lub podobne narzędzia do monitorowania rzeczywistych użytkowników oraz wykorzystanie danych RUM z produkcji do wyboru scenariuszy testów wydajności.
Senior Software Development Engineer in Test (UI) in Katowice – pracodawca: Luxoft
Nasza firma to doskonały pracodawca, który oferuje dynamiczne środowisko pracy w sercu innowacji technologicznych. Wspieramy rozwój zawodowy naszych pracowników poprzez mentoring oraz dostęp do najnowszych technologii, a także promujemy kulturę współpracy i otwartości. Pracując z nami, będziesz miał okazję uczestniczyć w projektach, które mają realny wpływ na branżę, a lokalizacja w centrum miasta zapewnia wygodny dostęp do licznych udogodnień.