Testowanie niefunkcjonalne obejmuje następujące (ale nie tylko te) typy testów: testowanie wydajnościowe, testowanie obciążeniowe, testowanie przeciążeniowe, testowanie użyteczności, testowanie pielęgnowalności, testowanie niezawodności oraz testowanie przenaszalności. Testowanie niefunkcjonalne polega na sprawdzeniu „jak” system działa.
Testowanie niefunkcjonalne może być wykonywane na wszystkich poziomach testów. Termin testy niefunkcjonalne oznacza testy wymagane do zmierzenia właściwości systemów i oprogramowania, które mogą zostać określone ilościowo na zmiennej skali, takich jak czasy odpowiedzi w testach wydajnościowych. Testy te mogą zostać odniesione do modelu jakości oprogramowania np. „Software Engineering – Software Product Quality” (ISO 9126). Testy niefunkcjonalne zajmują się zewnętrznym zachowaniem oprogramowania i w większości wypadków wykorzystują techniki czarnoskrzynkowe.