Pytania: jak dobrze testować? czy jak zaplanować testowanie, aby sprawdzić kluczowe funkcje systemu? Pojawiają się bardzo często … i brak jest jednoznacznych odpowiedzi.
Zdaje się, że pewnej odpowiedzi w tym obszarze udziela James Whittaker, który śmiało porównał testowanie do zmieniającego się i aktywnego procesu opieki zdrowotnej, a oprogramowanie do pacjenta.
Lekarze w swej pracy mogą korzystać z dwóch istotnych rzeczy, a mianowicie: karty pacjenta wraz historią choroby i leczenia oraz monitora, który pokazuje aktualny stan najważniejszych parametrów pacjenta.
Jak słusznie zauważa Whittaker tester nie ma historii choroby, nie wie w którym miejscu system jest „chory”. Tester nie ma również monitora, który pokazuje aktualny stan oprogramowania( ile jest błędów, gdzie występują, i kto się aktualnie nimi zajmuje, naprawia je).
To spostrzeżenie sprowokowało Whittakera do powołania do życia metody, która pozwala sporządzić iście lekarską diagnozę oprogramowania przeznaczonego do testów.
Metoda ACC – Attributes – Components – Capabilities
Metoda ACC prezentuje jedną z ciekawszych strategii planowania testów. James Whittaker przedstawił ją bazując na swoim doświadczeniu z pracy w Google. Jest to metoda zaproponowana jako alternatywa dla tworzenia klasycznych planów testów, opierających się jedynie o scenariusze testowe. ACC również takowe zawiera, ale nacisk jest położony na zupełnie inny obszar testów. Metoda Attribute – Component – Capability Analisys składa się z trzech etapów i angażuje cały zespół.
Etap I – Definiowanie Atrybutów (Attributes)
Według Whittakera I etap tworzenia planu testów to określenie atrybutów produktu (strony, serwisu internetowego, aplikacji mobilnej). W pierwszej kolejności zespół testerów tworzy opis produktu w postaci prostej listy przymiotników. Nie chodzi tu jednak o zwykły opis, ale o listę najważniejszych i kluczowych cech, które czynią ten produkt pożądanym przez użytkowników i pozytywnie wyróżniają go na tle konkurencji. Przykłady: bezpieczny, szybki, itp.
Etap II – Definiowanie Komponentów (Components)
Na etapie drugim zespół zastanawia się nad komponentami produktu, które można określić jako składowe systemu. Są to podstawowe elementy systemu, jak np. „Koszyk” w serwisach zakupowych, lub „Dodawanie zdjęć” na portalach społecznościowych. Whittaker sugeruje, aby zadać sobie pytanie „Z czego jest zrobiony? Jakie ma części?”. Komponenty przyjmują najczęściej postać rzeczowników.
Najlepszą techniką generowania atrybutów i komponentów jest „burza mózgów”.
Etap III – Definiowanie Zdolności (Capabilities)
Na tym etapie ACC zespół definiuje zdolności produktu. Jest to etap wymagający i czasochłonny. Zdolności przyjmują formę czasowników, ponieważ opisują akcje, procesy, czynności jakie wykonuje system, produkt. Tłumacząc Whittakera, Capability to dziecko (dzieci) Atrybutu z Komponentem. Jeżeli nasza lista zdolności wydaje się krótka warto poprosić developerów by na nią spojrzeli. Wówczas z typową sobie chęcią naprawiania, zaczną podpowiadać, doradzać i modyfikować naszą listę. Przykładowe capability: wyszukiwanie jest szybkie, ponieważ trwa krócej niż 1s.
Końcowym rezultatem metody ACC jest zazwyczaj matryca bądź wizualizacja, która obrazuje ilość zdolności w konkretnych parach atrybutów z komponentami. Jest to, wykorzystując metaforę Whittakera, rodzaj karty pacjenta, która mówi nam, jaki jest jego stan i jakie miejsca są narażone na choroby. Jak widać ACC z pewnością pozwala zlokalizować obszary, które najbardziej potrzebują leczenia (testów).