Testy wydajności a obciążenia
W kontekście inżynierii oprogramowania wykonuje się testy wydajności, aby znaleźć wąskie gardła systemu. Testy wydajności można również wykorzystać do weryfikacji atrybutów, takich jak niezawodność, wykorzystanie zasobów i skalowalność, oraz do ustalenia poziomu odniesienia dla wydajności systemu. Testowanie obciążenia jest jednym z podgatunków testowania wydajności. Jest wykonywany w celu zmierzenia zachowania systemu pod określonym obciążeniem. Testowanie obciążenia jest bardziej odpowiednie dla systemów z wieloma użytkownikami opartych na modelu klient-serwer, ale inne systemy oprogramowania, takie jak edytory tekstu lub edytory grafiki, mogą być również testowane pod kątem obciążenia.
Test wydajności
Jak wspomniano powyżej, testy wydajności są przeprowadzane w celu ustalenia i wyeliminowania wąskich gardeł systemu oprogramowania oraz ustalenia poziomu bazowego jego wydajności, który byłby użyteczny w dalszych testach. Testy wydajności obejmują testy, takie jak testy obciążenia, testy wytrzymałościowe (testy nasiąkania), testy szczytowe, testy konfiguracji i testy izolacji. Testy wydajności wymagają uzyskania dokładnie kontrolowanego zestawu pomiarów systemu. Aby uzyskać najlepsze wyniki z testów wydajności, należy to dobrze zaplanować i przeprowadzić w stabilnym systemie, w którym proces testowania może przebiegać bezproblemowo. Ważne jest jasne zrozumienie tego, co faktycznie chcesz zmierzyć pod względem wydajności systemu podczas wykonywania testów wydajności. Na przykład, jeśli testujesz wydajność aplikacji internetowej, możesz chcieć poznać dopuszczalny czas odpowiedzi i liczbę równoczesnych użytkowników, którymi może obsłużyć system. Pamiętając o tych dwóch aspektach, możesz rozpocząć test, stale zwiększając liczbę użytkowników i identyfikując wąskie gardło.
Testowanie obciążenia
Jak wspomniano wcześniej, testowanie obciążenia jest częścią testowania wydajności i często jest przeprowadzane przez zwiększenie obciążenia systemu oprogramowania za pomocą zautomatyzowanych narzędzi. Testowanie obciążenia jest czasem nazywane testowaniem objętościowym. Niektóre przykładowe testy ładowania polegałyby na przetestowaniu serwera poczty z dużą liczbą skrzynek pocztowych użytkowników lub testowaniu edycji bardzo dużego dokumentu za pomocą edytora tekstu. Testy obciążenia są przeprowadzane przy użyciu wstępnie zdefiniowanego poziomu obciążenia, zwykle przy użyciu maksymalnego obciążenia, które system może wytrzymać bez awarii. Zwykle testowanie obciążenia ma na celu ujawnienie błędów, które nie są ujawniane podczas zwykłych testów, takich jak problemy z zarządzaniem pamięcią, wycieki pamięci, przepełnienie bufora itp. Testowanie obciążenia służy również jako środek zapewniający, że system spełnia poziom wydajności ustalony podczas testowania wydajności.
Różnica między testowaniem wydajności a obciążeniem
Mimo że terminy testowanie wydajności i testowanie obciążenia są używane zamiennie, testowanie obciążenia jest tylko jednym aspektem testowania wydajności. Cele obu testów są również różne. Testy wydajności wykorzystują techniki testowania obciążenia w celu uzyskania pomiarów i testów porównawczych oraz wykorzystują kilka poziomów obciążenia. Ale testowanie obciążenia działa na jednym wstępnie zdefiniowanym poziomie obciążenia, zwykle najwyższym obciążeniu, jakie system może zarządzać bez awarii. W praktyce testy wydajności wykonuje się w celu znalezienia wąskich gardeł systemu i ich wyeliminowania. A gdy nie można już zoptymalizować systemu, rozpoczyna się testowanie obciążenia, aby określić, co należy dodać do systemu (najczęściej rozszerzenia sprzętowe, takie jak liczba serwerów WWW lub serwerów baz danych), aby spełnić wymagania zdefiniowane wcześniej przez klienta.