Hur man skriver effektiva testfall
Software Teams

Hur man skriver effektiva testfall

Inom finanssektorn kallas det en ”maker-checker-process”. Inom riskhantering är det allmänt känt som ”4-Eyes-principen”. Inom förvaltningen av amerikanska kärnvapen kallas det ”tvåpersonersprincipen”.

I grund och botten gör de alla samma sak: Dessa processer innefattar en ytterligare nivå av utvärdering, bekräftelse, auktorisering eller godkännande för att säkerställa resultatets noggrannhet, kvalitet eller relevans.

Inom mjukvaruutveckling kallas detta för testning eller kvalitetssäkring. Enkelt uttryckt innebär mjukvarutestning att man utvärderar koden för att säkerställa att den fungerar som förväntat. För att utföra denna aktivitet på ett effektivt sätt 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 man ska använda det och, viktigast av allt, hur man skriver testfall.

⏰TL;DR: Hur man skriver effektiva testfall för programvarukvalitet

1. Vad är ett testfall inom mjukvarutestning?Ett testfall är en dokumenterad uppsättning steg, indata, villkor och förväntade resultat som används för att verifiera att en funktion fungerar som avsett.

2. Varför är testfall viktiga för QA-team?De hjälper till att identifiera fel, validera krav, minska risker och säkerställa att nya uppdateringar inte påverkar befintlig funktionalitet negativt.

3. Vad är skillnaden mellan ett testfall och ett testscenario?Ett testscenario är en övergripande beskrivning av vad som ska testas, medan ett testfall ger detaljerade instruktioner om hur det ska testas.

4. Vad bör ett bra testfall innehålla?Det innehåller vanligtvis ett ID, en beskrivning, förutsättningar, utförandesteg, förväntade resultat och utrymme för att dokumentera faktiska resultat.

5. Hur kan team skriva bättre och snabbare testfall?Använd tydliga steg, tänk som en användare, fokusera på ett mål per test, granska ditt arbete med kollegor och använd återanvändbara mallar och verktyg.

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 samla in användarens namn och e-postadress för prenumeration på ett nyhetsbrev. Testfallet för detta kommer att specificera följande:

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

  • Användaren anger ett namn
  • Användaren anger en e-postadress
  • Användaren klickar på ”Skicka”
  • Bekräftelsemejl skickat till användaren
  • Data som sparats i motsvarande databas
  • Data har lagts 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 godkänns, annars visa felmeddelande
  • Spara om valideringen för fältet e-postadress godkänns, 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

Indata: Exempel på vad som är acceptabla indata för funktionen. Vanligtvis skapar kvalitetssäkringsteam [QA] testdata som kan testa både positiva och negativa resultat.

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

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

Varför är testfall viktiga inom mjukvaruutveckling?

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

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

Validering av krav: Testfall säkerställer att det du har byggt är precis det du hade tänkt dig från början. Detta är särskilt viktigt om du är en tjänsteorganisation som utvecklar programvara för externa intressenter med specifika krav.

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

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 enda testfall klara allt detta? Egentligen inte. Beroende på funktion, programvara, system, behov och organisationens mål finns det flera olika typer av testfall som QA-team skriver.

Vilka typer av testfall använder QA-team?

  • Funktionstester för att bekräfta att funktionerna fungerar
  • Enhetstester för isolerad logik
  • Säkerhetstester för skydd och efterlevnad
  • Prestandatester för hastighet och skalbarhet
  • Regressionstester för att förhindra fel

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. Detta är det absolut minsta som varje kvalitetsansvarig skriver.

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

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

Prestandatestfall: Dessa 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 utgö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 bestämmer du vad din programvara ska göra och skapar testfall som är anpassade efter det. Du måste täcka alla scenarier som är viktiga för dig.

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

Vad är skillnaden mellan ett testfall och ett testscenario?

Ett testfall är en utförlig beskrivning av hur din nya funktion ska fungera [och hur den ska testas]. Ett testscenario är en övergripande beskrivning av vilka händelser som kan inträffa [och därmed bör testas].

Om vi utgår från det tidigare exemplet skulle testscenariot vara ”testa prenumerationen på nyhetsbrevet”. Testfallen skulle dock vara:

  • Testnamnsfält med ett godkänt namn
  • Testnamnsfält med specialtecken
  • Testfält för kändisnamn
  • Testnamnsfält med siffror
  • Fält för testnamn för platshållare eller fiktiva namn som John Doe
TestfallTestscenario
DefinitionUtförlig dokumentation om hur man testar en funktionKortfattad beskrivning av hur funktionen ska fungera ur slutanvändarens perspektiv
NivåÅtgärder på låg nivå med detaljerat ansvarÖvergripande åtgärder med ansvar för helheten
FokusHur man testar [detaljerad beskrivning av avsedd funktionalitet]Vad som ska testas [kort sammanfattning av förväntade resultat]
KällaHärledda från testscenarierHärledda från användarberättelser och affärsanvändningsfall
TillvägagångssättÖverväg ett bredare spektrum av möjligheter och testa noggrantImitera verkliga scenarier och testa därefter

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

Vad bör ett välskrivet testfall innehålla?

Komponenterna i ett testfall är:

  • Unik identifierare
  • Syfte eller beskrivning
  • Förutsättningar
  • Steg för genomförande
  • Förväntade resultat
  • Faktiska resultat för jämförelse

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 verkar liknande. Testfall-ID:t hjälper dig att skilja mellan dem.

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

Förutsättningar: Alla krav som måste uppfyllas för att kunna använda denna funktion. Vi diskuterade till exempel validering för varje fält ovan. Utöver det kan andra villkor inkludera:

  • Användaren bör inte redan ha prenumererat på nyhetsbrevet
  • Användaren borde 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 lyckad.

  • 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 i respektive databas
  • När uppgifterna har sparats i databasen, skicka ett bekräftelsemejl till användaren

Faktiska resultat: Detta är testarens iakttagelser efter att testfallet har körts. Det är detta 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

Så här skriver du effektiva testfall:

  • Identifiera verkliga användningsscenarier
  • Definiera vad som måste bevisas för att det ska anses vara lyckat
  • Dokumentera tydliga, repeterbara steg
  • Kartlägg resultat för varje variant
  • Registrera inställningar och uppföljningsstatus

Att skriva ett bra testfall kräver både affärslogik och teknisk skarpsinnighet. Du måste förstå det både ur användarens perspektiv i den verkliga världen och ur det tekniska perspektivet i den digitala världen. Nedan följer ett robust ramverk som hjälper dig att komma igång på den resan.

1. Hur identifierar du rätt 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. Hur påverkar målen dina testfall?

I det här skedet ska du definiera 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 vill att den ska vara säker och prestandastark, skriver du även motsvarande testfall. Detta hjälper dig att effektivisera din agila testprocess och presentera resultaten för utvecklingsteamet.

3. Vad gör teststeg tydliga och repeterbara?

Det här steget handlar om mer än bara att beskriva 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 felmeddelandet: ”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 består av bokstäver och mellanslag”
  • Om namnet är en platshållare, visa ett felmeddelande: ”Ange ett giltigt namn”
  • Om namnet valideras, låt användaren skicka in

Gör dem återanvändbara: De flesta funktioner har överlappningar med tidigare funktioner. Fälten för nyhetsbrevsprenumerationer kan till exempel likna dem som används för att skapa nya användarkonton. Återanvänd dem så mycket som möjligt för att upprätthålla konsekvens och effektivitet.

Du kan faktiskt också skapa återanvändbara mallar för produktkravsdokument, från vilka det är enklare 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-tavlor
Hur man gör kaffe som ett flödesschema med ClickUp Whiteboards

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

Ange sammanhang: Medan testscenariot beskriver affärssammanhanget måste du tydligt beskriva testuppsättningen. Ange programvaruversion, operativsystem/webbläsare, hårdvara, datum- och tidsformat, tidszon etc. Länka även till eventuella dokument och resurser som kan vara till hjälp under testutförandet.

4. Hur bör förväntade resultat definieras?

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 avslå prenumerationen eller förnya den?
  • Vad händer om användaren inte är en betalande kund – ska du be dem att betala nu?
  • Vad händer om användaren har avslutat prenumerationen tidigare? Bör du dubbelkolla innan du återprenumererar?

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. Varför är förutsättningar och eftervillkor nödvändiga?

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

Exempel på förutsättningar

  • Måste vara betalande kund
  • Du måste ange ett giltigt namn och en giltig e-postadress
  • Måste godkänna villkoren
  • Du måste använda den senaste versionen av Chrome
  • Du måste vara inloggad från mobilen

Exempel på postvillkor

  • Måste läggas till i databasen
  • Måste godkänna prenumerationen via bekräftelsemejlet
  • Måste läggas till i nyhetsbrevslistan i CRM

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

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

Vilka är de bästa metoderna för att skriva bra testfall?

De bästa metoderna för att skriva testfall är:

  • Tänk ur användarens perspektiv
  • Testa ett mål i taget
  • Använd kollegial granskning för att hitta blinda fläckar
  • Skapa återanvändbara mallar
  • Stöd arbetet med rätt verktyg

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 namnfältet innehåller två mellanslag? Eller om användarens efternamn har ett bindestreck?

För att säkerställa att dina testfall är inriktade på att leverera programvara av hög kvalitet bör du beakta 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 dig:

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

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

🎯 Fokusera på en sak i taget

Skriv inte ett funktionellt testfall som samtidigt ä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 eller 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 maker-checker-processen, krä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 den mest värdefulla att skapa mallar. Oavsett om du testar liknande funktioner eller helt olika sådana, ger en mall struktur åt dina tankar. Inkludera nyckelkomponenter, en automatiserad numreringsmekanism eller ett ramverk för att presentera alla testresultat.

ClickUp-mall för testfall

ClickUps testfallsmall är ett enkelt men kraftfullt exempel på hur du kan förbättra effektiviteten och översikten avsevärt med ett repeterbart ramverk. Denna mall på nybörjarnivå är anpassningsbar, vilket gör att dina team kan få mer gjort snabbare. Dessutom kan du använda mallen för att identifiera kandidater för automatisering och fördubbla dina insatser inom kvalitetssäkring.

🛠️ Använd rätt verktyg

I ett mjukvaruutvecklingsteam kan det vara en tidskrävande uppgift att skriva omfattande testfall för komplexa funktioner. För att inte tala om att dokumentera och organisera dem så att de är lätta att komma åt.

För att göra detta, välj rätt verktyg.

Vilka verktyg hjälper team att hantera testfall effektivt?

Moderna QA-plattformar kopplar samman planering, utförande, rapportering och automatisering för att upprätthålla täckning i stor skala.

  • ClickUp: Samlade uppgifter, buggar, automatiseringar och mallar
  • TestRail: Strukturerad hantering av testfall och spårbarhet
  • BrowserStack: Validering över olika enheter och miljöer
  • Jira: Koppla testning till utvecklingsarbetsflöden

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

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å – det vill säga ett positivt och ett negativt. Det kan vara tre, om testfallet är villkorat. Eller så kan det vara flera.

För att klara detta behöver du ett robust verktyg. Några av de bästa moderna verktygen för kvalitetssäkring är:

ClickUp

Så här förbättrar ClickUp hanteringen av testfall:

  • Registrera buggar och önskemål via formulär
  • Spåra utförandet över olika tavlor och kalendrar
  • Automatisera uppdrag och överlämningar
  • Återanvänd checklistor och mallar
  • Skapa rapporter snabbare med AI

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

ClickUp-hantering av testfall
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 spårning av buggar och problem. Hantera befintliga testfall och skapa nya med ClickUp. Använd formulär för mjukvaruteam för att registrera förfrågningar/buggar och automatiskt omvandla dem till uppgifter för teamet.

Översikt för drift: Du kan visa det som en Kanban-tavla över olika statusar eller använda kalendervyn för att schemalägga dem. Hantera QA-teamets uppgifter med ClickUp-vyn Workload och få ut saker i produktion snabbare. Använd ClickUps mall för spårning av buggar och problem för att få en helhetsbild av allt som rör testning i ditt mjukvaruutvecklingsprojekt.

Automatisering inom projektledning: Integrera testfallshantering smidigt i din produktutvecklingsprocess.

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

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

Bästa praxis redan på plats: Använd de många fördesignade mallarna för att skapa struktur i din testprocess. Börja med de olika mallarna för testfall eller felrapporter.

ClickUps mall för testhantering

Prova sedan ClickUps mall för testhantering för att effektivisera dina testscenarier, testfall och testkörningar. Med den här mallen kan du följa processen, utvärdera resultat och samarbeta med utvecklingsteamet kring buggar och problem.

För nybörjare innehåller den här mallen även ett omfattande dokument med titeln ”Så här kommer du 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-mallen för testrapporter för att sammanfatta resultaten av dina tester och överlämna dem till utvecklarna.

TestRail

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

BrowserStack

BrowserStack är ett verktyg för testning av appar och webbläsare. Det erbjuder testning av iOS- och Android-appar samt webbplatser i flera olika webbläsare. Det innehåller specifika moduler för visuell testning, tillgänglighetstestning, testobservabilitet, automatisering med lite kod och mycket mer.

Jira

Som ett av de mest populära verktygen för agil projektledning fungerar Jira även som en programvara för felrapportering. 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 hantering av testfall kan dock rapporterings- och automatiseringsfunktionerna vara begränsade.

Är du redo att stärka din mjukvarutestningsprocess? Bygg med ClickUp.

Inom mjukvaruutveckling spelar testning en avgörande roll för att säkerställa att allt fungerar som det ska. Det ger ett heltäckande stöd.

Det validerar utvecklingsteamets arbete. Det bekräftar att det överensstämmer med affärsteamets avsikter. Det förblir troget användarens 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 just dina behov.

Förutom kraftfull och mångsidig uppgiftshantering innehåller ClickUp även en testsuite, DevOps-automatiseringar, integrationer och mallar som verkligen gör skillnad. Se själv. Prova ClickUp gratis idag.