1. Strona główna
  2. Sylabus dla poziomu zaawansowanego – Techniczny analityk testowy (wersja z 19.10.2012)
  3. 4. Atrybuty jakości w testach technicznych
  4. 4.5 Testowanie wydajnościowe
  5. 4.5.3 Planowanie testów wydajnościowych

4.5.3 Planowanie testów wydajnościowych

Oprócz ogólnych kwestii związanych z planowaniem, opisanych w punkcie 4.2, na planowania testów wydajnościowych mogą mieć wpływ następujące czynniki:

  • W zależności od wykorzystywanego środowiska testowego i testowanego oprogramowania (patrz punkt 4.2.3) może się okazać, że do skutecznego przeprowadzenia testów wydajnościowych wymagana jest implementacja całego systemu. W takiej sytuacji testowanie wydajnościowe odbywa się zwykle w trakcie testów systemowych. Inne testy wydajnościowe, które da się skutecznie przeprowadzić na poziomie modułów, można zaplanować w fazie testów jednostkowych.
  • Ogólnie rzecz biorąc, zalecane jest możliwie najwcześniejsze wykonanie wstępnych testów wydajnościowych, nawet jeśli nie jest jeszcze dostępne środowisko zbliżone do produkcyjnego. Takie wczesne testy pozwalają wykryć problemy z wydajnością (np. wąskie gardła) i ograniczyć ryzyko projektowe dzięki uniknięciu konieczności wprowadzania czasochłonnych poprawek na późniejszych etapach tworzenia oprogramowania lub w środowisku produkcyjnym.
  • Przeglądy kodu, w szczególności koncentrujące się na interakcji z bazą danych, interakcji między modułami i obsłudze błędów, pozwalają zidentyfikować problemy dotyczące wydajności (zwłaszcza związane z logiką „czekaj i ponów” oraz nieefektywnymi zapytaniami). Przeglądy powinny zostać zaplanowane we wczesnych etapach cyklu życia oprogramowania.
  • Należy zaplanować i uwzględnić w budżecie sprzęt, oprogramowanie i przepustowość sieci niezbędne do uruchomienia testów wydajnościowych. Potrzebne zasoby są zależne przede wszystkim od generowanego obciążenia, które może wynikać z liczby symulowanych użytkowników wirtualnych oraz generowanego przez nich ruchu w sieci. Jeśli czynniki te nie zostaną uwzględnione, to uzyskane wartości pomiarów wydajności mogą być niereprezentatywne. Na przykład, weryfikacja wymagań dotyczących skalowalności często odwiedzanego serwisu internetowego może wymagać zasymulowania setek tysięcy wirtualnych użytkowników.
  • Konieczność wygenerowania wymaganego obciążenia w testach wydajnościowych może oznaczać istotne zwiększenie kosztów zakupu sprzętu i narzędzi. Należy uwzględnić ten element podczas planowania testów wydajnościowych w celu uzyskania odpowiedniego finansowania.
  • Koszty wygenerowania obciążenia w testach wydajnościowych można zminimalizować dzięki wynajęciu wymaganej infrastruktury testowej. Oznacza to, na przykład, wypożyczenie dodatkowych licencji na narzędzia albo skorzystanie z usług zewnętrznego dostawcy w celu zrealizowania potrzeb sprzętowych (np. z usług przetwarzania w chmurze). W takim przypadku, czas dostępny na przeprowadzenie testów wydajnościowych może być ograniczony, dlatego należy szczegółowo zaplanować testy.
  • W fazie planowania trzeba zwrócić szczególną uwagę na to, czy używane narzędzie jest kompatybilne z protokołami komunikacyjnymi stosowanymi w testowanym systemie.
  • Defekty związane z wydajnością często mają istotny wpływ na działanie testowanego systemu. Jeśli realizacja wymagań dotyczących wydajności ma najwyższy priorytet, warto wówczas wykonać testy wydajnościowe najważniejszych modułów (z wykorzystaniem sterowników i zaślepek), zamiast odkładać to zadanie do etapu testów systemowych.