Testy ad hoc oznaczają jednoczesne poznawanie testowanej aplikacji, przygotowywanie dokumentacji testowej i wykonywanie testów. Oznacza to, że testerzy przystępują do pracy bez przygotowanych wcześniej przypadków użycia (test cases) i często bez określonego celu. Testy oprogramowania tą metodą pozwalają na odkrycie nowych zależności pomiędzy np. modułami systemu. To z kolei może wpłynąć na przyjętą strategię testowania i akcje podejmowane w kolejnych iteracjach testów.
Jednym z najlepszych powodów do stosowania tego rodzaju testów jest "odkrywanie". Czytanie wymagań czy specyfikacji (jeśli istnieje) nie daje kompletnego obrazu działania systemu. Również dokumentacja użytkownika (pliki help, tutoriale) nie oddaje całkowicie tego, w jaki sposób system działa i jak zachowuje się w określonych sytuacjach. Testy metodą ad hoc pozwalają na znalezienie "dziur" w strategii testowania i ujawnienie np. brakujących przypadków testowych.
Błędy znalezione przy testowaniu metodą ad hoc są często sygnałem o istnieniu całych zbiorów nieopracowanych przypadków testowych. To z kolei sugeruje dokonanie analizy przyczyn powstania błędu w testowanej części aplikacji.
Drugim zastosowaniem techniki ad hoc jest określanie priorytetów dla poszczególnych przypadków testowych. Funkcjonalności, które działają poprawnie podczas testów ad hoc, mogą otrzymać niższy priorytet lub zostać odłożone podczas fazy formalnych testów.
Jednym z problemów związanych z testami ad hoc są metryki, a właściwie ich brak. Zazwyczaj projekt jest zainteresowany informacją na temat postępu testów (procentowym pokryciem testami funkcjonalności, ilością wykonanych przypadków testowych, których przecież nie ma, itp.) wyrażoną choćby w postaci procentów. Rozwiązaniem mogą być np. organizowane okresowo sesje, na których zespół testowy wraz z osobami zainteresowanymi takimi informacjami, przedstawia i dyskutuje bieżącą sytuację. Taka forma pomiaru sprawdza się w projektach prowadzonych wg metodologii Agile.
Jeśli w naszych testach narzucimy sobie pewien poziom formalizmu w raportowaniu, nałożymy ramy czasowe i zdefiniujemy cel naszych testów, to przechodzimy płynnie od testowania ad hoc do testowania eksploracyjnego.
Powyższy artykuł jest przedrukiem (po niewielkich zmianach) z wygasłego niestety bloga testerskiego testowanie.net