Automatiserad testning
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 30 augusti 2018; kontroller kräver
6 redigeringar .
Automatiserad mjukvarutestning är en del av testprocessen i kvalitetskontrollfasen av mjukvaruutvecklingsprocessen . Den använder mjukvaruverktyg för att köra tester och kontrollera resultatet av körningen, vilket hjälper till att minska testtiden och förenkla testprocessen.
Historik
De första försöken med "automatisering" dök upp under DOS- och CP/M -operativsystemens era . Sedan bestod det i att utfärda kommandon till applikationen via kommandoraden och analysera resultaten. Lite senare lades fjärranrop till via API:et för arbete över nätverket . Först Automatiserad testning nämns i Frederick Brooks bok The Mythical Man-Month , som talar om utsikterna för att använda enhetstestning . Men verkligen testautomatisering började utvecklas först på 1980-talet.
Tillvägagångssätt
Det finns två huvudsakliga metoder för att testa automatisering: testning på kodnivå och testning av användargränssnitt (specifikt GUI-testning). Den första typen inkluderar i synnerhet enhetstestning . Till den andra - imitation av användaråtgärder - funktionell testning (med speciella testramar .)
GUI automation
Den vanligaste formen av automatisering är applikationstestning genom ett grafiskt användargränssnitt ( GUI ) . Populariteten för denna typ av testning beror på två faktorer: för det första testas applikationen på samma sätt som en person kommer att använda den, och för det andra är det möjligt att testa applikationen utan att ha tillgång till källkoden.
GUI-automatisering har utvecklats över 4 generationer av verktyg och tekniker:
- Infångnings-/ uppspelningsverktyg registrerar testarens åtgärder under manuell testning . De låter dig utföra tester utan direkt mänsklig inblandning under lång tid, vilket avsevärt ökar produktiviteten och eliminerar den "dumma" upprepningen av repetitiva åtgärder under manuell testning. Samtidigt kräver varje liten förändring av programvaran som testas en omskrivning av de manuella testerna. Därför är denna första generation av verktyg inte effektiv eller skalbar.
- Skript , en form av programmering på språk som är speciellt utformade för att automatisera mjukvarutestning, lindrar många av problemen med inspelnings- och uppspelningsverktyg. Men utvecklingen görs av programmerare på hög nivå som arbetar separat från testarna som direkt kör testerna. Dessutom är skript bäst lämpade för att testa GUI och kan inte injiceras, paketeras eller kombineras i ett system på något sätt. Slutligen kräver ändringar av programvaran som testas komplexa ändringar av motsvarande skript, och att upprätthålla ett ständigt växande bibliotek av testskript blir trots allt en oöverstiglig uppgift.
- Datadriven testning är en metodik som används inom testautomatisering. Det speciella är att testskript exekveras och verifieras på basis av data som lagras i ett centralt datalager eller databas. Databasens roll kan utföras av ODBC-resurser, csv- eller xls-filer etc. Datadriven testning är kombinationen av flera interagerande testskript och deras datakällor till ett ramverk som används i metodiken. I detta ramverk används variabler både för ingångsvärden och för utdatatestvärden: i ett testskript kodas vanligtvis navigering genom applikationen, läsning av datakällor och loggningstestning. Så logiken som ska köras i skriptet beror också på data.
- Sökordsbaserad testautomatisering innebär att dela upp processen för att skapa ärende i två steg: planeringsstadiet och implementeringsstadiet . I det här fallet är det slutliga testet inte en programkod, utan en beskrivning av en sekvens av åtgärder med deras parametrar (till exempel "skapa en användare i databasen med inloggning XXX och lösenord YYY"). I det här fallet är ramverket ansvarigt för den direkta implementeringen av nyckelord (åtgärder), och det räcker för att testdesignern har en uppfattning om hela uppsättningen av åtgärder som implementeras i ramverket. Detta gör det möjligt att skapa tester för personer som inte har programmeringskunskaper.
Problem
Ett av huvudproblemen med automatiserad testning är dess komplexitet: trots att det låter dig eliminera en del av rutinoperationerna och påskynda utförandet av tester, kan stora resurser spenderas på att uppdatera själva testerna. Detta gäller båda typerna av automatisering. Vid refactoring är det ofta nödvändigt att uppdatera enhetstester också, och att ändra testkoden kan ta lika lång tid som att ändra huvudkoden. Å andra sidan, när du ändrar gränssnittet för applikationen, är det nödvändigt att skriva om alla tester som är associerade med de uppdaterade fönstren, som med ett stort antal tester kan ta upp betydande resurser.
Applikationer
Det finns många applikationer för testautomatisering. Den mest populära av dem enligt resultaten från 2007: [1]
Att använda dessa verktyg hjälper testare att automatisera följande uppgifter:
- produktinstallation
- skapa testdata
- GUI- interaktion
- problemdefinition
Automatiserade tester kan dock inte helt ersätta manuell testning. Automatisering av alla tester är en mycket dyr process, och därför är automatisk testning endast ett tillägg till manuell testning. Det bästa användningsfallet för automatiserade tester är regressionstestning .
Toolkit
Se även
Anteckningar
- ↑ SoftJournal 'September 2007/ SoftJournal 'September 2007 (länk ej tillgänglig) . Hämtad 12 april 2010. Arkiverad från originalet 23 mars 2010. (obestämd)
Länkar