Usługi testów wydajnościowych i obciążeniowych
Usługi testów wydajnościowych i obciążeniowych: testy obciążenia, stresu, skoków ruchu i długotrwałe (soak) w k6, JMeter, Gatling i Locust, planowanie pojemności przed premierami i szczytami sprzedaży, analiza wąskich gardeł w kodzie, bazach danych i infrastrukturze, wydajność frontendu i Core Web Vitals oraz testy wydajności w CI, z dedykowanymi inżynierami testów wydajnościowych w Państwa zespole lub projektami testów wydajnościowych realizowanymi od początku do końca.
Testy wydajnościowe, które wykonujemy
Testy obciążeniowe
Spodziewany ruch, modelowany na podstawie logów produkcyjnych i analityki jako ścieżki użytkowników z czasem namysłu i realistycznymi danymi, utrzymywany do momentu, gdy czasy odpowiedzi, odsetek błędów i zużycie zasobów pokażą, jak system wypada na tle założonych celów.
Testy stresu i skoków ruchu
Obciążenie podnoszone ponad oczekiwany szczyt, aby znaleźć punkt załamania i to, co zawodzi najpierw, oraz nagłe skoki ruchu, takie jak wysyłka mailingu lub otwarcie sprzedaży biletów, aby sprawdzić, czy autoskalowanie reaguje na czas, a system sam wraca do normy.
Testy długotrwałe (soak)
Stałe obciążenie utrzymywane przez godziny lub dni, aby znaleźć wycieki pamięci, wyczerpane pule połączeń, rosnące kolejki i dyski zapełniane logami, czyli problemy, do których krótki test nie dociera.
Skrypty k6, JMeter, Gatling i Locust
Grafana k6 w JavaScript, Apache JMeter dla istniejących planów testów i protokołów innych niż HTTP, Gatling w Java lub TypeScript oraz Locust w Python, ze skryptami przechowywanymi w repozytorium obok testowanego kodu.
Analiza wąskich gardeł
Wyniki analizowane razem ze śladami, metrykami i profilami w Grafana, Datadog, New Relic lub Application Insights, dzięki czemu wolną odpowiedź da się prześledzić do zapytania, blokady, puli wątków lub wywołania zewnętrznego, które za nią stoją, a każda poprawka jest testowana ponownie przy tym samym obciążeniu.
Planowanie pojemności na premiery i szczyty
Testy obciążeniowe dobrane do premiery, szczytu sprzedaży lub kampanii, z zapisaną liczbą instancji i limitami autoskalowania, które wytrzymują takie obciążenie, oraz kosztem pracy w szczycie oszacowanym przed tym dniem.
Wydajność frontendu i Core Web Vitals
Largest Contentful Paint, Interaction to Next Paint i Cumulative Layout Shift śledzone na podstawie danych terenowych prawdziwych użytkowników, z Lighthouse i WebPageTest w laboratorium do znalezienia przyczyny, a następnie poprawiane zmianami w obrazach, skryptach, czcionkach i cache'owaniu.
Testy wydajności w CI
Krótkie testy obciążeniowe z progami zaliczenia i niezaliczenia przy każdym wydaniu w GitHub Actions, GitLab CI lub Azure Pipelines, większe uruchomienia w Grafana Cloud k6, Azure Load Testing lub BlazeMeter, a każdy przebieg porównywany z poprzednim buildem, aby regresję wychwycić, zanim odczują ją użytkownicy.
Testy odporności i przełączania awaryjnego
Instancje, strefy i zależności wyłączane pod obciążeniem za pomocą AWS Fault Injection Service, Azure Chaos Studio lub Chaos Mesh, aby sprawdzić, czy przełączanie awaryjne, ponowienia i wyłączniki obwodu (circuit breakers) działają, a odtworzenie mieści się w założonym celu.
Zatrudnienie: inżynierowie testów wydajnościowych
Dedykowani inżynierowie testów wydajnościowych
Inżynierowie testów wydajnościowych dołączają do Państwa zespołu na pełny etat, pracują w Państwa narzędziach i procesie oraz podlegają Państwa liderowi. Państwo przeprowadzają rozmowy kwalifikacyjne, a my bierzemy na siebie ukraińską umowę, wynagrodzenia, fakturowanie i urlopy.
Projekty: Testy wydajnościowe
Wydzielona część prac w obszarze „testy wydajnościowe”, z określonym zakresem, stałym planem i wskazanym liderem po naszej stronie, który odpowiada za wynik i raportuje postępy w Państwa kanałach.
Stała współpraca: testy wydajnościowe
Usługa ciągła w obszarze „Testy wydajnościowe”: ci sami ludzie co miesiąc, backlog, któremu Państwo ustalają priorytety, oraz godziny widoczne w naszym portalu i na fakturze.
Strona o dedykowanym zespole wyjaśnia, jak specjaliści dołączają do Państwa zespołu, a strona o outsourcingu opisuje realizację projektów, przejęcia i sposób rozliczania.
Kto realizuje Państwa prace w obszarze „testy wydajnościowe”
Inżynierowie wydajności
Modele obciążenia, skrypty i analiza
Inżynierowie site reliability
Monitoring, autoskalowanie i pojemność
Programiści backend
Poprawki w kodzie, zapytaniach i cache'owaniu
Administratorzy baz danych
Plany zapytań, indeksy i limity połączeń
Programiści frontendu
Usprawnienia Core Web Vitals
Jak prowadzimy testy wydajnościowe
Każdy test zaczyna się od zapisanego celu: liczby użytkowników lub żądań, czasu odpowiedzi na 95. lub 99. percentylu, akceptowalnego odsetka błędów i kosztu. Obciążenie jest modelowane na ruchu produkcyjnym, dane testowe są generowane w skali produkcyjnej, a test działa na środowisku o wielkości produkcyjnej albo na samej produkcji w uzgodnionym oknie.
Wyniki dostają Państwo z wyjaśnieniem, a nie tylko z wykresem: który komponent osiągnął limit, dlaczego i jaka zmiana go przesuwa, a każda poprawka jest potwierdzana ponownym uruchomieniem przy tym samym obciążeniu. Skrypty, generatory danych i progi zostają w Państwa repozytorium, więc Państwa zespół może uruchamiać te same testy przed każdym wydaniem.
Pozostałe usługi testowania oprogramowania
Testy manualne
Usługi testów manualnych: testy funkcjonalne, regresyjne i eksploracyjne, projektowanie przypadków testowych, testy w różnych przeglądarkach i na różnych urządzeniach oraz wsparcie UAT, z dedykowanymi inżynierami manualnego QA lub realizacją projektu.
Automatyzacja testów
Usługi automatyzacji testów: zestawy w Playwright, Selenium, Cypress i WebdriverIO, praca SDET, testy API i wizualne oraz integracja z CI, z dedykowanymi inżynierami automatyzacji testów lub realizacją projektu.
Testowanie aplikacji mobilnych
Usługi testowania aplikacji mobilnych: testy iOS i Android na prawdziwych urządzeniach i farmach urządzeń, automatyzacja w Appium, Espresso, XCUITest i Maestro oraz kontrole wydań w sklepach, z dedykowanymi inżynierami mobilnego QA lub realizacją projektu.
Testowanie API
Usługi testowania API: testy REST, GraphQL i gRPC w Postman, REST Assured i w kodzie, testy kontraktowe z Pact, walidacja OpenAPI i makiety usług, z dedykowanymi inżynierami testów API lub realizacją projektu.
Testy dostępności
Usługi testów dostępności: audyty WCAG 2.2, testy z czytnikiem ekranu i klawiaturą, kontrole axe w CI, wsparcie w usuwaniu uchybień i raporty zgodności, z dedykowanymi testerami dostępności lub realizacją projektu.
Pytania o testy wydajnościowe i obciążeniowe
W jakich branżach pracują Państwa inżynierowie testów wydajnościowych?
Głównie e-commerce i handel detaliczny, przed szczytami sprzedaży i kampaniami; fintech i bankowość, gdzie systemy płatności i handlu mają cele dotyczące opóźnień; produkty SaaS dla przedsiębiorstw, które przyjmują większych klientów; usługi medialne i streamingowe, w których ruch pojawia się naraz; oraz dostawcy telekomunikacyjni, chmurowi i hostingowi dobierający rozmiar swoich platform.
Czy mogą Państwo testować obciążenie na produkcji?
Tak, gdy środowisko stagingowe nie odwzorowuje prawdziwego systemu. Test działa w uzgodnionym oknie niskiego ruchu, narasta stopniowo z warunkami zatrzymania dla odsetka błędów i opóźnień, używa kont i danych testowych, które po teście są usuwane, a po każdej stronie obserwuje go wskazana osoba kontaktowa.
k6, JMeter czy Gatling?
k6 do większości nowych prac: testy pisze się w JavaScript, uruchamia z wiersza poleceń i dobrze pasują do pipeline'u. JMeter tam, gdzie plany testów już istnieją lub protokół nie jest HTTP, na przykład JDBC, JMS czy czysty TCP. Gatling dla zespołów pracujących w Java lub TypeScript, a Locust dla zespołów Python. Pracujemy też w narzędziu, którego Państwa zespół już używa.
Jak szybko mogą zacząć inżynierowie testów wydajnościowych?
Gdy odpowiedni inżynier testów wydajnościowych jest dostępny, o terminie startu decydują wyłącznie Państwa rozmowa oraz NDA i przeniesienie praw własności intelektualnej. W przeciwnym razie prowadzimy poszukiwania, które zwykle dają profile kandydatów w ciągu dwóch do trzech tygodni, a nikt nie zaczyna pracy, dopóki Państwo nie powiedzą „tak”.
Jak wygląda zatrudnienie przez BigTree108: inżynierowie testów wydajnościowych?
Prosimy o informację o zakresie pracy, poziomie doświadczenia i potrzebnych godzinach. Proponujemy jedną lub dwie osoby wraz z ich profilami, Państwo przeprowadzają z nimi rozmowy tak, jak z własnym kandydatem, podpisują jedną umowę z BIG TREE 108 LLC i otrzymują jedną fakturę miesięcznie.
Do kogo należy praca, którą wykonują?
Do Państwa. Każdy specjalista ma podpisaną z BigTree108 umowę, która przenosi wszystkie rezultaty pracy na spółkę, a nasza umowa z Państwem przenosi je dalej. Kod, projekty i dokumenty są przekazywane do Państwa własnych repozytoriów i narzędzi, a nie przechowywane tam, gdzie zmieniać je możemy tylko my.
Spodziewają się Państwo większego ruchu?
Prosimy o informację o tym, co robi system, jaki ruch ma dziś i jakiego Państwo oczekują. Odpowiedź otrzymają Państwo w ciągu jednego dnia roboczego: plan testów z celami, profile kandydatów lub zakres pierwszego testu obciążeniowego.