Testování softwaru je mnohaúrovňový, kontinuálně probíhající proces (v podstatě po celou dobu životního cyklu).
Nemyslíme tím obvykle formální verifikaci (dokazování správnosti) programů, ale "pouze" testování vybraných konkrétních případů běhu (case-based testing)
Podle úrovně pohledu rozlišujeme testy:
elementů programu, někdy i vytržených z kontextu - např. jednotlivých tříd a jejich souhry
určené k otestování právě integrované části kódu (např. po jeho změnách) do většího celku
ověřují, zda je SW přijatelný pro uživatele/klienta