Testowanie użyteczności. Teoria.

Testowanie użyteczności to próby oceny produktu wykonywane przez przyszłych użytkowników lub testerów, którzy ich reprezentują. Celem testowanie jest uzyskanie informacji o tym jak bardzo aplikacja jest użyteczna dla jej odbiorców.

Użyteczność  jest jednym z atrybutów niefunkcjonalnych oprogramowania. Inne to np. wydajność czy niezawodnośc. Atrybut określa "jak" system działa, a nie "co" robi.

W testowaniu użyteczności funkcjonują dwie metody weryfikacji użyteczności. Pierwszą jest ocena ekspercka, a druga to testy przeprowadzane z, na lub przy pomocy użytkowników. Działania testera oprogramowania mają cechy obu tych metod i nazywa się je testowaniem użyteczności. Testy użyteczności koncentrują się na sprawdzeniu czy wytworzony produkt spełnia założone cele i wymagania. Przykładami produktów, które najczęściej korzystają z testów użyteczności są: strony internetowe, aplikacje internetowe, interfejsy komputerowe i urządzenia. Aby zrozumieć użyteczność należy przeanalizować aplikację pod kątem problemów, jakie użytkownicy mogą mieć podczas korzystania z systemu. Na początku należy uwzględnić, że pojęcie „użytkownik” może odnosić się do wielu różnych typów ludzi, od ekspertów IT poprzez dzieci po osoby niepełnosprawne. Istnieją instytucje krajowe (jak np. Królewski Narodowy Instytut Niewidomych w Wielkiej Brytanii) które zalecają, aby strony WWW były dostępne dla osób niepełnosprawnych, niewidomych, niedowidzących, niepełnosprawnych ruchowo, niesłyszących i niepełnosprawnych intelektualnie. Sprawdzenie czy tacy użytkownicy mogą bez przeszkód korzystać z aplikacji i stron WWW może poprawić również użyteczność tych produktów dla innych użytkowników. Takie testy mogą być częścią weryfikacji użyteczności i nazywamy je testami dostępności.

Musimy zatem założyć, że tester jest potencjalnym użytkownikiem systemu. Może on więc "wejść w buty" użytkownika i ocenić software oraz zaraportować rzeczy dla niego niezrozumiałe lub trudne w użyciu.

Przygotowanie testu użyteczności może polegać na starannym stworzeniu scenariusza lub realistycznej sytuacji, w której osoba wykonuje listę zadań przy użyciu testowanego produktu, podczas gdy obserwatorzy weryfikują poprawność testów i sporządzają notatki. Kwestionariusze przed i po teście również wykorzystywane są do zbierania informacji na temat testowanego produktu. Jednym z celów jest obserwowanie w jaki sposób osoby testujące wykonują założone zadania przy pomocy produktu, aby dostrzec do tej pory nieznane obszary problemowe. Testy wykonywane przez testera mają inny charakter i zazwyczaj towarzyszą testowaniu funkcjonalnemu. Są robione niejako przy okazji wykonywania sprawdzenia zachowania aplikacji. Tester wcielając się w rolę użytkownika projektuje scenariusze użycia w trakcie ich wykonywania.

Podczas testowania użyteczności sprawdza się, czy użytkownicy mogą łatwo korzystać lub nauczyć się korzystać z systemu w celu osiągnięcia konkretnego celu w konkretnym kontekście. Testowanie użyteczności ma mierzyć następujące cechy:

● skuteczność — możliwość osiągnięcia przez użytkowników przy użyciu produktu określonych celów z zachowaniem dokładności i kompletności w określonym kontekście użycia,

● efektywność — możliwość uzyskania przez użytkowników przy użyciu produktu określonej efektywności w określonym kontekście użycia przy odpowiednich nakładach zużytych zasobów,

● satysfakcję — możliwość zadowolenia użytkowników z produktu w określonym kontekście użycia.

 

Atrybuty, które można mierzyć, to m. in.:

● zrozumiałość — atrybuty oprogramowania, które wpływają na nakład pracy wymagany do zrozumienia przez użytkownika koncepcji logicznej produktu i jej zastosowania do danego zadania,

● łatwość nauki — atrybuty oprogramowania, które wpływają na nakład pracy wymagany do opanowania przez użytkownika korzystania z aplikacji,

● łatwość obsługi — atrybuty oprogramowania, które wpływają na nakład pracy wymagany do skutecznego i efektywnego wykonywania zadań przez użytkownika,

● atrakcyjność — możliwość polubienia oprogramowania przez użytkownika.

 

Umiejętności testera użyteczności powinny obejmować wiedzę lub doświadczenie w następujących dziedzinach:

● socjologia,

● psychologia,

● znajomość standardów,

● ergonomia.

 

Należy pamiętać, że walidacja implementacji produktu powinna się odbywać w warunkach jak najbardziej zbliżonych do rzeczywistych warunków użytkowania systemu.

Do uzyskania spójnego podejścia do wykrywania i zgłaszania defektów użyteczności na wszystkich etapach cyklu życia oprogramowania przydatne są wytyczne użyteczności. Bez wytycznych użyteczności może być trudno określić, co jest nie do zaakceptowania z punktu widzenia użyteczności. Na przykład czy jest nierozsądne rozwiązanie, w którym użytkownik będzie potrzebować 10 kliknięć, aby zalogować się do aplikacji? Bez konkretnych wytycznych tester może znaleźć się w trudnej sytuacji, kiedy będzie musiał bronić zgłoszeń defektów, które programiści będą chcieli zamknąć z uzasadnieniem, że oprogramowania działa „zgodnie z projektem”. Bardzo ważne jest zdefiniowanie weryfikowalnej specyfikacji użyteczności w ramach wymagań oraz posiadanie zestawu wytycznych użyteczności, stosowanych do wszystkich projektów danego rodzaju. W wytycznych powinny być uwzględnione takie elementy, jak dostępność instrukcji, czytelność komunikatów zachęty, liczba kliknięć konieczna do wykonania danej czynności, komunikaty o błędach, wskaźniki przetwarzania (wskaźniki informujące użytkownika, że system przetwarza dane i nie przyjmuje w danej chwili nowo wprowadzanych danych), układ elementów na ekranie, wykorzystanie kolorów i dźwięków oraz inne czynniki, które wpływają na wrażenia użytkownika.

W przypadku gdy brakuje wytycznych możemy je kompensować przez standardy, porównanie z podobnymi aplikacjami, albo weryfikację za zgodność z heurystykami.

Tester może testować użyteczność na wielu poziomach oraz przy użyciu różnych technik.

 

- Testowanie specyfikacji produktu.

Przeglądy specyfikacji wymagań i dokumentacji projektowej pod kątem użyteczności mają poważny walor ekonomiczny dzięki wczesnemu wykrywaniu problemów. Można wykorzystać ocenę heurystyczną (systematyczną inspekcję projektu interfejsu użytkownika pod kątem użyteczności) w celu zidentyfikowania problemów z użytecznością podczas projektowania, aby można im było zaradzić w ramach iteracyjnego procesu projektowania. Wymaga to zaangażowania niewielkiego zespołu oceniającego, który zbada interfejs i oceni jego zgodność z uznawanymi regułami użyteczności („heurystyką”). Przeglądy zyskują na skuteczności wraz z widocznością interfejsu użytkownika. Na przykład zwykle łatwiej zrozumieć i zinterpretować przykładowe zrzuty ekranów niż słowny opis funkcjonalności danego ekranu. Wizualizacja jest istotna dla dokonania odpowiedniego przeglądu dokumentacji pod kątem użyteczności.

 

- Dynamiczne interakcje z prototypami.

Na etapie projektowania prototypów tester powinien używać ich i wspierać projektantów w ulepszaniu przez informację zwrotnych z perspektywy użytkownika. Umożliwia to udoskonalenie prototypów i uzyskanie przez użytkownika realistycznego wyobrażenia o wyglądzie gotowego produktu i interakcjach z nim.

 

- Weryfikacja i walidacja implementacji.

Jeżeli w wymaganiach określono charakterystyki użyteczności oprogramowania (np. liczba kliknięć niezbędnych do osiągnięcia jakiegoś celu), należy utworzyć testy, które będą weryfikować uwzględnienie tych charakterystyk w implementacji tego oprogramowania. W celu walidacji implementacji można skorzystać z testów zdefiniowanych dla potrzeb systemowych testów funkcjonalnych jako ze scenariuszy testów użyteczności. Te scenariusze testowe mierzą konkretne charakterystyki użyteczności, takie jak łatwość nauki czy obsługi, zamiast rezultatów funkcjonalnych. Scenariusze testowe użyteczności mogą być opracowane zgodnie z określoną składnią i semantyką testów. Składnia to struktura lub „gramatyka” interfejsu (np. typ wartości, jakie można wprowadzić w określonym polu), a semantyka opisuje znaczenie i cel interfejsu (np. uzasadnione i treściwe komunikaty systemowe i dotyczące wyników przetwarzania, jakie są udostępniane użytkownikowi).

 

- Ankiety i kwestionariusze.

Do gromadzenia obserwacji i informacji zwrotnych związanych z zachowaniem użytkowników systemu można zastosować techniki ankiet i kwestionariuszy.

 

Źródła

Sylabus ISTQB Poziomu Podstawowego [PL] 

Sylabus ISTQB Poziomu Zaawansowanego Analityk Testów [PL]

Testy użyteczności

Materiały szkoleniowe z kursu Testowanie użyteczności (Usability Testing)

 

Najbliższe terminy szkoleń

 

25-26 listopada - Warszawa

Testowanie REST API dla początkujących


25-27 listopada - Warszawa

ISTQB Poziom Podstawowy


27-28 listopada - Katowice

JavaScript dla testerów oprogramowania


28-29 listopada - Warszawa

Dobry Tester – Laboratorium

 

Partnerzy

Narzędzia testerskie