Jak testować wydajność bez wymagań?

Jak testować wydajność bez wymagań?
Ciekawym problemem, na jaki napotykamy przy stresowych testach (wydajnościowych) jest niemożność zdefiniowania górnej granicy, do jakiej należy obciążać aplikację. Rodzi to wiele kłopotów nie tylko przy wycenie, ale również przy konstruowaniu środowiska testowego.

Aby poprawnie zaplanować testy, trzeba się zastanowić jakie są wymagania.

  • Najważniejszy parametr to czas odpowiedzi: jak szybko system ma odpowiedzieć po wysłaniu zapytania?
  • Ilu użytkowników średnio i maksymalnie może mieć serwis w zakresie akceptowalnego czasu odpowiedzi?

Niestety powyższe rzadko kiedy udaje się określić. Przy istniejących systemach można te wartości określić poprzez badanie, ale dla systemów nowych albo tych, do których nie mamy dostępu, wymagania stają się zagadką.

Głównym kosztem testowania wydajności jest zazwyczaj sprzęt. Gdy więc stajemy przed zadaniem przetestowania aplikacji aż do jej przeciążenia, to pytanie brzmi: jakie maszyny należy skonfigurować? W przypadku testów zdalnych nie ma kłopotu, by uruchomić wszystkie procesory, jakie się ma. Co jednak jeśli testów nie można przeprowadzić zdalnie? Co jeśli ze sprzętem należy pojechać do klienta?

Czasami się zdarza, że "wpięcie się" w infrastrukturę klienta nie jest możliwe. W takim wypadku to zlecający jest zmuszony do dostarczania hardware'u - my jedynie musimy zarekomendować, jakie maszyny należy przygotować. I po raz kolejny: jeśli nie wiemy, jakie obciążenie należy wygenerować, jak przygotować taką rekomendację?

 

Pozostaje doświadczenie i kalkulator. Sprawdzamy wydajność aplikacji wobec najlepszych praktyk, benchmarków i rekomendacji, bazując na tym, co wiemy i czego możemy się dowiedzieć.

Przykładowo: standardowy polski serwis utrzymywany na realnym serwerze nie wytrzyma więcej niż 15.000 zapytań na sekundę. Źródłem tej wiedzy jest doświadczenie w testach wydajności.

Postawienie i skonfigurowanie odpowiednio „dużej” maszyny: przy średnio skomplikowanym skrypcie testowym 1 000 wirtualnych użytkownik potrzebuje około 2,6 GHz CPU.  Jeśli będziesz mnożył ilość wirtualnych użytkowników, to w miarę liniowo będzie przyrastała ilość procesorów/mocy obliczeniowej.

Obliczając (bardzo zgrubnie): aby doprowadzić do przeciążenia "standardowej" aplikacji, potrzebujemy maszyny lub maszyn dysponujących 15 procesorami o mocy 2,6 GHz.

 

6385

Powiązane szkolenia

05-06
czerwca
2023
Jarosław Hryszko
online
Praktyka testowania
1 750PLN
Testowanie aplikacji internetowych
12
Wolnych miejsc
Rezerwuj
06-07
marca
2023
Arnika Hryszko
online
Praktyka testowania
1 770PLN
Testowanie użyteczności
9
Wolnych miejsc
Rezerwuj
20-21
kwietnia
2023
Rafał Stańczak
online
Dobre praktyki testowania
1 700PLN
Testowanie w metodykach Agile
12
Wolnych miejsc
Rezerwuj
23-24
marca
2023
Krzysztof Kołodziejczyk
online
Praktyka testowania
1 770PLN
Testowanie aplikacji mobilnych - Android
9
Wolnych miejsc
Rezerwuj
12-13
czerwca
2023
Krzysztof Skarbiński
online
Automatyzacja testowania
1 800PLN
Testowanie REST API dla początkujących w języku python
10
Wolnych miejsc
Rezerwuj
27-28
lutego
2023
Krzysztof Kołodziejczyk
online
Języki programowania dla testerów
1 800PLN
JavaScript dla testerów oprogramowania
9
Wolnych miejsc
Rezerwuj
24-26
kwietnia
2023
Krzysztof Kołodziejczyk
online
Praktyka testowania
3 000PLN
Tester gier
11
Wolnych miejsc
Rezerwuj
13
marca
2023
-09
kwietnia
2023
Krzysztof Kołodziejczyk
online
Automatyzacja testowania
5 500PLN
Praktyka automatyzacji testowania
5
Wolnych miejsc
Rezerwuj

To powinno Cię zainteresować