Vad är automatiserad mjukvarutestning?

Mjukvaran testas för att bekräfta att alla giltiga ingångar tolkas och exekveras korrekt, medan felaktiga ingångar slängs ut. Tester verifierar också att resultat genereras effektivt och att en stor mängd data kan hanteras utan hicka. Testning kan utföras manuellt eller elektroniskt. Automatiserad mjukvarutestning innebär användning av specialiserad programvara för att testa koden som är under utveckling. Sådan testning gynnar mjukvaruutvecklingsprocessen, när den tillämpas med omtanke.

Manuella tester beror på noggrannheten hos de personer som testar. Manuell mjukvarutestning är tidskrävande och kräver ett betydande förhållande mellan testare och utvecklare för de flesta applikationer. Detta ökar 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.

Automatisk mjukvarutestning styr programmässigt testkörning och utvärdering av utdata. Testmjukvaran ger indata, som motsvarar olika förhållanden, till programvaran som utvärderas. För varje uppsättning villkor jämför testprogramvaran de faktiska resultaten med önskade resultat och upprätthåller statistik över målmjukvarans aggregerade beteende. Efter en ”körning” ger testprogramvaran vanligtvis sammanfattande resultat så att människor snabbt kan avgöra vad de ska åtgärda.

I automatiserad mjukvarutestning mekaniseras de tråkiga uppgifter som är involverade i testning, såsom att logga in eller ange data som postadresser. Stora kombinationer av förhållanden kan testas i varje körning. Eftersom automatiserad testning involverar användning av datorer och mjukvara, möjliggör den också simulering av stora mängder indata eller extremt snabba indata. Varje körning av ett antal testförhållanden kan genomföras på några timmar. Därför är automatisk testning mycket användbar för regressionstestning, som säkerställer att en ny funktion eller buggfix inte oavsiktligt bröt tidigare fungerande kod.

Vissa nya utvecklingsmetoder som Extreme Programming betonar att tester är tillgängliga före kodning. Utvecklingsmetoderna betonar att regressionstestning 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 någon betydande programvara, blir det obligatoriskt att automatiserad mjukvarutestning används.

Programvaran för automationstestning måste matas med önskade in- och utgångar. 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 de acceptabla gränserna för programvaran som ska testas. Därför är grunden för automatiserad mjukvarutestning definitivt mänsklig ansträngning. Den automatiska testmjukvaran kan inte gå utöver detta på egen hand.

Automatiserad mjukvarutestning har en betydande kostnad när det gäller den programvara som ska förvärvas också i dess användning. Så om man ska automatisera, och vilken del av testet som ska automatiseras, är nyckelbeslut. 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.