Automatiserad funktionstestning är termen som används för att beskriva processen att skapa automatiserade testskript från manuella funktionstester för mjukvaruapplikationer. Funktionstestning i processen genom vilken programvara utvärderas för att säkerställa att den uppfyller alla dess specificerade krav. Denna testprocedur utförs normalt med programvara som är utformad för att fånga och övervaka programvarutestning. Innan utvecklingen av den automatiserade funktionstestmetoden förlitade sig mjukvaruutvecklare på mänsklig testning av mjukvaruapplikationer.
Den manuella testmetoden har inneboende risker och kostnader förknippade med det, eftersom det är beroende av människor för att verifiera giltigheten av funktionalitet i en applikation. Dessutom har de flesta programvaror en lång livslängd som kräver att flera programvarukorrigeringar infogas i det underliggande operativsystemet. Genom att ha en automatiserad funktionstestprocess kan ägare av mjukvaruapplikationer vara säkra på att regressionstestning kan genomföras på ett mer kostnadseffektivt sätt med färre fel.
Den automatiserade funktionstestmetoden är ingen ny idé, eftersom den skapades med den första mjukvaruapplikationen. Tidigare genomfördes denna testning av utvecklarna som skapade applikationen. Idag designas, utvecklas och testas automatiserad funktionstestning av testingenjörer med en kompetens som är specialiserad på testning. Detta paradigmskifte har säkerställt att utvecklaren av en applikation verifieras av en oberoende verifierings- och valideringsprocess för att säkerställa att funktionskraven för en mjukvaruapplikation är fullständiga och exakta.
En av de viktigaste fördelarna med denna testmetod är att den tillåter återanvändning av ett testprogram. Under skapandet av ett automatiserat test skapar testingenjörer skript som slutför det önskade funktionstestet. Denna testprogrammering gör att framtida tester av applikationen och resultaten av dessa tester kan levereras på ett automatiserat sätt till cheferna för mjukvaruorganisationen. Varje test skapas som en individuell arbetsenhet och kedjas samman för att skapa en hel testsvit av en mjukvaruapplikation. Resultaten av dessa tester sammanfattas och levereras till programvaruansvariga på ett robust sätt för att möjliggöra mer realtidsvalidering av den pågående systemutvecklingssatsningen.
Automatiserad funktionstestning kan inte reproducera logiken bakom mänskligt tänkande för att föreställa sig tester och utvärdera den övergripande tillfredsställelsen av en produkt. Det kan dock användas för att testa repetitiva procedurer eller kontroller i en mjukvaruapplikation. Även om detta inte är universalmedlet för alla tester, säkerställer en bra kombination av enhetstestning, integrationstestning och automatiserad funktionstestning ett mer elegant tillvägagångssätt för programutveckling som helhet.