Heurystyki Nielsena to metody wnioskowania, z których testerzy korzystają podczas testowania użyteczności.
Przy wdrażaniu nowych funkcjonalności testerzy w pierwszej kolejności skupiają się na testowaniu cech funkcjonalnych. Krótko mówiąc, koncentrujemy się przede wszystkim na tym, co system robi i czy oprogramowanie w ogóle działa. Jednak sam fakt, że aplikacja działa, to jeszcze nie wszystko. Aby uzyskać jak największą satysfakcję użytkownika końcowego, musimy również zwracać uwagę na aspekty niefunkcjonalne, czyli na to, jak oprogramowanie działa. W końcu dostarczanie jakości to nie tylko dostarczanie samych funkcjonalności.
Do testów niefunkcjonalnych zaliczamy na przykład testowanie wydajnościowe, obciążeniowe, ale również właśnie testowanie użyteczności. Pozwala ono określić w jakim stopniu użytkownik może osiągnąć swoje cele przy użyciu naszego produktu oraz jak bardzo zadanie to jest dla niego łatwe i przyjemne. Testy użyteczności pomogą nam także w zdiagnozowaniu miejsc, które mogą być problematyczne oraz mogą utrudniać użytkownikowi realizację jego potrzeb.
Testy użyteczności są powiązane z obszarem User Experience i bardzo często przeprowadza je zespół UX. Aby przekonać się jak dany produkt odbierają użytkownicy, najlepszym sposobem są badania z przedstawicielami grupy docelowej. Wtedy prowadzone są badania jakościowe, jako wywiady z użytkownikami lub korzysta się z metod ilościowych (ankiety, testy A/B, eyetracking), a także przeprowadza się audyt UX.
Jednak podstawowe testy użyteczności mogą być przeprowadzone także przez testera oprogramowania. W takim przypadku tester reprezentuje użytkownika końcowego i na pewno powinien mieć na uwadze jego dobro.
Warto zaznaczyć, że testy użyteczności można przeprowadzić wcześniej niż na etapie wdrażania produktu. Przedmiotem testów mogą być jak najbardziej prototypy i makiety interfejsu. Dlatego ważne jest, aby testerzy brali udział w projekcie już od jak najwcześniejszej fazy rozwoju oprogramowania, ponieważ dużo błędów użyteczności można wyłapać jeszcze przed rozpoczęciem etapu developmentu.
Co testujemy w ramach testów użyteczności?
Podczas testów użyteczności sprawdzamy przede wszystkim trzy obszary: skuteczność, efektywność oraz satysfakcję. Użyteczność składa się z takich atrybutów jak:
- Zrozumiałość, czyli sprawdzenie w jakim stopniu oprogramowanie jest zrozumiałe dla użytkownika oraz czy użytkownik rozumie w jakim celu może być użyte. W zrozumieniu oprogramowania pomaga dołączona dokumentacja lub tutoriale i instrukcje obsługi;
- Łatwość nauki, czyli ile pracy użytkownik musi włożyć w poznanie oprogramowania i opanowanie zasad jego użytkowania. Im łatwiej nauczyć się obsługi danego oprogramowania, tym mniej użytkownik potrzebuje korzystać z tutoriali i instrukcji. W odwrotnym przypadku, można wywołać poczucie zagubienia, irytacji i niedoinformowania u użytkownika;
- Łatwość użycia, czyli ocena jak bardzo intuicyjne jest oprogramowanie i czy użytkownik ma problemy z jego obsługą. W ramach łatwości użycia można weryfikować takie cechy jak: spójność interfejsu, zrozumiałość komunikatów, możliwość modyfikowania wprowadzonych zmian oraz możliwość dostosowywania oprogramowania do indywidualnych potrzeb;
- Ochrona przed błędami, czyli sprawdzenie w jakim stopniu system chroni użytkownika przed popełnianiem błędów. Jak głosi stare powiedzenie: “lepiej zapobiegać niż leczyć” - na satysfakcję z używania oprogramowania lepiej wpływa zapobieganie błędom niż ich późniejsza obsługa;
- Dostępność, czyli przetestowanie w jakim stopniu produkt jest dostosowany do korzystania przez osoby z różnymi potrzebami i niepełnosprawnościami. Dostępny produkt to w skrócie produkt, który może być używany przez wszystkich. Dostępność produktu jest zapewniana między innymi odpowiednim kontrastem, odpowiednią wielkością czcionki, możliwością obsługi aplikacji z poziomu klawiatury oraz możliwością korzystania z czytników ekranu. Aby oprogramowanie było dostępne musi spełniać normy określone w dokumencie WCAG. Więcej o dostępności przeczytasz w moim poprzednim artykule Testowanie dostępności — narzędzia i dobre praktyki;
- Estetyka interfejsu użytkownika - jest dość subiektywną oceną, jednak trudno ją zignorować, gdyż znacząco wpływa na odczuwalną przez użytkownika satysfakcję z użytkowania oprogramowania. Na estetykę produktu wpływa cała warstwa wizualna: kolorystyka, rodzaj i wielkość czcionki, grafika, animacje itp;
- Atrakcyjność produktu, czyli w jakim stopniu produkt wydaje się dla użytkownika atrakcyjny i czy wywiera na nim pożądane wrażenie.
Jak testować użyteczność? Poznaj Heurystyki Nielsena
Z pomocą w testowaniu użyteczności przychodzą Heurystyki Nielsena. Heurystyki to uproszczone metody wnioskowania. Sformułował je Jacob Nielsen w 1990 roku i do dzisiaj są bardzo pomocnymi wytycznymi. Jest to rodzaj listy kontrolnej, którą można wykorzystać do sprawdzenia wydajności, efektywności oraz satysfakcji z korzystania z oprogramowania. Przyjrzyjmy się im nieco bliżej i zobaczmy jak tester może z nich korzystać podczas przeprowadzania testów użyteczności.
1) Pokazuj status systemu
Użytkownik powinien w każdym momencie wiedzieć gdzie dokładnie się znajduje, co było poprzednim etapem oraz jaki będzie kolejny krok. Dodatkowo, użytkownik powinien wiedzieć, co system robi w danym momencie. Status systemu można pokazać przez użycie tzw. okruszków - breadcrumbs. Dzięki zastosowaniu breadcrumbs użytkownik może cofnąć się do wybranego miejsca bez używania przycisku ‘“wstecz” na pasku przeglądarki. Status systemu można również wyrazić poprzez wyróżnienie danej zakładki, zmianę koloru przycisku albo pokazanie paska postępu, czy tarczy ładowania. Dzięki temu użytkownik wie, że system wciąż działa i aktualnie przetwarza jego żądanie.
2) Zachowaj zgodność między systemem a rzeczywistością
Oprogramowanie powinno posługiwać się językiem zrozumiałym i naturalnym dla użytkownika oraz adekwatnym do rzeczywistości. Dodatkowo system powinien korzystać z rozwiązań świata rzeczywistego, tak jak koszyk w e-commerce symbolizuje zakupy. Dobrą praktyką jest korzystanie z przyjętych i funkcjonujących już rozwiązań, ponieważ są one dla użytkowników rozpoznawalne i zrozumiałe. Aczkolwiek, niektóre ikony są już tylko umowne, gdyż młodym pokoleniom symbol dyskietki już niekoniecznie będzie się kojarzył z zapisywaniem pliku ;)
3) Daj użytkownikowi pełną kontrolę
Użytkownik powinien mieć jak największą swobodę działań w aplikacji. W myśl tej heurystyki należy sprawdzić czy użytkownik w każdym momencie może powrócić do poprzedniego ekranu oraz czy może się rozmyślić i zrezygnować z działania. Jeśli na przykład dodał produkt do koszyka, musi mieć możliwość zmiany jego ilości oraz jego usunięcia.
4) Trzymaj się standardów i zachowaj spójność
Jednym z elementów, który wpływa na satysfakcję z używania oprogramowania jest spójność aplikacji. Dotyczy się to zarówno jej działania, jak i warstwy graficznej czy tekstowej. Przyciski pełniące tę samą funkcję powinny mieć ten sam styl oraz spójne położenie.
5) Zapobiegaj błędom
Należy dbać o to, by zminimalizować ryzyko popełnienia błędu przez użytkownika. Użytkownicy popełniają błędy z różnych przyczyn - działania w pośpiechu, przeoczenia czy zwykłego niedopatrzenia. Najprostszym przykładem jest wypełnianie formularzy i wybór daty czy walidacja pól. Datę można zapisywać w różnym formacie, dlatego ważne jest aby zapobiegać ewentualnym błędom, jak wpisanie nieistniejącej daty (30 lutego). Lepiej poinformować użytkownika zawczasu iż wpisane wartości są nieprawidłowe (front-end’owa walidacja formularza), niż dopiero po wysłaniu formularza.Dodatkowo należy sprawdzić jak zachowa się aplikacja w takich przypadkach jak próba wybrania niedostępnych produktów, oraz czy zapobiegamy niepożądanym działaniom, dodając prośbę o potwierdzenie usunięcia danego elementu.
6) Pozwalaj wybierać zamiast zmuszać do zapamiętywania
Pamięć ludzka jest mocno obciążona informacjami dnia codziennego. Dlatego z natury nie chcemy zapamiętywać informacji, które nie są nam do niczego potrzebne i nie będą używane wielokrotnie. Im mniej użytkownik musi zapamiętywać, korzystając z aplikacji, tym lepiej.
Wszystkie podpowiedzi, np. lista ostatnio przeglądanych produktów czy wyświetlenie wcześniej wybranych produktów i wszystkich potrzebnych informacji będą wspomagały użyteczność produktu.
7) Zapewnij elastyczność i efektywność
System powinien być dostosowany zarówno do początkujących użytkowników, jak i tych zaawansowanych. Użytkownicy mają też różne preferencje i przyzwyczajenia, dlatego powinni mieć kilka możliwości filtrowania i wyszukiwania danych, np. poprzez wyszukiwarkę, sortowanie i wybór z menu.
8) Dbaj o estetykę i umiar
Wygląd aplikacji to kwestia subiektywna, jednak każda aplikacja powinna dbać o ogólną estetykę i umiar. Zwróć uwagę m.in. na ilość kolorów użytych w aplikacji czy ilość informacji dostarczanych użytkownikom - powinniśmy dostarczyć tylko tyle informacji ile jest niezbędne.
9) Zapewnij skuteczną obsługę błędów
Zgodnie z heurystyką nr 5 powinniśmy starać się zapobiegać błędom, ale niestety błędy się zdarzają i wtedy należy zadbać o odpowiednie ich obsłużenie. Komunikat o błędzie powinien być przede wszystkim zrozumiały dla użytkownika, napisany więc prostym językiem a nie żargonem technicznym. Dodatkowo, komunikat powinien informować użytkownika co należy zrobić, aby naprawić błąd i móc dalej korzystać z aplikacji.
10) Zadbaj o pomoc oraz dokumentację
Do oprogramowania należy dostarczyć dokumentację, która pozwoli użytkownikowi znaleźć informacje na temat użytkowania aplikacji lub zamieścić sekcję FAQs. Wszelka dokumentacja powinna być sporządzona w języku zrozumiałym dla użytkownika, w przeciwnym wypadku będzie bezużyteczna. Użytkownik powinien też mieć możliwość kontaktu w przypadku problemów czy pytań.
Dodatkową techniką, której możemy użyć są testy “korytarzowe”, czyli szybkie, nieformalne testy przeprowadzane w naszej firmie z osobą niezwiązaną z projektem. Jest to kolejna metoda z dziedziny UX, ale jak najbardziej może być zastosowana przez testerów. Możemy poprosić o pomoc kolegów z innego zespołu by przetestowali funkcjonalność, która wzbudza nasze podejrzenia co do jej użyteczności.
Podsumowując
Testowanie użyteczności to działania korzystające z obszaru User Experience, ale zdecydowanie wpływające nie tylko na użyteczność, ale też jakość produktu. Testy użyteczności mogą być przeprowadzone przez testera oprogramowania nawet w ramach testowania pojedynczych funkcjonalności. Tester zawsze powinien mieć na uwadze dobro użytkownika, dlatego znajomość podstawowych zasad użyteczności jest niezbędna. Aby zgłębić temat testowania użyteczności można sięgnąć po sylabus ISTQB Usability Tester oraz sylabus IBUQ (International Board for Usability Qualification). Pamiętajmy, że zapewnianie jakości to nie tylko działające oprogramowanie, ale również dbanie o użyteczność i doświadczenia użytkowników.