Vad är en testautomationsram?
Ett testautomationsramverk är en uppsättning verktyg som används för att utföra automatiserad mjukvarutestning. Testautomationsramar ger betydande fördelar jämfört med manuell testning och används ofta i snabb programvaruutveckling. Dessa ramverk gör det möjligt för programvaruutvecklare att skapa tester, utföra tester och analysera testresultat. Ett testautomationsramverk kan drivas av kod, data, ett grafiskt användargränssnitt (GUI) eller en kombination av dessa.
Testautomationsramar krävs för att tillgodose behoven för snabb programvaruutveckling. I den klassiska utvecklingslivscykeln för vattenfall var mjukvarutestning en diskret fas utförd efter implementering eller kodning. Som sådant var mänskliga exekverade tester typiska.
Många utvecklingsteam har ersatt vattenfallsmodellen med olika smidiga mjukvaruutvecklingsmetoder, som vanligtvis kräver snabb, iterativ utveckling. Den snabba utvecklingen har skapat ett behov av snabb testning. Ett testautomationsramverk tillåter ett mjukvaruteam att utföra frekventa, automatiserade tester på en kodbas. Till exempel, snarare än att kräva en separat testfas efter utvecklingen, kan ett team som använder ett testautomationsram välja att köra en fullständig serie tester över natten, såväl som mindre bitar av automatiserade tester under dagen när ändringar görs i källan koda.
Den vanligaste typen av ramverk är det koddrivna ramverket som används för att utföra vitlådestestning. Koddrivna ramverk kräver att utvecklare skriver små kodavsnitt, i form av enhetstester, för att testa mjukvarufunktioner eller prestanda. Utvecklare som använder koddrivna ramverk måste se till att skriva sin programvara på ett testbart sätt - det vill säga koden måste moduleras så att ett enhetstest kan ringa ett kodstycke och verifiera resultatet. Dessa ramverk inkluderar vanligtvis en implementering av xUnit, där "x" varierar baserat på det programmeringsspråk som testas.
GUI-driven testramar används för att utföra black-box-testning med ett programverktyg som användaren skulle göra genom mus- och tangentbordsingångar. De kan bestå av skript skrivna av utvecklare för att utöva en serie av funktionalitet, eller de kan bestå av verktygsgenererade skript, såsom inspelnings-och-play-back-skript. En potentiell nackdel med dessa ramverk är att skriptet kommer att brytas när GUI ändras. Vissa GUI-automatiseringsramar kan generera ett skript som kan redigeras av en utvecklare vid GUI-förändringar, och andra kan kräva att användaren skapar en ny inspelning-och-play-back-session.
Datadrivna testramar utför mjukvarutest med hjälp av data, och dessa tester fungerar vanligtvis med datatabeller som anger både ingångar och utgångar. Uppgifterna kan förvaras på olika platser, till exempel databaser, kalkylark eller textfiler. Manus kan skrivas för att utföra mjukvarumetoder som tar ingångarna som parametrar och för att validera programmets metodens returvärde mot utgången. Allt annat som kan varieras, till exempel miljön som testet körs ut, kan också lagras med data och separeras från testskriptet. En fördel som tillhandahålls av dessa ramverk är separationen av data och logik, vilket ofta leder till lägre underhåll på lång sikt.