Testowanie Automatyczne

Automatyzacja testowania umożliwia wykonanie wielu czynności znacznie wydajniej niż w przypadku testów manualnych. Identyczne testy mogą być wykonywane w zróżnicowanych konfiguracjach sprzętowych, na odmiennych systemach operacyjnych, z wykorzystaniem różnych baz danych czy przeglądarek internetowych. Poprzez lepsze usystematyzowanie i większą konsekwencję w wykonaniu testów, zyskuje cały proces zapewnienia jakości.

Kluczem do wartościowych testów automatycznych są dobrze zaprojektowane, dynamiczne scenariusze. Wymagają one więcej wysiłku na etapie przygotowania – stworzenie efektywnego scenariusza jest kilkukrotnie bardziej pracochłonne niż napisanie scenariusza do testowania manualnego, jednak zwrot z inwestycji następuje w trakcie testów kolejnych wydań programu. Automatyczne testy wykonują się dużo szybciej niż manualne, dzięki czemu czas i koszt potrzebne na testowanie nowego wydania mogą zostać znacząco zmniejszone.

Zalecamy przygotowanie zestawu automatycznych testów regresyjnych co najmniej dla kluczowych funkcjonalności, których manualne testowanie jest powtarzane najczęściej. Istotna może być również kompleksowość – zdarza się, że manualne przetestowanie wszystkich kombinacji przypadków lub ścieżek jest bardzo pracochłonne, podczas gdy dynamiczny automat mógłby je przetestować dla każdego kolejnego wydania przy minimalnym nakładzie pracy testera.
Bazując na oczekiwaniach Klienta i biznesowej specyfice produktu, doradzamy efektywne rozwiązania, budujemy zestawy automatów odzwierciedlających rzeczywiste użycie produktu, wykonujemy testy na środowiskach własnych lub Klienta. Podejmujemy starania, by dostarczone przez IMPAQ rozwiązania były maksymalnie przejrzyste, konfigurowalne, proste w obsłudze i interpretacji wyników.

Rodzaje testów automatycznych

Testy regresyjne w fazie utrzymania: przygotowany w czasie tworzenia oprogramowania zestaw testów jest wykorzystywany w fazie utrzymania. Przy niewielkim nakładzie pracy można zweryfikować, czy mała zmiana nie odbiła się na jakości istniejących funkcjonalności.

Testy wydajnościowe (performance) przeprowadza się w celu weryfikacji, jak poszczególne komponenty systemu zachowują się w konkretnej sytuacji przy ustalonym obciążeniu (nieprzekraczającym wartości progowych). Weryfikuje się użycie zasobów, skalowalność oraz niezawodność, które pozwalają na wykrycie potencjalnych krytycznych problemów – jeszcze przed dostarczeniem aplikacji Klientom końcowym.

Testy obciążeniowe (load) mają na celu monitorowanie zachowania systemu przy stale wzrastającym obciążeniu, aż do czasu osiągnięcia wartości progowej i utrzymaniu tego stanu przez dłuższy okres. Celem testów jest wykrycie usterek związanych z przepełnieniem bufora, wycieków i złego zarządzania pamięcią oraz określenie górnej granicy obsługi dla wszystkich komponentów aplikacji, takich jak bazy danych, sprzęt sieciowy itd. Posiadając statystyki (wzrastającego) użycia aplikacji można planować ulepszenia po stronie architektury lub sprzętu.

Testy przeciążeniowe (stress) są wykonywane przy ilości użytkowników przekraczających wartości progowe i malejących zasobach systemowych. Celem jest zbadanie czy system „zawiedzie” w oczekiwany sposób. Testy przeciążeniowe umożliwiają znalezienie defektów w aplikacji działającej w trybie awaryjnym, pozwalają również zweryfikować, czy po awarii spowodowanej obciążeniem nie doszło do utraty danych.

Kluczowe benefity automatyzacji

  • Skrócenie czasu wykonania testów regresji – przyspieszenie cyklu testowania.
  • Szybki czas weryfikacji kluczowych funkcjonalności nowej wersji oprogramowania.
  • Eliminacja błędów ludzkich i niekonsekwencji w realizacji testu.
  • Raportowanie wyników w czasie rzeczywistym oraz jednoznaczność ich interpretacji.
  • Możliwość wielokrotnego wykorzystania zestawu testów i ciągłego działania 24h/dobę przez 7 dni w tygodniu.
  • Zwiększenie pokrycia kodu testami – modyfikowalne logiki i kombinacje wykonania konkretnych scenariuszy.
  • Możliwość symulacji obciążeń produkcyjnych jak i ich przekraczania – weryfikacja zachowania aplikacji w rzeczywistym środowisku i krytycznych sytuacjach

Oferujemy:

  • Projektowanie oraz zarządzanie: skryptami, scenariuszami oraz danymi testowymi.
  • Budowanie i utrzymywanie środowisk testowych na serwerach Klienta lub własnych.
  • Wykonywanie testów: wydajnościowych, obciążeniowych, przeciążeniowych, regresji, akceptacyjnych.
  • Wsparcie Continuous Integration testami automatycznymi. Interpretacje wyników, opracowanie raportów zbiorczych i wskaźników jakości.

Osoba kontaktowa

contact [at] impaqgroup [dot] com