Vad är automatiserad programvarutestning?
Programvara testas för att bekräfta att alla giltiga ingångar är korrekt tolkade och exekverade medan felaktiga ingångar kastas ut. Tester bekräftar också att resultaten genereras effektivt och att en stor mängd data kan hanteras utan hicka. Testning kan utföras manuellt eller elektroniskt. Automatisk testning av mjukvara innebär användning av specialiserad programvara för att testa koden som är under utveckling. Sådan test gynnar mjukvaruutvecklingsprocessen när den tillämpas på ett korrekt sätt.
Manuella tester beror på noggrannheten hos de personer som utför testet. Manuell testning av mjukvara är tidskrävande och behöver ett betydande förhållande av testare till utvecklare för de flesta applikationer. Detta höjer kostnaderna för utveckling. Dessutom har manuell testning begränsningen att stora mängder data, eller ett stort antal samtidiga användare eller ingångar, inte kan testas enkelt.
Automatiserad programvarutestning kontrollerar programmatiskt testutförandet och utvärderingen av utdata. Testprogramvaran tillhandahåller ingångar, som motsvarar olika förhållanden, till programvaran som utvärderas. För varje uppsättning förhållanden jämför testprogramvaran de faktiska resultaten med önskade resultat och upprätthåller statistik om målsoftwarens aggregerade beteende. Efter en "körning" ger testprogramvaran vanligtvis sammanfattande resultat så att människor snabbt kan avgöra vad de ska åtgärda.
Vid automatiserad mjukvarutestning mekaniseras de tråkiga uppgifterna som är involverade i testning som att logga in eller ange data som postadresser. Otroliga kombinationer av förhållanden kan testas i varje körning. Eftersom automatiserad testning involverar användning av datorer och programvara, möjliggör det också simulering av stora mängder inmatningsdata eller extremt snabba ingångar. Varje körning av ett antal testvillkor kan genomföras inom några timmar. Därför är automatiserad testning mycket användbar för regressionstestning, vilket säkerställer att en ny funktion eller bugfix inte oavsiktligt bryter tidigare arbetskod.
Vissa senaste utvecklingsmetoder som Extreme Programming betonar att test är tillgängliga innan kodning. Utvecklingsmetoderna betonar att regressionstest utförs flera gånger varje dag för att säkerställa att programvaran är korrekt när den utvecklas. Om mjukvaruteamet måste följa denna metod för betydande programvara blir det obligatoriskt att automatiserad mjukvarutestning används.
Programvaran för automatiseringstest måste matas in de önskade ingångarna och utgångarna. Ett sätt att göra detta är att lagra manuella testförhållanden i programvaran. Ett annat sätt är att skriva kod för att generera olika villkor, inom acceptabla gränser för den programvara som ska testas. Således är grunden för automatiserad mjukvarutestning definitivt mänsklig ansträngning. Den automatiska testprogramvaran kan inte gå längre än detta på egen hand.
Automatisering av mjukvarutestning har en betydande kostnad vad gäller programvaran som ska förvärvas samt för dess användning. Så huruvida att automatisera, och vilken del av testningen som ska automatiseras, är viktiga beslut. Automatiserad testning är inte lämplig för funktioner och miljöer som förväntas förändras avsevärt. I de flesta applikationer är en blandning av manuell och automatiserad testning lämplig.