Automatizirano funkcionalno testiranje izraz je koji se koristi za opisivanje procesa stvaranja automatiziranih testnih skripti iz ručnih funkcionalnih testova za softverske aplikacije. Funkcionalno testiranje u procesu kojim se softver ocjenjuje kako bi se osiguralo da ispunjava sve svoje specificirane zahtjeve. Ovaj postupak testiranja obično se provodi pomoću softvera koji je dizajniran za hvatanje i praćenje testiranja softvera. Prije razvoja pristupa automatiziranom funkcionalnom testiranju, programeri su se oslanjali na ljudsko testiranje softverskih aplikacija.
Pristup ručnog testiranja ima inherentne rizike i troškove povezane s njim, jer se oslanja na ljude da provjere valjanost funkcionalnosti unutar aplikacije. Osim toga, većina softverskih aplikacija ima dug životni vijek koji će zahtijevati umetanje nekoliko softverskih zakrpa u temeljni operativni sustav. Imajući automatizirani proces funkcionalnog testiranja, vlasnici softverskih aplikacija mogu biti sigurni da se regresijsko testiranje može završiti na isplativiji način s manje pogrešaka.
Pristup automatiziranom funkcionalnom testiranju nije nova ideja, jer je stvoren s prvom softverskom aplikacijom. U prošlosti su ovo testiranje dovršili programeri koji su kreirali aplikaciju. Danas automatizirano funkcionalno testiranje osmišljavaju, razvijaju i testiraju inženjeri za testiranje s skupom vještina specijaliziranih za testiranje. Ova promjena paradigme osigurala je da se razvojni programer aplikacije provjerava neovisnim procesom provjere i validacije kako bi se osiguralo da su funkcionalni zahtjevi softverske aplikacije potpuni i precizni.
Jedna od ključnih prednosti ovog pristupa testiranju je da omogućuje ponovnu upotrebu testnog programa. Tijekom izrade automatiziranog testa, inženjeri za testiranje stvaraju skripte koje dovršavaju željeni funkcionalni test. Ovo testno programiranje omogućuje buduće testiranje aplikacije i rezultate tih testova da se na automatiziran način dostave menadžerima softverske organizacije. Svaki test je kreiran kao pojedinačna jedinica rada i povezan zajedno kako bi se stvorio cijeli testni paket softverske aplikacije. Rezultati ovih testova sažeti su i dostavljeni upraviteljima softvera na robustan način kako bi se omogućilo više provjere valjanosti u stvarnom vremenu tekućih napora razvoja sustava.
Automatizirano funkcionalno testiranje ne može reproducirati logiku koja stoji iza ljudskog razmišljanja kako bi se zamislili testovi i procijenilo cjelokupno zadovoljstvo proizvoda. Međutim, može se koristiti za testiranje ponavljajućih postupaka ili kontrola unutar softverske aplikacije. Iako ovo nije lijek za sva testiranja, dobra kombinacija jediničnog testiranja, integracijskog testiranja i automatiziranog funkcionalnog testiranja osigurava elegantniji pristup razvoju softverskih aplikacija u cjelini.