Avtomatizirano funkcionalno testiranje je izraz, ki se uporablja za opis postopka ustvarjanja avtomatiziranih testnih skriptov iz ročnih funkcionalnih testov za programske aplikacije. Funkcionalno testiranje v procesu, s katerim se ocenjuje programska oprema, da se zagotovi, da izpolnjuje vse svoje določene zahteve. Ta postopek testiranja se običajno izvede s programsko opremo, ki je zasnovana za zajemanje in spremljanje testiranja programske opreme. Pred razvojem pristopa avtomatiziranega funkcionalnega testiranja so se razvijalci programske opreme zanašali na človeško testiranje programskih aplikacij.
Pristop ročnega testiranja ima z njim povezana tveganja in stroške, saj se zanaša na ljudi, da preverijo veljavnost funkcionalnosti znotraj aplikacije. Poleg tega ima večina programskih aplikacij dolgo življenjsko dobo, ki zahteva vstavitev več programskih popravkov v osnovni operacijski sistem. Z avtomatiziranim procesom funkcionalnega testiranja lahko lastniki programskih aplikacij zagotovimo, da je mogoče regresijsko testiranje opraviti na stroškovno učinkovitejši način z manj napakami.
Pristop avtomatskega funkcionalnega testiranja ni nova ideja, saj je bil ustvarjen s prvo programsko aplikacijo. V preteklosti so to testiranje opravili razvijalci, ki so ustvarili aplikacijo. Danes avtomatizirano funkcionalno testiranje načrtujejo, razvijajo in testirajo inženirji za testiranje z naborom veščin, specializiranih za testiranje. Ta premik paradigme je zagotovil, da je razvijalec aplikacije preverjen z neodvisnim postopkom preverjanja in validacije, da se zagotovi popolne in natančne funkcionalne zahteve programske aplikacije.
Ena od ključnih prednosti tega pristopa testiranja je, da omogoča ponovno uporabo testnega programa. Med ustvarjanjem avtomatiziranega testa inženirji za testiranje izdelajo skripte, ki dokončajo želeni funkcionalni test. To testno programiranje omogoča, da se prihodnje testiranje aplikacije in rezultati teh testov avtomatizirano dostavijo vodjem organizacije programske opreme. Vsak test je ustvarjen kot posamezna enota dela in povezan skupaj, da se ustvari celoten testni nabor programske aplikacije. Rezultati teh testov so povzeti in dostavljeni upravljavcem programske opreme na robusten način, da se omogoči več preverjanja v realnem času tekočega razvoja sistema.
Avtomatizirano funkcionalno testiranje ne more reproducirati logike človeškega razmišljanja za zasnovo testov in oceno splošnega zadovoljstva z izdelkom. Lahko pa se uporablja za testiranje ponavljajočih se postopkov ali kontrol znotraj programske aplikacije. Čeprav to ni rešitev za vsa testiranja, dobra kombinacija testiranja enote, integracijskega testiranja in avtomatiziranega funkcionalnega testiranja zagotavlja elegantnejši pristop k razvoju programske aplikacije kot celote.