Automatinis funkcinis testavimas yra terminas, naudojamas apibūdinti automatinių testavimo scenarijų kūrimo procesą iš rankinių funkcinių programų, skirtų programinės įrangos testams. Funkcinis testavimas procese, kurio metu programinė įranga įvertinama siekiant užtikrinti, kad ji atitinka visus nurodytus reikalavimus. Ši testavimo procedūra paprastai atliekama naudojant programinę įrangą, skirtą programinės įrangos testavimui užfiksuoti ir stebėti. Prieš kurdami automatinio funkcinio testavimo metodą, programinės įrangos kūrėjai pasitikėjo programinės įrangos programų testavimu su žmonėmis.
Rankinio testavimo metodas turi būdingą riziką ir su juo susijusias išlaidas, nes jis priklauso nuo žmonių, kurie patikrins programos funkcionalumą. Be to, daugumos taikomųjų programų eksploatavimo laikas yra ilgas, todėl į pagrindinę operacinę sistemą reikės įdėti keletą programinės įrangos pataisų. Turėdami automatinį funkcinio testavimo procesą, programinės įrangos savininkai gali būti užtikrinti, kad regresijos testavimas gali būti atliktas ekonomiškiau ir naudojant mažiau klaidų.
Automatinio funkcinio testavimo metodas nėra nauja idėja, nes jis buvo sukurtas naudojant pirmąją programinę įrangą. Anksčiau šį testavimą baigdavo programėlę sukūrę kūrėjai. Šiandien automatinį funkcinį testavimą kuria, kuria ir išbando testavimo inžinieriai, turintys įgūdžių rinkinį, besispecializuojantį testavimo srityje. Šis paradigmos pokytis užtikrino, kad programos kūrėjas būtų patikrintas nepriklausomu tikrinimo ir patvirtinimo procesu, siekiant užtikrinti, kad programinės įrangos funkciniai reikalavimai būtų išsamūs ir tikslūs.
Vienas iš pagrindinių šio testavimo metodo pranašumų yra tai, kad jis leidžia pakartotinai naudoti bandymo programą. Kurdami automatizuotą testą, testavimo inžinieriai sukuria scenarijus, kurie užbaigia norimą funkcinį testą. Šis testavimo programavimas leidžia ateityje atlikti programos testavimą ir tų testų rezultatus automatiniu būdu pateikti programinės įrangos organizacijos vadovams. Kiekvienas testas sukuriamas kaip atskiras darbo vienetas ir sujungiamas kartu, kad būtų sukurtas visas programinės įrangos testų rinkinys. Šių testų rezultatai yra apibendrinami ir patikimai pateikiami programinės įrangos valdytojams, kad būtų galima labiau realiuoju laiku patvirtinti vykdomas sistemos kūrimo pastangas.
Automatinis funkcinis testavimas negali atkurti logikos, slypinčios už žmogaus mąstymo, kad būtų galima sugalvoti testus ir įvertinti bendrą pasitenkinimą produktu. Tačiau jis gali būti naudojamas pasikartojančioms procedūroms ar valdikliams išbandyti programinėje įrangoje. Nors tai nėra panacėja visiems bandymams, geras vienetų testavimo, integravimo testavimo ir automatinio funkcinio testavimo derinys užtikrina elegantiškesnį požiūrį į programinės įrangos programų kūrimą kaip visumą.