Hur man skriver effektiva testfall
Software Teams

Hur man skriver effektiva testfall

Inom finansiella tjänster kallas det för en maker-checker-process. Inom riskhantering är det allmänt känt som 4-Eyes-principen. Inom hanteringen av amerikanska kärnvapen kallas det för tvåpersonskonceptet.

I grund och botten gör de alla samma sak: Dessa processer inkluderar en ytterligare nivå av utvärdering, bekräftelse, auktorisering eller godkännande för att säkerställa noggrannheten, kvaliteten eller relevansen av resultatet.

Inom mjukvaruutveckling kallas detta för testning eller kvalitetssäkring. Enkelt uttryckt utvärderar mjukvarutestning koden för att säkerställa att den fungerar som förväntat. För att utföra denna aktivitet effektivt använder kvalitetsteam ett kraftfullt verktyg som kallas testfall.

I det här blogginlägget undersöker vi vad det är, varför det behövs, när det ska användas och, viktigast av allt, hur man skriver testfall.

Vad är ett testfall?

Ett testfall är en uppsättning åtgärder, villkor och indata som används för att utvärdera kvaliteten på en programvara.

Låt oss säga att du har skapat ett formulär för att registrera användarens namn och e-postadress för prenumeration på ett nyhetsbrev. Testfallet kommer att specificera följande:

Åtgärder [både användarorienterade och interna]: Allt som användaren eller programvaran förväntas göra för att slutföra arbetsflödet i den programvara som byggs.

  • Användaren anger ett namn
  • Användaren anger en e-postadress
  • Användaren klickar på "Skicka".
  • Bekräftelsemejl skickat till användaren
  • Data sparade i motsvarande databas
  • Data läggs till i respektive nyhetsbrevs e-postlista

Villkor: De krav som användaren eller systemet förväntas uppfylla när de utför sina åtgärder.

  • Spara om valideringen för namnfältet accepteras, annars visa felmeddelande
  • Spara om valideringen för e-postadressfältet accepteras, annars visa felmeddelande
  • Lägg till i nyhetsbrevslistan endast om användaren har bekräftat sin e-postadress.
  • Om användaren redan finns, visa motsvarande felmeddelande.

Inmatningsdata: Exempel på vad som är acceptabel inmatning för funktionen. Vanligtvis skapar kvalitetssäkringsgrupper [QA] testdata som kan testa positiva och negativa resultat.

Om till exempel ett villkor för validering av namnfältet är ”får endast innehålla bokstäver i alfabetet och mellanslag”, skulle testdata vara

  • Jane Doe, som uppfyller kriterierna
  • Ad@m Sand!er, som inte uppfyller kriterierna

Testfallens roll inom mjukvaruutveckling

Testfallsmetoden är en omfattande, systematisk och repeterbar metod för mjukvarutestning. Dess primära syfte är att säkerställa applikationens kvalitet, men den tillför också flera nivåer av robusthet och tillförlitlighet till själva mjukvaruutvecklingsprocessen.

Identifiera fel: Testfall hjälper till att identifiera fel i programvara. De avgör om applikationen är säker att överföra till produktion.

Validera krav: Testfall säkerställer att det du har byggt är det du från början avsåg att bygga. Detta är särskilt viktigt om du är en tjänsteorganisation som bygger programvara för externa intressenter som har specifika krav.

Riskminimering: Testfall utvärderar en funktions säkerhet, prestanda och finansiella risker. Kvalitetsanalytikern inkluderar även villkor avseende regelefterlevnad, branschstandarder etc. för att säkerställa att alla aspekter täcks.

Balansera helheten: En ny funktion kan fungera bra isolerat. Men när den integreras i resten av programvaran kan den sluta fungera eller orsaka att någon annan funktion slutar fungera. Testfall säkerställer att detta upptäcks innan det påverkar användarupplevelsen i produktion.

Kan ett testfall göra allt ovanstående? Inte riktigt. Beroende på funktion, programvara, system, behov och organisatoriska mål finns det flera typer av testfall som QA-team skriver.

Typer av testfall

Det finns ett testfall för varje typ av mjukvarutestning. Några av de vanligaste är följande.

Funktionalitetstestfall: Detta grundläggande testfall utvärderar om en programvara fungerar som avsett. Alla kvalitetssäkrare skriver detta som ett minimum.

Enhetstestfall: Enhetstestning utvärderar en del av funktionen eller en enskild enhet. Till exempel kan en kvalitetssäkrare skriva enhetstester för att verifiera att fältet för e-postadress uppfyller olika villkor.

Säkerhetstestfall: Detta utvärderar om funktionen uppfyller säkerhetsstandarderna för att gå till produktion. Vanligtvis inkluderar detta tester för auktorisering, autentisering, efterlevnad av OWASP-standarder etc.

Prestandatestfall: Detta validerar att den nya funktionen uppfyller kraven på hastighet, tillförlitlighet, skalbarhet och resursutnyttjande.

Regressionstestfall: Regressionstestning säkerställer att den nya funktionen du har utvecklat inte påverkar någon av de befintliga funktionerna i produkten.

Utöver dessa kan även specifika testfall köras. Till exempel kan designinriktade organisationer inkludera testfall för användargränssnitt (UI). Produkter som utför en del av ett större arbetsflöde kan skriva många integrationstestfall. Andra kan skapa specifika användbarhetstestfall kring heuristik, tillgänglighet, inkludering etc.

Som produktägare får du bestämma vad din programvara ska göra och skapa testfall som är tillämpliga för det. Du måste täcka alla scenarier som är viktiga för dig.

Betyder det att ett testfall bara är ett testscenario? Inte alls.

Testfall kontra testscenario

Ett testfall är en omfattande redogörelse för hur din nya funktion ska fungera [och hur den ska testas]. Ett testscenario är en övergripande beskrivning av vilka åtgärder som kan inträffa [och därför måste testas].

Om vi utvidgar det tidigare exemplet skulle testscenariot vara ”testa prenumerationen på nyhetsbrevet”. Testfallen skulle dock vara:

  • Testnamnfält med ett godtagbart namn
  • Testnamnfält med specialtecken
  • Testnamnfält för kändisnamn
  • Testnamnfält med siffror
  • Testnamnfält för platshållare eller fiktiva namn som John Doe
TestfallTestscenario
DefinitionOmfattande dokumentation om hur man testar en funktionKortfattad beskrivning av hur funktionen ska fungera ur slutanvändarens perspektiv
NivåLågnivååtgärder med detaljerat ansvarHögnivååtgärder med övergripande ansvar
FokusHur man testar [detaljerad beskrivning av avsedd funktionalitet]Vad ska testas [kortfattad redogörelse för avsedda resultat]
KällaHärledd från testscenarierHärledd från användarberättelser och affärsanvändningsfall
TillvägagångssättÖverväg en högre upplösning av möjligheter och testa noggrant.Imitera verkliga scenarier och testa därefter.

Nu när vi känner till skillnaderna kan vi återvända till testfallet och zooma in.

Komponenter i ett testfall

Sammanfattningsvis är ett testfall en detaljerad dokumentation av allt som behöver testas för att säkerställa att programvaran fungerar som avsett. Detta gör det omfattande, detaljerat och mångfacetterat, och involverar flera komponenter.

Några av de viktigaste komponenterna i ett testfall är:

Testfall-ID: Varje testfall har ett nummer. Det kanske låter enkelt, men för att testa en applikation grundligt kommer du att utföra olika tester som ser likadana ut. Testfall-ID:t hjälper dig att skilja mellan dem.

Beskrivning: Beskrivning av vad du testar. I exemplet ovan kan det vara ”Lägg till verkliga, intresserade potentiella kunder till vår nyhetsbrevsdatabas”.

Förutsättningar: Alla förutsättningar som måste uppfyllas för att kunna använda den här funktionen. Vi har till exempel diskuterat validering för varje fält ovan. Utöver det kan andra förutsättningar inkludera:

  • Användaren ska inte redan ha prenumererat på nyhetsbrevet.
  • Användaren ska inte ha avslutat prenumerationen på nyhetsbrevet.

Steg: Steg som användaren eller systemet ska följa för att slutföra utvärderingen och markera den som godkänd.

  • Användaren anger ett giltigt namn
  • Användaren anger ett giltigt e-post-ID
  • Användaren markerar kryssrutan för integritet
  • Användaren klickar på knappen Skicka

Förväntade resultat: Lista över vad systemet behöver göra härnäst.

  • Om användarnamnet är ogiltigt, visa ett felmeddelande.
  • Om e-postadressen är ogiltig, visa ett felmeddelande.
  • Om användarnamnet och e-postadressen är giltiga, spara dem i respektive databas.
  • När det har sparats i databasen, skicka ett bekräftelsemejl till användaren.

Faktiska resultat: Detta är testarens observationer efter att testfallet har körts. Detta är vad som skickas tillbaka till utvecklaren om något inte fungerar som det ska.

  • Testade namnfältet med Katy P3rry och det accepterades som en giltig inmatning [även om det innehåller en siffra].

Nu är du redo att skriva effektiva testfall. Så här gör du.

Hur man skriver effektiva testfall med exempel

För att skriva ett bra testfall krävs både affärslogik och teknisk kunskap. Du måste förstå det ur användarens perspektiv i den verkliga världen samt ur ett tekniskt perspektiv i den digitala världen. Nedan finns ett robust ramverk som hjälper dig att komma igång på den resan.

1. Identifiera testscenarier

Innan du skriver testfall bör du förstå de verkliga scenarier där funktionen kommer att användas. Läs användarberättelsen, studera kravdokumentet eller diskutera specifikationerna med utvecklaren.

Testscenarierna i föregående exempel skulle till exempel vara: Användaren prenumererar framgångsrikt på nyhetsbrevet.

I detta steg är det viktigt att fråga sig om kravdokumentet beskriver användaren på något specifikt sätt.

Om du till exempel skapar en nyhetsbrevsfunktion endast för betalande kunder, kommer du att ha ett scenario där icke-betalande användare kan försöka prenumerera.

Gå därför igenom krav, specifikationer och användarberättelser noggrant.

2. Definiera målen för testfallet

I detta skede definierar du vad du vill uppnå genom att köra dina tester. Om du till exempel bara testar om funktionen fungerar som planerat skriver du funktionella testfall.

Om du dessutom behöver säkerhet och prestanda skriver du även motsvarande testfall. Detta hjälper dig att effektivisera din agila testprocess och presentera resultaten för utvecklingsteamet.

3. Skriv tydliga och koncisa steg

Denna fas är mer än bara en beskrivning av arbetsflödet. Det är allt som kvalitetssäkringen behöver göra för att säkerställa att funktionen fungerar som förväntat.

Var noggrann: Gå in på så många detaljer som möjligt. Inkludera vad som behöver hända baserat på användarens/systemets åtgärd. Du kan till exempel skriva:

  • Ange namnet i namnfältet
  • Om namnet innehåller en siffra, visa ett felmeddelande: ”Ange ett namn som endast består av bokstäver och mellanslag”.
  • Om namnet innehåller specialtecken, visa ett felmeddelande: ”Ange ett namn som endast innehåller bokstäver och mellanslag”.
  • Om namnet är en platshållare, visa ett felmeddelande: ”Ange ett giltigt namn”.
  • Om namnet är giltigt, låt användaren skicka in

Gör det återanvändbart: De flesta funktioner överlappar andra funktioner från tidigare. Till exempel kan fälten för nyhetsbrevsprenumerationer likna dem för att skapa nya användarkonton. Återanvänd dem så mycket som möjligt för att upprätthålla konsistens och effektivitet.

Du kan faktiskt också skapa återanvändbara mallar för produktkravsdokument, från vilka det är lättare att extrahera testscenarier och testfall.

Rita upp processen: För komplexa funktioner kan det vara svårt att dokumentera alla testfall på ett linjärt sätt. I sådana fall kan du prova med ett flödesschema.

ClickUp Whiteboards
Hur man gör kaffe som ett flödesschema med ClickUp Whiteboards

ClickUp Whiteboards erbjuder en mycket anpassningsbar tom duk för att visualisera ditt funktionsflöde. Känn inte pressen att göra det själv. Skapa dina flödesscheman och dela dem med alla intressenter – affärsanalytiker, utvecklare, testchefer etc. – och få deras stöd innan du börjar!

Ange sammanhang: Medan testscenariot beskriver affärssammanhanget måste du tydligt beskriva testuppställningen. Ange programvaruversion, operativsystem/webbläsare, hårdvara, datum-/tidsformat, tidszon etc. Länka också till alla dokument och resurser som kan vara till hjälp under testkörningen.

4. Ange förväntade resultat

Detta är svaret på vad som händer om! Så, vad händer om namnfältet valideras? Vad händer om namnfältet inte valideras?

  • Vad händer om användaren redan är prenumerant? Ska du avvisa deras prenumeration eller förnya den?
  • Vad händer om användaren inte är en betalande kund – ska du be dem betala nu?
  • Vad händer om användaren har avslutat sin prenumeration tidigare? Bör du dubbelkolla innan du prenumererar igen?

På detta sätt kan du beskriva förväntade resultat för varje möjlighet. Ju mer komplex din funktion är, desto längre blir din lista.

5. Inkludera förhandsvillkor och eftervillkor

Numera är ingen funktion en ö. Inom mjukvaruutveckling är varje funktion kopplad till något annat, vilket innebär att testningen har ett antal förhandsvillkor och eftervillkor.

Exempel på förhandsvillkor

  • Måste vara betalande kund
  • Du måste ange ett giltigt namn och en giltig e-postadress.
  • Måste acceptera villkor och bestämmelser
  • Kräver den senaste versionen av Chrome.
  • Du måste vara inloggad från din mobil.

Exempel på eftervillkor

  • Måste läggas till i databasen
  • Måste acceptera prenumerationen i bekräftelsemejlet
  • Måste läggas till i nyhetsbrevlistan på CRM.

Om du är produktledare och vill lära dig mer om testning finns här några kodfria verktyg för produktchefer.

Det var grunderna, nu går vi in på detaljerna.

Bästa praxis för att skriva testfall

Låt oss vara ärliga: Att skriva testfall är en konst. Ett bra testfall kommer att avslöja buggar och fel som inte ens fanns med i kraven. Vad händer till exempel om namnet har två mellanslag? Eller om användarens efternamn har ett bindestreck?

För att säkerställa att dina testfall är inriktade på att leverera högkvalitativ programvara bör du överväga följande bästa praxis.

🧠 Tänk som en användare

Innan du skriver dina testfall, tänk ur användarens perspektiv. Var kritisk och detaljerad. I det exempel vi har diskuterat hittills kan du fråga:

  • Vad betyder "namn"? Förnamn? Efternamn? Eller båda?
  • Vems namn är detta? Bör fältnamnet istället heta ”ditt namn”?
  • Bör det finnas en platshållartext som vägleder läsaren?
  • Om användaren anger ett ogiltigt namn, ska felmeddelandet identifiera vad som är fel?

Sätt dig in i användarens situation. Utforska olika möjligheter och även extrema fall. Du kanske inte skapar testfall för alla, men att utforska dem hjälper till att stärka funktionen.

🎯 Fokusera på en sak i taget

Skriv inte ett funktionellt testfall som också är ett användbarhetstestfall och ett databastestfall. Gör en sak i taget. På så sätt vet du exakt vad som fungerade eller vad som gick fel när ett testresultat är godkänt/underkänt.

Att inkludera för många variabler i ett test komplicerar problemen när testet misslyckas.

👫 Gör det inte ensam

Testfall definierar mjukvarukvaliteten. Även om det är kontrollanten i tillverkar-kontrollantprocessen, behövs ytterligare ett lager av granskning av två personer. Så när du har skrivit testfallen, låt dem granskas av en kollega.

Be en kollega att granska det du har skrivit. Uppmuntra dem att hitta fel och ge kritisk feedback. Det är också bra att göra detta i samarbete med affärsanalytiker och utvecklare för att få en tydligare förståelse för deras avsikter.

♻️ Skapa återanvändbara mallar

Bland alla bästa metoder för att skriva testfall är det mest värdefulla att skapa mallar. Oavsett om du testar liknande funktioner eller helt olika funktioner, ger en mall struktur åt dina tankar. Inkludera viktiga komponenter, en automatiserad numreringsmekanism eller ett ramverk för att presentera alla testresultat.

ClickUp-testfallmall

ClickUps testfallmall är ett enkelt men kraftfullt exempel på hur du kan förbättra effektiviteten och synligheten avsevärt med ett repeterbart ramverk. Denna mall för nybörjare är anpassningsbar, vilket gör att dina team kan få mer gjort snabbare. Vad mer? Du kan också använda denna mall för att identifiera kandidater för automatisering och fördubbla dina QA-insatser.

🛠️ Använd rätt verktyg

I ett mjukvaruutvecklingsteam kan det vara tidskrävande att skriva omfattande testfall för komplexa funktioner. För att inte tala om att dokumentera och organisera dem för enkel åtkomst.

För att göra detta måste du välja rätt verktyg.

Verktyg och resurser för testfallshantering

God testfallshantering gör det möjligt för dig att skapa, organisera, utföra, registrera och övervaka det du testar. Det hjälper testteam att säkerställa noggrannhet utan att förlora effektivitet. Det hjälper utvecklingsteam att se buggarna tydligt.

Fördelarna är oändliga, men det är utmaningarna också. Tumregeln för antalet testfall per funktion är ”så många som behövs”. Beroende på din funktion kan det vara två, dvs. ett positivt och ett negativt. Det kan vara tre, om testfallet är villkorat. Eller det kan vara flera.

För att hantera detta behöver du ett robust verktyg. Några av de bästa moderna QA-testverktygen är:

TestRail

TestRail är en testhanteringsplattform för dokumentation och spårning av testplaner. Den innehåller funktioner för spårbarhet, täckning, testautomatisering och analys. Den integreras direkt med ett antal mjukvaruutvecklingsverktyg och erbjuder ett omfattande API.

BrowserStack

BrowserStack är ett testverktyg för appar och webbläsare. Det erbjuder testning för iOS- och Android-appar samt webbplatser på flera webbläsare. Det innehåller specifika moduler för visuell testning, tillgänglighetstestning, testobservabilitet, lågkodsautomatisering och mycket mer.

Jira

Jira är ett av de mest populära verktygen för agil projektledning och fungerar även som programvara för felspårning. Med Jira kan du skriva testfall och koppla dem till användarberättelser, kända fel eller andra problem.

Eftersom Jira inte är utformat för testfallshantering kan dock rapporterings- och automatiseringsfunktionerna vara begränsade.

ClickUp

ClickUp för mjukvaruteam är ett allt-i-ett-verktyg för projektledning, utformat för att stödja alla aspekter av utvecklingsprocessen. Testfallshantering är inget undantag.

ClickUp testfallshantering
Effektivisera hanteringen av testfall med ClickUp

Skriva testfall: ClickUp gör det möjligt för team att hantera sin backlog effektivt med robusta funktioner för fel- och problemspårning. Hantera befintliga testfall och skapa nya med ClickUp. Använd formulär för mjukvaruteam för att registrera förfrågningar/fel och automatiskt konvertera dem till uppgifter för teamet.

Översikt över verksamheten: Du kan visa det som en Kanban-tavla med olika statusar eller använda kalendervyn för att schemalägga dem. Hantera QA-teamets uppgifter med ClickUp Workload-vyn och få saker och ting i produktion snabbare. Använd ClickUps mall för fel- och problemspårning för att få en översikt över allt som testas i ditt mjukvaruutvecklingsprojekt.

Automatisering i projektledning: Integrera testfallshantering sömlöst i din produktutvecklingsprocess.

Använd ClickUp Automations för att tilldela rätt testare till varje testfall. När QA ändrar status, tilldela det automatiskt tillbaka till utvecklaren för granskning.

Med ClickUp för agila team kan du skapa återanvändbara checklistor som automatiskt läggs till i uppgifter. Konfigurera ClickUp Brain för att hjälpa QA-team att skriva rapporter snabbare.

Bästa praxis redan inställd: Använd dussintals fördesignade mallar för att strukturera din testprocess. Börja med de olika testfallsmallarna eller buggrapportmallarna.

ClickUps mall för testhantering

Prova sedan ClickUps testhanteringsmall för att effektivisera dina testscenarier, testfall och testkörningar. Med den här mallen kan du spåra processen, utvärdera resultaten och samarbeta med utvecklingsteamet om buggar/problem.

För nybörjare innehåller denna mall även ett omfattande dokument med information om hur du kommer igång, som guidar dig genom processen.

Undrar du hur man skriver en testrapport? Vi har en mall åt dig. Ladda ner och använd den nybörjarvänliga ClickUp-testrapportmallen för att sammanfatta resultaten av dina tester och överlämna dem till utvecklarna.

Skapa fantastisk programvara för alla fall med ClickUp

Inom mjukvaruutveckling spelar testning en avgörande roll för att säkerställa att allt fungerar som det ska. Det ger 360-graders support.

Det validerar utvecklingsgruppens arbete. Det bekräftar lämpligheten för affärsgruppens avsikt. Det förblir troget användarnas behov av funktionalitet, prestanda, säkerhet och integritet.

Att hantera en så kritisk och omfattande process kräver en genomtänkt uppsättning verktyg. Det är precis vad ClickUp är.

Oavsett om du följer en agil, vattenfalls- eller hybridmodell för mjukvaruutveckling, är ClickUp fullspäckat med funktioner som är utformade för att vara mycket anpassningsbara efter dina unika behov.

Förutom kraftfull, mångsidig uppgiftshantering innehåller ClickUp även en testserie, DevOps-automatiseringar, integrationer och mallar som ger resultat. Se själv. Prova ClickUp gratis idag.

ClickUp Logo

En app som ersätter alla andra