Zapewnienie jakości: Program testów

Z punktu widzenia odbiorcy, aplikacje oceniane są pod kątem:

  • Użyteczności
  • Jakości
  • Wydajności
  • Niezawodności
  • Bezpieczeństwa
  • Wiarygodności
  • Zgodności z odpowiednimi normami technicznymi

W celu umożliwienia Klientom zweryfikowania swojej aplikacji w powyższych aspektach, oferujemy możliwość niezależnego przetestowania aplikacji pod kątem jej jakości i wydajności. W ramach oferowanych przez nas testów znajdują się:

  • Audyt kodu
  • Testy funkcjonalne
  • Testy wydajnościowe

Audyt kodu

Audyt kodu polega na przeglądzie kodu aplikacji w celu zidentyfikowania i wyeliminowania z kodu fragmentów, które:

  • Mogą być przyczyną błędów lub wyjątków
  • Obniżają wydajność
  • Zmniejszają czytelność kodu

Do audytu kodu wykorzystujemy zestaw automatycznych narzędzi oraz audyt przeprowadzany przez zaawansowanych programistów.

Projekt audytu kodu kończy się raportem zawierającym listę wskazanych problemów, wraz z opisem i rekomendacją postępowania.

W projektach JAVART, audyt kodu jest wpisany w proces tworzenia oprogramowania i przeprowadzany na bieżąco, po każdym Sprincie (PATRZ SCRUM)

Testy funkcjonalne

Testy funkcjonalne weryfikują prawidłowości zrealizowania w aplikacji założeń funkcjonalnych i polegają na częściowo automatycznym a częściowo "ręcznym" zbadaniu działania wszystkich elementów aplikacji, łącznie z obsługą błędów.

Testy wydajnościowe

Ocena wydajności polega na porównaniu wymaganych parametrów wydajnościowych rozwiązania z ich wartościami osiągniętymi przez zrealizowane oprogramowanie. Typowo wymagania wydajnościowe formułowane są w kategoriach czasu reakcji na działania użytkownika oraz liczby przetwarzanych przez system danych. Oszacowanie tych wielkości na podstawie informacji projektowych jest zwykle niemożliwe. W efekcie ocena wydajności może być w sposób adekwatny prowadzona dopiero przez badanie już zrealizowanego rozwiązania.

Zagadnienie oceny wydajności rozwiązania informatycznego w wielu sytuacjach może zostać zdekomponowane na:

  • Ocenę wydajności systemu wprowadzania danych do systemu z wykorzystaniem np. tradycyjnych modeli systemów masowej obsługi - tj. oceny wiarygodności przyjętych założeń odnośnie ilości danych napływających lub przechowywanych w systemie oraz zastosowanych urządzeń wejściowych lub wyjściowych
  • Ocenę wydajności przetwarzania danych realizowanego przez system informatyczny - tj. ocena wydajności przetwarzania danych, oprócz badań empirycznych, może być poparta weryfikacją pod kątem stosowania tzw. dobrych praktyk, np. w konfiguracji bazy danych. Źródłem informacji o tych praktykach jest zwykle dokumentacja stosowanego komponentu (np. systemu zarządzania bazą danych)

Ponieważ każdy projekt jest inny, więc najlepiej jest dostosować formę kontroli do złożoności projektu. Przy testach wydajnościowych stosuje się czasowe kryterium oceny jakości oprogramowania. Wynikiem testów wydajnościowych powinien być dodatkowo raport zawierający podsumowanie obejmujące w szczególności liczbę i rodzaj uruchamianych funkcji, czas ich uruchomienia, czasy reakcji systemu, w formie pozwalającej na analizę statystyczną oraz informacje o średnim czasie odpowiedzi, czasie maksymalnym, oraz liczbie przypadków, w których przekroczono dopuszczalne czasy odpowiedzi.

W praktyce testy wydajnościowe są przeprowadzane przez wyspecjalizowane narzędzia automatyczne, w których definiujemy listę scenariuszy testowych, każdy zawierający sekwencję działań. W przebiegu testu wydajnościowego uruchamia się równolegle szereg procesów, wykonujących wybrane scenariusze testowe. Najważniejsze typy testów wydajnościowych:

Stress testing
  • Założenie: zbyt wielu użytkowników, danych, czasu oraz malejące zasoby systemowe
  • Badanie czy system "zawiedzie" w oczekiwany sposób
  • Wyszukiwanie defektów w aplikacji działającej w trybie awaryjnym
  • Sprawdzanie konsekwencji utraty danych po awarii wywołanej nadmiernym obciążeniem
Load testing
  • Duża liczba jednocześnie działających użytkowników / przeprowadzanych transakcji
  • Utrzymanie takiego stanu przez określony w scenariuszu czas
  • Jak wiele zapytań (requests) jest w stanie obsłużyć system w określonym przedziale czasu
Performance testing
  • Badanie czasu odpowiedzi krytycznych dla biznesu funkcji systemu
  • Porównywanie czasu odpowiedzi przejścia pojedynczego vs. wielu użytkowników przez aplikację
  • Kryterium testów jest sprawdzenie czy poszczególne akcje wykonywane są przez aplikację w akceptowalnym czasie
Volume testing
  • Ten rodzaj testów nie musi odwzorowywać realnego środowiska produkcyjnego
  • Założeniem jest sprawdzenie czy aplikacja potrafi obsłużyć duże ilości danych
  • Główne kryterium: "jak wiele" zamiast "jak szybko"
  • Rodzaj testów stosowany przy badaniu wydajności baz danych

Raport kończący testy, zawiera wykresy, przedstawiające zachowanie systemu i ew. jego elementów w zależności od obciążenia.

Javart
Nasi klienci:
Javart Klienci