Funksjonell testing er en kvalitetssikrings-prosess og en type svartbokstesting som baserer testtilfellene på kravspesifikasjonene til programvaren som er under testing. Funksjoner testes ved å mate dem med innputt og vurdere utputtet, og innvendig programstrukturer blir sjelden vurdert (i motsetning til hvitebokstesting). Funksjonelle tester utføres for å vurdere hvorvidt et system eller en komponent er i samsvar med spesifikke funksjonelle krav. Funksjonell testing beskriver vanligvis hva et system gjør.
Siden funksjonell testing er en type svartbokstesting kan programvarens funksjonalitet testes uten behov for kjennskap til den interne virkemåten til programvaren. Dette betyr at testerne ikke trenger å kunne programmeringsspråk eller vite hvordan programvaren har blitt implementert. Dette kan igjen føre til redusert utviklerbias (eller bekreftelsesbias) i testing siden testerne ikke har vært involvert i programvareutviklingen.
Funksjonell testing innebærer ikke at man tester funksjoner (metoder) i en modul eller klasse. Funksjonell testing tester en del av funksjonaliteten til hele systemet.
Funksjonell testing er forskjellig fra systemtesting ved at funksjonell testing verifiserer et program ved å sjekke det mot designdokumenter eller spesifikasjoner, mens systemtesting validerer et program ved å kontrollere det mot publiserte bruker- eller systemkrav. Konseptet med å inkludere testing tidligere i leveransesykelen er ikke begrenset til funksjonelle tester.