OpenText startsida.
Tekniska ämnen

Vad är funktionstestning?

 Illustration av IT-objekt med fokus på ett frågetecken

Översikt

Funktionstestning är en typ av testning som syftar till att fastställa om varje applikationsfunktion fungerar enligt programvarukraven. Varje funktion jämförs med motsvarande krav för att fastställa om dess resultat överensstämmer med slutanvändarens förväntningar. Testningen görs genom att tillhandahålla exempel på inmatningar, fånga upp resulterande utmatningar och verifiera att faktiska utmatningar är desamma som förväntade utmatningar.

Några exempel på funktionella tester är:

  • Kan användare framgångsrikt logga in i applikationen när de har angett legitima referenser?
  • Avvisar betalningsgatewayen inmatningen och visar ett felmeddelande när en användare matar in ett ogiltigt kreditkortsnummer?
  • Lyckas inmatningarna på skärmen "Lägg till ny post" lägga till och spara en ny post i databasen?
 
I slutet av funktionstestningen bör du ha en programvara som har ett sammanhängande användargränssnitt, ett konsekvent API och som integreras sömlöst med affärsprocesser.

Funktionstestning

Funktionell testning kontra icke-funktionell testning

Till skillnad från icke-funktionell testning handlar funktionell testning inte om att undersöka kvaliteten, säkerheten eller prestandan i applikationens underliggande källkod. Det mäter inte hastighet, skalbarhet och tillförlitlighet.

Funktionstestning fokuserar snarare på resultatet av bearbetningen och inte på mekaniken i bearbetningen och avgör om applikationen uppfyller användarnas grundläggande minimiförväntningar.

I den meningen är definitionen av funktionell testning nästan synonym med black-box-testning, medan white-box-testning å andra sidan oftare är en egenskap hos icke-funktionella tester. 


Typiska steg för funktionstestning

En funktionstestplan följer vanligtvis nedanstående sekvens:

Identifiera testmålen

Funktionella testmål är de funktioner som programvaran förväntas ha baserat på projektkraven. Testning syftar bland annat till att validera att applikationen fungerar som den är avsedd att göra och att den hanterar fel och oväntade scenarier på ett bra sätt.

Skapa testscenarier

Ta fram en lista över alla möjliga (eller åtminstone alla de viktigaste) testscenarierna för en viss funktion. Testscenarier beskriver de olika sätt som funktionen kommer att användas på. För en betalningsmodul kan testscenarierna t.ex. omfatta flera valutor, hantering av ogiltiga eller utgångna kortnummer och generering av ett meddelande om att transaktionen har slutförts.

Skapa testdata

Skapa testdata som simulerar normala användningsförhållanden baserat på de testscenarier som du identifierade. Du kan mata in testdata manuellt (t.ex. från ett MS-Excel-kalkylblad eller en utskrift) eller automatiskt via ett skript eller testverktyg som läser och matar in data från en databas, en flatfil, XML eller ett kalkylblad. Varje uppsättning indata ska också ha tillhörande data som beskriver det förväntade resultat som indata ska generera.

Utforma testfall

Skapa testfall baserat på de olika önskade resultaten för testingångarna. Om du t.ex. anger ett ogiltigt kreditkortsnummer ska programmet visa ett meningsfullt felmeddelande.

Exekvera testfallen

Kör testfallen genom applikationen och jämför faktiska resultat med förväntade resultat. Om de faktiska och förväntade resultaten skiljer sig åt har funktionen inte klarat testet och en defekt ska registreras.

Överväga, spåra och åtgärda defekter

När en defekt har identifierats ska den registreras i ett formellt spårningssystem som är tillgängligt för hela projektgruppen. Nödvändiga ändringar bör göras i applikationen och testfallet utföras igen för att bekräfta lösningen innan en defekt markeras som stängd.


Hur fungerar verktyg för automatiserad funktionstestning?

Verktyg för automatisering av funktionella tester kan interagera med användargränssnittet i den applikation som testas. De kan identifiera objekt på skärmen, t.ex. listboxar, textboxar och knappar, och kan göra val, mata in data och trycka på dem.

Många verktyg för automatisering av funktionella tester innehåller en inspelare som "tittar på" användaren när denne interagerar med en applikation och dess objekt på skärmen, registrerar de data som användaren matar in i systemet och de åtgärder som användaren utför, t.ex. trycker på knappar eller väljer menyer. Dessa åtgärder kan sedan spelas upp igen, med hjälp av de objekt, data och åtgärder som fångats upp under inspelningen, för att replikera användarens aktiviteter. Resultaten av dessa åtgärder noteras av testverktyget och jämförs med de förväntade resultat som definierats av automationsingenjören för att avgöra om testet godkändes eller misslyckades.

Ingenjörer inom funktionell testautomatisering kan bygga sina tester steg för steg med hjälp av de objekt som verktyget känner igen, eller så kan de börja med en inspelning, anpassa stegen och parametrisera data för att generalisera dem och göra det möjligt att köra tester i olika miljöer, inklusive olika webbläsare och mobila enheter.


Artificiell intelligens i verktyg för funktionstestning

Ledande verktyg för testautomatisering har idag funktioner för artificiell intelligens (AI) som använder avancerade tekniker som maskininlärning, datorseende, neurala nätverk och bearbetning av naturligt språk. Detta gör det möjligt att identifiera objekt på skärmen på samma sätt som en människa gör, interagera med och manipulera objekt på ett naturligt sätt samt att skriva tester på lättbegriplig engelska.

AI-baserad automatisering av funktionella tester har visat sig minska tiden för att skapa tester, öka testtäckningen, öka testtillgångarnas motståndskraft och minska underhållet av tester.


Vilka är de bästa metoderna för funktionstestning?

Skapa testfall tidigt

Vänta inte på att kodningen av applikationen eller modulen ska vara klar innan du börjar skapa testfall. Det är i de tidiga faserna av projektet som användarkraven är som färskast. Du kan alltid ändra testfallen senare om det behövs.

Automatisera

Funktionstestning kan vara en mödosam, repetitiv och tidskrävande process. Ju mer du automatiserar, desto snabbare kan du säkerställa önskad funktionalitet eller identifiera och korrigera defekter, och desto mer sparar du in på testtid och kostnader i appleveransprocessen. Det kanske inte är möjligt, eller ens önskvärt, att automatisera alla testfall, men bara genom att få bort de viktigaste testfallen från den manuella listan kan du avsevärt förbättra din test-ROI.

Förstå användarens tankeprocess

Funktionstestare måste ha en djup förståelse för slutanvändarens tankeprocess. Det finns ofta olika typer av användare för varje applikation (köpare, säljare, administratörer, dataregistrerare, arbetsledare etc.) De olika typerna av användare och deras typiska navigering i applikationen måste beaktas för varje testplan.

Prioritera

Testare har begränsad tid och begränsade resurser. Alla funktioner kan inte testas. Vissa applikationsfunktioner är högprioriterade och måste därför ha testprioritet framför funktioner med lägre prioritet.


Våra AI-drivna, automatiserade verktyg för funktionstestning kan hjälpa dig

Även om funktionstestning kan vara en utmaning för många organisationer, är fördelarna med en korrekt automatiserad QA-organisation för funktionstestning långt större än dessa utmaningar, och att utnyttja kraften i beprövade verktyg för funktionstestning är det bästa sättet att göra det på. Ta reda på hur OpenText™ funktionella testlösningar kan hjälpa dig att få ut optimalt värde från din funktionella testning.

Effektivisera testningen med funktionell testautomatisering

Lär dig hur verktyg för funktionstestning kan optimera programvarukvaliteten och förbättra användarupplevelsen.

Läs mer om detta

Hur kan vi hjälpa till?

Fotnoter