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 utdata överensstämmer med slutanvändarens förväntningar. Testningen görs genom att ge exempel på inmatningar, fånga upp resulterande utmatningar och verifiera att faktiska utmatningar är desamma som förväntade utmatningar.

Några exempel på funktionell testning ä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 funktionstestningOm du vill ha en programvara som fungerar på ett enkelt sätt 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.

Funktionell testning

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 hos 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 vid 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. Testmålen inkluderar validering av att applikationen fungerar som den var avsedd att göra och att den hanterar fel och oväntade scenarier på ett elegant sätt.

Skapa testscenarier

Ta fram en lista över alla möjliga (eller åtminstone alla de viktigaste) testscenarierna för en viss funktion. Testscenarierna 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 när transaktionen har slutförts.

Skapa testdata

Skapa testdata som simulerar normala användningsförhållanden baserat på de testscenarier som du har identifierat. 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 plattfil, XML eller ett kalkylblad. Varje uppsättning indata bör 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 testinmatningarna. 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 det faktiska och det förväntade resultatet skiljer sig åt har funktionen inte klarat testet och en defekt bör registreras.

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

När en defekt har identifierats bör den registreras i ett formellt spårningssystem som är tillgängligt för hela projektgruppen. Nödvändiga ändringar ska göras i applikationen och testfallet ska 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 funktionstester 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 registrerats 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 är godkänt eller inte.

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 testautomatiseringsverktyg innehåller 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 hjälper till 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 och göra det möjligt att skriva tester på vanlig 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, chefer etc.). De olika typerna av användare och deras typiska navigering i applikationen måste beaktas i 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 prioriteras framför lägre prioriterade funktioner.


Våra AI-drivna, intelligenta och 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™ Functional Test Automation kan hjälpa dig att få ut optimalt värde av din funktionella testning.

Vad är funktionstestning?

Kom igång redan idag.

Läs mer om detta

Hur kan vi hjälpa till?

Fotnoter

OpenText sidfot