1. Strona główna
  2. Sylabus poziomu podstawowego ISTQB 2018 (wersja 1.01)
  3. 2. Testowanie w cyklu życia oprogramowania
  4. 2.2. Poziomy testów
  5. 2.2.4. Testowanie akceptacyjne

2.2.4. Testowanie akceptacyjne

Cele testowania akceptacyjnego

Testowanie akceptacyjne — podobnie jak testowanie systemowe — skupia się zwykle na zachowaniu i możliwościach całego systemu lub produktu. Cele testowania akceptacyjnego to najczęściej:

  • budowanie zaufania do systemu;
  • sprawdzanie kompletności systemu i jego prawidłowego działania;
  • sprawdzanie zgodności zachowania funkcjonalnego i niefunkcjonalnego systemu ze specyfikacją.

W wyniku testowania akceptacyjnego mogą powstawać informacje pozwalające ocenić gotowość systemu do wdrożenia i użytkowania przez klienta (użytkownika). Podczas testowania akceptacyjnego mogą też zostać wykryte defekty, ale ich wykrywanie często nie jest celem tego poziomu testów (w niektórych przypadkach znalezienie dużej liczby defektów na etapie testowania akceptacyjnego może być nawet uznawane za istotny czynnik ryzyka projektowego). Ponadto testowanie akceptacyjne może być niezbędne do spełnienia wymagań wynikających z obowiązujących przepisów prawa lub norm/standardów.

Najczęściej występujące formy testowania akceptacyjnego to:

  • testowanie akceptacyjne przez użytkownika;
  • produkcyjne testy akceptacyjne;
  • testowanie akceptacyjne zgodności z umową i zgodności z przepisami prawa;
  • testowanie alfa i beta.

Formy testowania akceptacyjnego opisano w kolejnych czterech podpunktach.

Testowanie akceptacyjne przez użytkownika

Testowanie akceptacyjne systemu przez użytkownika odbywa się w (symulowanym) środowisku produkcyjnym i skupia się zwykle na sprawdzeniu, czy system nadaje się do użytkowania przez przyszłych odbiorców. Głównym celem jest tu budowanie pewności, że system umożliwi użytkownikom spełnienie ich potrzeb, postawionych przed nim wymagań i wykona proces biznesowy z minimalną liczbą problemów, minimalnymi kosztem i ryzykiem.

Produkcyjne testy akceptacyjne

Testowanie akceptacyjne systemu przez operatorów lub administratorów odbywa się zwykle w (symulowanym) środowisku produkcyjnym. Testy skupiają się na aspektach operacyjnych i mogą obejmować:

  • testowanie mechanizmów tworzenia kopii zapasowych i odtwarzania danych;
  • instalowanie, odinstalowywanie i aktualizowanie oprogramowania;
  • usuwanie skutków awarii;
  • zarządzanie użytkownikami;
  • wykonywanie czynności pielęgnacyjnych;
  • wykonywanie czynności związanych z ładowaniem i migracją danych;
  • sprawdzanie, czy występują podatności zabezpieczeń;
  • wykonywanie testów wydajnościowych.

Głównym celem produkcyjnych testów akceptacyjnych jest uzyskanie pewności, że operatorzy lub administratorzy systemu będą w stanie zapewnić użytkownikom prawidłową pracę systemu w środowisku produkcyjnym, nawet w wyjątkowych i trudnych warunkach.

Testowanie akceptacyjne zgodności z umową i zgodności z przepisami prawa

Testowanie akceptacyjne zgodności z umową odbywa się zgodnie z kryteriami akceptacji zapisanymi w umowie dotyczącej wytworzenia oprogramowania na zlecenie. Powyższe kryteria akceptacji powinny zostać określone w momencie uzgadniania przez strony treści umowy. Tego rodzaju testowanie akceptacyjne wykonują często użytkownicy lub niezależni testerzy.

Testowanie akceptacyjne zgodności z przepisami prawa jest wykonywane w kontekście obowiązujących aktów prawnych, takich jak: ustawy, rozporządzenia czy normy bezpieczeństwa. Tego rodzaju testowanie akceptacyjne często wykonują użytkownicy lub niezależni testerzy, a rezultaty mogą być obserwowane lub kontrolowane przez organy nadzoru.

Głównym celem testowania akceptacyjnego zgodności z umową i zgodności z przepisami prawa jest uzyskanie pewności, że osiągnięto zgodność z wymaganiami wynikającymi z obowiązujących umów lub regulacji.

Testowanie alfa i beta

Twórcy oprogramowania przeznaczonego do powszechnej sprzedaży (COTS) często chcą uzyskać informacje zwrotne od potencjalnych lub obecnych klientów, zanim oprogramowanie trafi na rynek. Służą do tego testy alfa i beta.

Testowanie alfa jest wykonywane w siedzibie organizacji wytwarzającej oprogramowanie, ale zamiast zespołu wytwórczego testy wykonują potencjalni lub obecni klienci, i/lub operatorzy bądź niezależni testerzy. Z kolei testowanie beta wykonują obecni lub potencjalni klienci we własnych lokalizacjach. Testy beta mogą być, ale nie muszą, poprzedzone testami alfa.

Jednym z celów testów alfa i beta jest budowanie zaufania potencjalnych i aktualnych klientów i/lub operatorów w kwestii korzystania z systemu w normalnych warunkach, w środowisku produkcyjnym aby osiągnąć swoje cele wkładając w to minimalny wysiłek, koszt i ryzyko. Innym celem tych testów może być wykrywanie błędów związanych z warunkami i środowiskiem (środowiskami), w których system będzie używany, szczególnie wtedy, gdy takie warunki są trudne do odtworzenia dla zespołu projektowego.

Podstawa testów

Przykładowe produkty pracy, które mogą być wykorzystywane jako podstawa testów w ramach dowolnego typu testowania akceptacyjnego, to między innymi:

  • procesy biznesowe;
  • wymagania użytkowników lub wymagania biznesowe;
  • przepisy, umowy, normy i standardy;
  • przypadki użycia;
  • wymagania systemowe;
  • dokumentacja systemu lub podręczniki dla użytkowników;
  • procedury instalacji;
  • raporty z analizy ryzyka.

Ponadto podstawę testów, z której wyprowadzane są przypadki testowe na potrzeby produkcyjnych testów akceptacyjnych, mogą stanowić następujące produkty pracy:

  • procedury tworzenia kopii zapasowych i odtwarzania danych;
  • procedury usuwania skutków awarii;
  • wymagania niefunkcjonalne;
  • dokumentacja operacyjna;
  • instrukcje wdrażania i instalacji;
  • założenia wydajnościowe;
  • pakiety bazodanowe;
  • normy, standardy lub przepisy w dziedzinie zabezpieczeń.

Typowe przedmioty testów

Do typowych przedmiotów testów dowolnego typu testów akceptacyjnych zalicza się:

  • system podlegający testowaniu;
  • konfiguracja i dane konfiguracyjne systemu;
  • procesy biznesowe wykonywane na całkowicie zintegrowanym systemie;
  • systemy rezerwowe i ośrodki zastępcze (ang. hot site) służące do testowania mechanizmów zapewnienia ciągłości biznesowej i usuwania skutków awarii;
  • procesy związane z użyciem produkcyjnym i utrzymaniem;
  • formularze;
  • raporty;
  • istniejące i skonwertowane dane produkcyjne.

Typowe defekty i awarie

Przykładami typowych defektów wykrywanych w ramach różnych typów testowania akceptacyjnego są:

  • systemowe przepływy pracy niezgodne z wymaganiami biznesowymi lub wymaganiami użytkowników;
  • niepoprawnie zaimplementowane reguły biznesowe;
  • niespełnienie przez system wymagań umownych lub prawnych;
  • awarie niefunkcjonalne, takie jak podatności zabezpieczeń, niedostateczna wydajność pod dużym obciążeniem bądź nieprawidłowe działanie na obsługiwanej platformie.

Konkretne podejścia i obowiązki

Testowanie akceptacyjne często spoczywa na klientach, użytkownikach biznesowych, właścicielach produktów lub operatorach systemów, ale w proces ten mogą być również zaangażowani inni interesariusze. Testowanie akceptacyjne zazwyczaj uznaje się za ostatni poziom sekwencyjnego cyklu życia oprogramowania, ale może ono również odbywać się na innych jego etapach, np.:

  • testowanie akceptacyjne oprogramowania „do powszechnej sprzedaży” może odbywać się podczas jego instalowania lub integrowania;
  • testowanie akceptacyjne nowego udoskonalenia funkcjonalnego może mieć miejsce przed rozpoczęciem testowania systemowego.

W iteracyjnych modelach wytwarzania oprogramowania zespoły projektowe mogą stosować na zakończenie każdej iteracji różne formy testowania akceptacyjnego, takie jak testy skupiające się na weryfikacji zgodności nowej funkcjonalności z kryteriami akceptacji bądź testy skupiające się na walidacji nowej funkcjonalności z punktu widzenia potrzeb użytkowników. Ponadto na końcu każdej iteracji, po ukończeniu każdej iteracji lub po wykonaniu serii iteracji, mogą być wykonywane testy alfa i beta, a także testy akceptacyjne wykonywane przez użytkownika, produkcyjne testy akceptacyjne oraz testy akceptacyjne zgodności z umową i zgodności z przepisami prawa.