Testy Akceptacyjne UAT

Walidacja systemu pod kątem zgodności z wymaganiami klienta, który na swoim środowisku wykonuje przypadki testowe przy udziale przedstawicieli projektu.

Kiedy system zostaje zaakceptowany, następuje uruchomienie na środowisku produkcyjnym.

Definicja ISTQB:

Testowanie akceptacyjne: Testowanie formalne przeprowadzane w celu umożliwienia użytkownikowi, klientowi lub innemu uprawnionemu podmiotowi ustalenia, czy zaakceptować system lub moduł.

Produkcyjne testy akceptacyjne: Testowanie produkcyjne w fazie testów akceptacyjnych, zwykle przeprowadzane w środowisku produkcyjnym będącym symulacją rzeczywistego środowiska produkcyjnego.  Wykonywane zazwyczaj przez operatora i/lub administratora, zorientowane na takie aspekty jak: odtwarzalność, zużywanie się zasobów, łatwość instalowania i zgodność techniczną.

Testowanie akceptacyjne w środowisku użytkownika: Testowanie akceptacyjne wykonywane przez użytkowników/ klientów w ich środowisku pracy w celu określenia czy moduł lub system spełnia potrzeby
użytkownika/ klienta oraz czy realizuje procesy biznesowe . Standardowo zawierają zarówno testy sprzętu, jak i oprogramowania.

Testy Systemowe

Testy systemowe przeprowadzane są, aby stwierdzić czy zintegrowany już system spełnia jako całość wymagania zawarte w specyfikacji.

Podczas testów systemowych cały system jest weryfikowany pod kątem zgodności z:

  • wymaganiami funkcjonalnymi
  • wymaganiami niefunkcjonalnymi (wydajność, użyteczność, niezawodność)

Innymi słowy system jest testowany całościowo z użyciem technik czarnej skrzynki. Wiedza o kodzie lub wewnętrznej strukturze aplikacji nie jest wymagana podczas testów systemowych.

Testy systemowe są pierwszym poziomem na którym system jest tesowany jako całość. Na niższych poziomach (testy modułowe, testy integracyjne) sprawdzane są poszczególne komponenty oraz interfejsy pomiędzy nimi.

Testy systemowe przeprowadzane są na środowisku zbliżonym do produkcyjnego , aby odwzrorować rzeczywiste warunki w których będzie działał system.

W dużych projektach testy systemowe przeprowadzane są przez niezależną grupę testerów.

Definicja ISTQB:

Testowanie systemowe: Proces testowania zintegrowanego systemu w celu sprawdzenia jego zgodności z wyspecyfikowanymi wymaganiami.

Testy Integracyjne

Testowanie integracyjne wykonywane jest w celu wykrycia błędów w interfejsach i interakcjach pomiędzy modułami.

Kiedy zbiór komponentów zostanie przetestowany, następnym krokiem jest upewnienie się, że interfejsy pomiędzy owymi komponentami są zdefiniowane poprawnie i współdziałają ze sobą.

Przykład: Testujemy komunikację pomiędzy modułem przechowującym i udostępniającym zbiór parametrów, a modułem używającym tych parametrów przy inicjacji, np. do wypełnienia pól formularza domyślnymi wartościami.

Współczesne aplikacje składają się przeważnie z wielu współpracujących systemów, należy więc sprawdzić czy komunikacja pomiędzy nimi nie jest zakłócona.

Podejście do testów integracyjnych:

Top – Down (od góry do dołu)

  • Moduły znajdujące się na na najwyższym poziomie są testowane jako pierwsze
  • Moduły znajdujące się w hierarchii poniżej, zastępowane/symulowane są przez zaślepki (stubs)
  • Testowane moduły używane są do testowania niżej położonych komponentów
  • Proces testowy jest kontynuowany do momentu przetestowania komponentów znajdujących się na najniższym poziomie

Bottom – Up (od dołu do góry)

  • Najniżej położone komponenty testowane są jako pierwsze
  • Drivers(ang.) symulują komponenty położone wyżej w hierarhii
  • Testowane moduły używane są do testowania wyżej położonych komponentów
  • Proces testowy jest kontynuowany do momentu przetestowania komponentów znajdujących się na najwyższym poziomie

Big Bang (tłumaczenie jest adekwatne do tego co dzieje się z sytemem)

  • Błędy występujące w interfejsach komponentów wykrywane są w bardzo późnej fazie procesu testowego
  • Trudno jest określić miejsce w którym występuje defekt. Czy przyczyna błędu leży w komponencie czy w interfejsie.
  • Istnieje wysokie prawdopodobieństwo niewykrycia krytycznych błędów, które mogą ujawnić się dopiero w wersji produkcyjnej systemu
  • Trudno upewnić się czy wszystkie przypadki z poziomu testów integracyjnych są pokryte testami.

Definicja ISTQB:

Testowanie integracyjne: Testowanie wykonywane w celu wykrycia defektów w interfejsach i interakcjach pomiędzy modułami lub systemami.

Testowanie integracji modułów: Testy wykonywane w celu wykrycia usterek w interfejsach i interakcjach pomiędzy integrowanymi modułami.

Testowanie integracji systemów: Testowanie integracji systemów i pakietów; testowanie interfejsów z organizacjami zewnętrznymi, (np. Elektroniczna Wymiana Danych przez Internet.)

Testy modułowe (unit tests)

Testy modułowe, jednostkowe (unit tests) – Testowanie na najniższym poziomie, podczas którego poszczególne metody (funkcje) testowane są pojedynczo, w oderwaniu od reszty aplikacji w celu sprawdzenia pod kątem zgodności ze zdefiniowanym typem/zakresem danych wejściowych.

W odniesieniu do testów jednostkowych, używana jest również nazwa “testy modułowe” lub “testowanie komponentów”. Testy na tym poziomie przeprowadzane są przeważnie przez programistów z użyciem przygotowanych wcześniej danych testowych.

Analiza ścieżek (path analysis)
Ten typ testów zakłada przejście wszystkich możliwych ścieżek funkcji od wejścia do wyjścia. Jest to niemożliwe z powodu istnienia pętli. Aby rozwiązać ten problem stosuje się dwie grupy ścieżek, których wykonanie powoduje wykonywanie pętli:

– boundary test: 0 lub 1 przejście
– interior test: 2 dwa przejścia

Boundary test – żadna pętla nie jest wykonywana każda pętla jest raz wykonywana i wszystkie ścieżki wewnątrz pętli sa raz wykonan.

Interior test – wnętrze pętli uważa się za przetestowane, jeśli zostały wykonane wszystkie ścieżki, które są możliwe przy dwukrotnym powtórzeniu pętli.

Klasy równoważności (equivalence partition)
Klasa równoważności jest to zbiór danych używanych do przeprowadzenia testu. Wykonanie testu z użyciem kilku elementów zbioru, powoduje uznanie całej klasy za poprawną i zwalnia nas od testowania wszystkich elementów w np. 1000-elementowym zbiorze.

Przykładowe kryteria definicji klasy:
– Rejestracja osoby w wieku od 0 do 120 lat
– Długość wiadomości od 1 do 50 znaków
– Napięcie od 0 do 100 V

Testowanie wartości brzegowych (boundary value analysis)
Rozwinięciem testów z użyciem klas równoważności jest testowanie wartości brzegowych. Wartość brzegowa to wartość znajdująca się wewnątrz, pomiędzy lub tuż przy granicy danej klasy równoważności.

Przykłady
Rejestracja osoby w przedziale wiekowym 0 – 120,
Testowane wartości brzegowe:
-1, 0, 1, 119, 120, 121

Definicja ISTQB:
Testowanie modułowe: Testowanie poszczególnych komponentów oprogramowania.