Při vývoji softwaru je třeba do vývojového cyklu zařadit i fázi nebo fáze testování.
Testování ověří, že aplikace se chová tak, jak bylo požadováno (funkční testy), případně, že je naprogramovaná podle obecně uznávaných postupů a metodik (best practices) - nějaké technické testy, např. pomocí nástroje zvaného linter.
Existuje velké množství různých druhů testů určených k různým účelům.
Základní kategorizace testů se dá udělat podle toho, kdo test provádí: