%

Użytkowników
wskazuje, że dla aplikacji mobilnych wydaność/szybkość ich działania jest czynnikiem #1 – ważniejszym od innych funkcjonalności
(Forrester, Nov 2014)

Mimo że uważane za czasochłonne i wymagające wiedzy eksperckiej w dojrzałych organizacjach testy wydajności są nieodłączną składową procesu ewaluacji jakości systemów informatycznych. Jak ważne jest ich wykonanie wie każdy, kto z różnych przyczyn odważył się je pominąć i musiał ratować się przy problemach w środowisku produkcyjnym. Obszar Performance jest aktualnie jednym z najbardziej medialnych tematów mogących skutecznie obniżyć wartość naszej marki – OmniLoad ogranicza koszty i ryzyko związane z problemami wydajnościowymi.

OmniLoad

to elastyczne podejście do weryfikacji wydajności w zależności od poziomu ryzyka. Bazując na połączeniu wiedzy eksperckiej, sprawdzonej metodyki oraz bazy narzędziowej dobieramy i oferujemy zakres usług minimalizujących ryzyko zastania gwiazdą mediów społecznościowych w kategorii „Awaria tygodnia”. Wierzymy, że wszystko można zmierzyć, a tylko mając odpowiednie współczynniki możemy ocenić jakość. Dlatego nasze podejście bazuje na ciągłym definiowaniu i śledzeniu metryk, niezależnie od sposoby generowania obciążenia. OmniLoad to nie tylko weryfikacja czasów – badamy stabilność oraz diagnozujemy błędy, które mogą mieć wpływ na obiór aplikacji przez użytkowników końcowych.

Co robimy

Analiza wydajności czyli testy bez testów – duża część problemów wydajnościowych może być zweryfikowana podczas regularnych testów funkcjonalnych, wykonywanych ręcznie lub przez automaty testowe. Kluczem jest możliwość zmierzenia faktycznego działania aplikacji na poziomie akcji użytkowników, wykonywanego kodu oraz porównanie z poprzednimi wydaniami. Dla projektów o niskim ryzyku jest to sposób pozwalający ograniczyć koszty i czas.
Regresyjne testy wydajnościowe – wykonywane cyklicznie, przy każdym wydaniu i porównywane do poprzednich wyników dostarczają informacji o tym, czy aplikacja utrzymuje odpowiedni poziom wydajności. Mogą zostać zautomatyzowane w ramach implementacji CI/CD.
Testy obciążeniowe – klasyczna weryfikacja zachowania systemu bazująca na symulacji oczekiwanego ruchu wg zdefiniowanych wolumenów użytkowników, transakcji oraz czasu. Preferujemy dwa podejścia:
• stały obciążenie – użytkownicy przez określony czas w sposób jednakowy obciążają system
• obciążenie zmienne – użytkownicy zwiększają obciążenie wraz z czasem trwania testu lub okresowo generowane są piki obciążenia.
Stress testy – weryfikacja wydajności systemu dla skrajnych wartości obciążenia. Testy mogą być wykonywane dla stałego, wyższego niż zakładane obciążenia utrzymywanego przez określony czas lub mogą służyć do wyznaczenia tzw. progu bólu, czyli obciążenia, dla którego system przestaje spełniać wymagania wydajnościowe lub ulega awarii.
Benchmarki – weryfikacja wydajności dla różnych platform i różnych konfiguracji – daje informację o optymalnym doborze komponentów oraz ich ograniczeniach.

Jak to robimy:

Nie skupiamy się na narzędziach – tylko na celu, a sposób jego osiągnięcia dobieramy optymalnie dla Klienta. Budujemy podejście do testów, definiujemy miary obrazujące model jakości, tworzymy skrypty automatyczne, analizujemy i wskazujemy wąskie gardła. Nie ograniczamy się do oceny zerojedynkowej – nasze doświadczenie i odpowiednie narzędzia pozwalają nam być partnerem pomagającym w optymalizacji badanych systemów.

Czym to robimy:

Narzędzia dobieramy do konkretnego zadania. Czasami tworzymy własne generatory obciążenia, czasami używamy rozwiązań open source jak Apache JMeter, SoapUI, Selenium a czasami komercyjnych jak Neoload czy Loadrunner.. Analizę wydajności opieramy o oprogramowanie Dynatrace, ponieważ znamy jego nieocenioną wartość w procesie testów wydajnościowych i ograniczania kosztów z nimi związanych.

Naprawa błędów wydajnościowych jest kosztowna i często wymusza przeprojektowanie architektury aplikacji – im wcześniej znajdziemy problemy tym tańsze i bezpieczniejsze będzie ich rozwiązanie!