De flesta testfall misslyckas innan de upptäcker ett enda fel. De är skrivna som vaga checklistor, saknar förutsättningar, slår ihop flera åtgärder i ett enda steg eller beskriver förväntade resultat så vagt att två testare som läser samma testfall skulle vara oense om vad ”godkänt” innebär. Resultatet: fel slinker igenom, testkörningar går inte att reproducera och kvalitetssäkringen blir en flaskhals istället för ett säkerhetsnät.
Att skriva ett bra testfall handlar mindre om testkompetens och mer om verifieringsdesign. Inom finanssektorn kallas det för ”maker-checker”-processen. Inom kärnvapenledningen kallas det för ”tvåpersonersregeln”. Principen är densamma: kritiska uppgifter ska aldrig bero på en enda okontrollerad åtgärd. Ett välskrivet testfall bygger in samma noggrannhet i programvaran. Det skiljer det du förväntar dig från det du observerar, så att skillnaden mellan de två blir omöjlig att ignorera.
Vi visar dig hur du skriver testfall, varför de är viktiga och hur du kan förbättra testfallens kvalitet över tid.
TL;DR
Ett testfall definierar de exakta stegen, indata och förväntade resultaten som behövs för att verifiera att en funktion fungerar korrekt. Varje testfall måste ha ett unikt ID, förutsättningar och förväntade resultat angivna så att resultatet kan kontrolleras. Denna guide beskriver den sju steg långa skrivprocessen, tre praktiska exempel och hur man upprätthåller en tillförlitlig testsuite när produkten förändras.
Vad är testfall?
Ett testfall är ett strukturerat dokument som definierar de exakta stegen, indata, förutsättningarna och förväntade resultaten som behövs för att verifiera om en specifik programvara fungerar korrekt. Det är inte en testplan (som beskriver teststrategin) eller ett testskript (en automatiserad kod som utför stegen programmatiskt). Ett testfall är den specifikation som båda dessa bygger på.
Exempel: Du testar inloggningsfunktionen i en webbapplikation. Ett testfall för denna funktion skulle definiera följande element:
- Åtgärder som beskriver de steg en användare utför och de förväntade systemreaktionerna
- Villkor som definierar de regler som måste uppfyllas för att systemet ska kunna gå vidare till nästa steg
- Mata in data med exempelvärden för att testa olika resultat och verifiera både framgångsrika och misslyckade scenarier
Jämförelse mellan manuella och automatiserade testfall
AI ingår numera i de flesta testarbetsflöden. 76,8 % av testexperterna använder AI inom kvalitetssäkring, där skapande av testfall (69,6 %) och underhåll av testskript (59,6 %) är de två vanligaste användningsområdena, enligt PractiTests rapport ”State of Testing Report 2026”. Denna förändring märks tydligast när det gäller automatiserade testfall, så det är värt att veta hur de skiljer sig från manuella testfall.
| Parameter | Manuella testfall | Automatiserade testfall |
|---|---|---|
| Genomförande | Utförs av en mänsklig testare som följer en uppsättning dokumenterade steg | Utförs av programvaruverktyg, skript eller AI-agenter |
| Hastighet | Långsamt och tidskrävande, eftersom människor måste mata in data manuellt och verifiera resultaten | Kan köra hundratals testfall samtidigt |
| Repeterbarhet | Utsatt för mänskliga fel och inkonsekvent tolkning av stegen | Mycket repeterbara och konsekventa när testskripten underhålls väl |
| CI/CD-integration | Svårt att integrera i snabba leveransflöden på grund av mänskliga flaskhalsar | Integreras direkt i CI/CD-pipelines för att köra tester vid varje build |
| Underhåll | Kräver manuella uppdateringar av dokumenten varje gång kraven ändras | Kräver tekniskt underhåll för att uppdatera skript när användargränssnittet eller logiken ändras |
| Perfekt för | Utforskande tester | Repetitiva tester och regressionstester |
Varför välskrivna testfall är viktiga
Du upptäcker regressioner innan användarna skapar felrapporter. Varje kodändring medför en risk att något som redan fungerar slutar fungera. Ett välskrivet testfall blir en fast kontrollpunkt som körs efter varje driftsättning. När en utvecklare omarbetar din inloggningskod ett år senare och av misstag förstör sessionshanteringen, är det just det testfallet som flaggar detta i stagingmiljön.
Du gör godkänd/underkänd till ett faktum, inte en åsikt. Vaga förväntade resultat som ”systemet svarar på rätt sätt” tvingar varje testare att tolka vad ”rätt sätt” innebär. Två testare kör samma testfall, den ena markerar det som godkänt, den andra rapporterar en fel, och nu ägnar teamet sig åt att reda ut oenigheten istället för att felsöka programvaran. När ditt förväntade resultat lyder ”systemet visar felmeddelandet: ’Ogiltigt lösenord’ och håller kvar användaren på inloggningssidan”, finns det inget utrymme för tolkning. Resultatet stämmer antingen eller så stämmer det inte. Det är tvåpersonsregeln i praktiken: testfallet är skaparen, testaren är kontrollanten, och de måste båda tala samma språk.
Du omvandlar tyst kunskap till en återanvändbar tillgång. I de flesta team bär den erfarna QA-ingenjören på en osynlig karta över varje gränsfall, varje lösning och varje ”åh, se till att du också kollar X”. När den personen är ledig eller byter team försvinner kartan med dem. Dokumenterade testfall med tydliga förutsättningar och gränsvärden bevarar den kunskapen på ett strukturerat sätt. En ny testare som ansluter sig till teamet kan ta fram TC_LOGIN_005 och testa flödet för kontospärr efter fem inloggningsförsök redan första dagen, utan att behöva fråga någon vad tröskelvärdet är eller hur timern nollställs.
Du isolerar fel till exakta steg, inte till allmänna områden. När ett testfall sammanfattar ”navigera till sidan, ange inloggningsuppgifter och klicka på Skicka” i ett enda steg och testet misslyckas, vet du bara att ”något i inloggningsflödet gick fel”. ” När varje åtgärd är ett eget steg med sitt eget förväntade resultat kan felet spåras till steg 4: ”Klicka på ’Skicka återställningslänk’ → förväntat framgångsmeddelande, fick fel 500. ” Denna precision minskar felsökningstiden dramatiskt eftersom utvecklaren vet exakt vilken interaktion som utlöste felet, inte bara vilket funktionsområde som ska undersökas.
Du ser vad som täcks och vad som är en blindfläck. Utan strukturerade testfall är testtäckningen en gissning. Med dem kan du koppla varje fall till ett krav och omedelbart upptäcka luckor. Om din funktion för återställning av lösenord har sex scenarier (lyckad återställning, utgången länk, återanvänd länk, oregistrerad e-postadress, ogiltigt format, flera förfrågningar) och du bara har testfall för tre av dem, är luckan tydlig och mätbar. Denna insyn är det som förvandlar testningen från ”vi testade det” till ”här är exakt vad vi testade, här är vad vi inte testade och här är den risk vi accepterar.”
Komponenter i ett bra testfall
Ett användbart testfall gör mer än att bara beskriva vad som ska testas. Det fångar upp sammanhanget, utförandestegen och det förväntade systembeteendet så att en annan testare, utvecklare eller produktchef kan återskapa testet och verifiera resultatet.
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
För exemplet med inloggningsfunktionen på webbplatsen som vi visade ovan bör ditt testfall innehålla följande:
Testfalls-ID: Varje testfall behöver en unik identifierare. När en funktion testas skapar QA-team ofta flera testfall som validerar liknande förhållanden. Testfalls-ID:t gör det enkelt att spåra, organisera och hänvisa till dem vid felsökning eller rapportering.
Exempel: TC_LOGIN_001
Beskrivning: Här förklaras vilken funktionalitet testfallet validerar. Det innehåller en kort sammanfattning så att alla som läser testfallet omedelbart förstår dess syfte.
Exempel: Kontrollera att en registrerad användare kan logga in i applikationen med giltiga inloggningsuppgifter.
Förutsättningar: Förutsättningar beskriver det systemtillstånd som krävs innan testfallet körs. Utan dem kan testare köra samma test under olika förhållanden och få inkonsekventa resultat.
Exempel:
- Användarkontot måste redan finnas i systemet
- Användarkontot måste vara aktivt och får inte vara låst
- Inloggningssidan ska vara tillgänglig
Steg: Detta är de åtgärder som en användare eller testare utför för att genomföra testfallet. Varje steg bör vara tydligt och följa en logisk ordning så att vem som helst i teamet kan återskapa testet.
- Användaren navigerar till inloggningssidan
- Användaren anger en registrerad e-postadress
- Användaren anger rätt lösenord
- Användaren klickar på knappen Logga in
Förväntade resultat: Här definieras vad systemet ska göra om funktionen fungerar korrekt.
- Om inloggningsuppgifterna är giltiga autentiserar systemet användaren
- Användaren omdirigeras till instrumentpanelen
- En användarsession har skapats
Om inloggningsuppgifterna är ogiltiga ska systemet visa ett lämpligt felmeddelande.
Faktiska resultat: Dessa återspeglar testarens iakttagelser efter att testfallet har körts. Om det observerade beteendet avviker från det förväntade resultatet registreras problemet som en felrapport.
Exempel på observation:
- Du har angett giltiga inloggningsuppgifter men fick felmeddelandet ”Ogiltigt lösenord”
Nu ska vi sätta dina färdigheter i att skriva testfall i praktiken.
Visste du att? Endast 2,1 % av teamen beskriver sina AI-testmetoder som optimerade, medan över 85 % fortfarande befinner sig i inlednings- eller experimentfasen. Den vanligaste användningen är att generera testfall (69,6 %), inte strategiskt arbete som riskidentifiering (19,9 %).
Hur man skriver testfall (steg-för-steg-process)
Att skriva ett testfall består av sju steg: analysera kravet, lista scenarier, planera strukturen, skriva steg med förväntade resultat, bifoga sammanhang, låta det granskas, sedan köra testet och logga resultaten.
Steg 1: Analysera kraven
Innan du skriver testfallet bör du förstå vad funktionen är tänkt att göra. Här går du igenom tillgängliga dokument – PRD:er (produktkravsdokument), användarberättelser, funktionsspecifikationer och designdokument – och identifierar varje del av funktionaliteten som behöver verifieras.
Exempel: Du utvecklar en funktion som gör det möjligt för användare att återställa sina lösenord via e-post. För att skapa ett testfall kring detta måste du förstå:
- Vilket problem löser funktionen, dvs. kan en användare återfå åtkomst till sitt konto om hen glömmer sitt lösenord?
- Vilka åtgärder kan användaren utföra, dvs. begära en återställningslänk, ta emot den via e-post och ange ett nytt lösenord?
- Vad ska hända när dessa åtgärder vidtas, dvs. skickar systemet en återställningslänk och gör det möjligt för användaren att uppdatera sitt lösenord?
- Finns det några begränsningar, dvs. går länken ut efter en viss tid eller blir den ogiltig efter en användning?
- Finns det några valideringar eller regler, dvs. måste det nya lösenordet uppfylla specifika krav på format eller längd?
- Är någon funktionalitet oklar eller odefinierad? Om så är fallet, be om förtydligande från berörd intressent
Denna tydlighet ger dig grunden för att formulera ett tydligt mål för ditt testfall.
Mål: Verifiera att en registrerad användare kan återställa sitt lösenord via e-post.
Steg 2: Identifiera olika testscenarier
Lista sedan de testscenarier du behöver validera. Ett testscenario är en övergripande situation – en situation som vanligtvis förgrenar sig i flera testfall som täcker olika ingångsvärden och resultat.
För funktionen för återställning av lösenord kan dina scenarier se ut så här:
- Framgångsrik återställning: Kontrollera att en registrerad användare kan begära en återställningslänk och ange ett nytt lösenord
- Oregistrerad e-postadress: Testa vad som händer när en e-postadress som inte finns i systemet skickas in
- Länk har gått ut: Kontrollera att systemet blockerar åtkomst när man klickar på återställningslänken efter att den har gått ut
- Återanvänd länk: Testa att en redan använd återställningslänk inte kan användas igen
- Ogiltigt nytt lösenord: Kontrollera att lösenord som inte uppfyller formatkraven avvisas
- Flera återställningsförfrågningar: Testa vilken länk som förblir giltig när en användare begär flera i rad
Varje scenario här kommer att översättas till ett eller flera testfall som täcker specifika indata och villkor. Genom att bryta ner funktionen på detta sätt säkerställer du att du har testtäckning för både förväntat beteende och de gränsfall som verkliga användare oundvikligen kommer att stöta på.
Steg 3: Planera testet och fastställ testfallsstrukturen
För repetitiva regressionstester behöver du en struktur som gör att du kan dokumentera dina testfall och deras resultat på ett konsekvent sätt. En väldefinierad mall för testfall ger denna konsekvens och möjliggör återanvändning utan att du behöver börja om från början varje gång.
Planera ditt testförlopp genom att klargöra följande punkter:
Vem ska genomföra testet?
Vilken roll eller kompetens behöver den person som utför detta test ha? Tilldela roller beroende på testets komplexitet och behovet av mänsklig inblandning:
- QA-testare: Funktionstester och regressionstester, till exempel att verifiera inloggningsflöden, formulärvalideringar eller utcheckningsprocesser
- Säkerhetsteam: Tester som rör sårbarheter i samband med autentisering, åtkomstkontroll eller dataläckage
- Utvecklare: Enhetstester för enskilda funktioner som lösenordshashning eller generering av token
Hur kommer testet att genomföras?
- Vilka enheter och operativsystem ska testet köras på?
- Vilka verktyg eller testramverk kommer att användas?
- Kommer testet att utföras manuellt eller via en AI-agent?
- Hur ska resultaten dokumenteras – i ett testhanteringsverktyg, ett kalkylblad eller ett felrapporteringssystem?
Vilka är förutsättningarna?
Lista alla villkor som måste vara uppfyllda före steg 1, och se till att varje villkor kan kontrolleras av testaren:
Exempel:
- Det finns ett användarkonto med e-postadressen ”test@example.com”
- Användaren är utloggad från systemet
- E-posttjänsten är aktiv och kan leverera meddelanden
- Testmiljön är tillgänglig och igång
Vilka testdata kommer att användas?
Definiera exakt vilka ingångsvärden som behövs för att köra testet – giltiga data, ogiltiga data och gränsvärden.
Exempel:
- Giltigt: registrerad e-postadress ”test@example.com”, lösenord som uppfyller formatkraven
- Ogiltigt: oregistrerad e-postadress, lösenordet har färre tecken än minimikravet
- Gräns: lösenordet måste bestå av exakt det minsta och största antalet tecken
Steg 4: Skriv teststegen och de förväntade resultaten
Dela upp exekveringsprocessen i sekventiella steg. Använd enhetlig terminologi och se till att varje steg består av en åtgärd. När du definierar stegen ska du även ange det förväntade resultatet och vad som utgör godkänt eller underkänt.
Som en fortsättning på vårt flöde för återställning av lösenord skulle teststegen se ut så här:
| Steg | Förväntat resultat |
| Gå till inloggningssidan | Inloggningssidan laddas med en klickbar länk som heter ”Glömt lösenord” |
| Klicka på ”Glömt lösenord” | Användaren omdirigeras till sidan för begäran om återställning av lösenord |
| Ange din e-postadress i fältet E-post | E-postadressen godkänns utan valideringsfel |
| Klicka på ”Skicka återställningslänk” | Följande meddelande visas när återgången har lyckats: ”Återställningslänk skickad till test@example.com” |
| Öppna återställningslänken i e-postmeddelandet | Användaren omdirigeras till sidan för att skapa ett nytt lösenord |
| Ange ett giltigt nytt lösenord | Lösenordsfältet accepterar inmatning utan felmeddelande |
| Klicka på ”Återställ lösenord” | Ett meddelande om att åtgärden lyckades visas och användaren omdirigeras till inloggningssidan |
Definiera nu steg och förväntade resultat för alternativa scenarier (som diskuterats tidigare). Beskriv vad som händer när användaren anger en ogiltig e-postadress eller när lösenordet inte uppfyller de förutbestämda kriterierna.
Bonus: Så här kan du automatisera dokumentationen med hjälp av AI för alla dina testfall.
Steg 5: Bifoga relevanta bilagor
Bifoga relevanta dokument eller bilagor som hjälper testare att utföra testfallet med fullständig kontext och utan tvetydigheter. Detta kan inkludera:
- Kommenterade skärmdumpar av användargränssnittet vid viktiga steg
- Skärminspelningar som visar hur du utför testet i olika scenarier och vilka resultat du kan förvänta dig
- Systemloggar eller konfigurationsfiler som hjälper till att diagnostisera problem i backend när ett test misslyckas
- Kravdokument som kopplar testfallet till den användarberättelse eller de acceptanskriterier som det validerar
- Testdatafiler som innehåller giltiga och ogiltiga indata, eller genererade data såsom kreditkortsnummer, slumpmässiga adresser eller användaruppgifter
- Skapa dokumentation som täcker den specifika programvaruversionen, nödvändig hårdvara, operativsystem och eventuella säkerhetsgodkännanden
- För API-testning: OpenAPI-specifikationer eller dokumentation för slutpunkter som beskriver förfrågningsmetoder, parametrar och förväntade statuskoder
Steg 6: Låt testfallet granskas
Dela det skrivna testfallet med en kollega eller en senior QA-ansvarig innan du kör det. Kontrollera följande under granskningen:
- Testfallet är omfattande och täcker alla möjliga scenarier som härrör från kraven
- Stegen är tydliga och återger det faktiska exekveringsflödet i kronologisk ordning
- Varje förväntat resultat anger ett observerbart utfall (ett meddelande, en omdirigering, en statuskod), inte en egenskap som ”fungerar korrekt”.
- Testdata och förutsättningar är fullständiga och korrekta
- Alla antaganden som görs under skrivprocessen dokumenteras uttryckligen
Steg 7: Kör testerna och logga resultaten
Genomför testet och logga det faktiska resultatet mot varje förväntat resultat. Markera ett test som godkänt eller underkänt vid varje steg. För varje underkänt steg ska du omedelbart rapportera en bugg och länka den till testfallet. Om något oväntat beteende uppstår som inte tydligt kan klassas som godkänt eller underkänt, notera det i kommentarfältet för vidare granskning.
Exempel på hur man skriver testfall
Dessa tre exempel visar hur samma testfallsstruktur kan anpassas till olika typer av programvarutestning. Varje exempel använder komponenterna och stegformatet som beskrivits tidigare i denna guide, men komplexiteten, testdata och felmoderna varierar beroende på vad du verifierar.
Exempel 1: Kassaflöde inom e-handel (användargränssnitt, arbetsflöde i flera steg)
Ett kvalitetssäkringsteam hos en onlinebutik testar kassaprocessen inför en julrea. Flödet sträcker sig över flera sidor: varukorg → frakt → betalning → bekräftelse. Den utmaning som utmärker detta är tillståndsberoendet: varje steg är beroende av att det föregående steget slutförs korrekt, och testdata (varukorgens innehåll, leveransadress, betalningssätt) måste bevaras genom alla steg.
Testare: Rahul D.
Testdatum: 09/03/2026
Testfalls-ID: TC_CHECKOUT_003
Beskrivning: Kontrollera att en inloggad användare kan genomföra ett köp med ett sparat kreditkort och standardfrakt.
Förutsättningar:
- Användarkontot finns och innehåller minst ett sparat kreditkort och en sparad leveransadress
- Minst en artikel finns i lager och har lagts till i varukorgen
- Testmiljön körs på Chrome 128, macOS
| Steg | Förväntat resultat | Faktiskt resultat | Godkänd/Underkänd |
| Gå till varukorgssidan | Varukorgen visar rätt artikel, antal och delsumma | Som förväntat | Godkänd |
| Klicka på ”Gå till kassan” | När sidan laddas visas den sparade adressen som förvald | Som förväntat | Godkänd |
| Välj ”Standardfrakt” och klicka på Fortsätt | Betalningssidan laddas och visar orderns totalsumma inklusive fraktkostnad | Som förväntat | Godkänd |
| Bekräfta det sparade kreditkortet och klicka på ”Gör beställning” | Beställningsbekräftelsessidan visas med ordernummer, varusammanfattning och beräknat leveransdatum | Betalningssidan laddas om med felmeddelandet: ”Det går inte att genomföra betalningen” | Misslyckas |
Sammanfattning av resultatet: Kassaflödet hanterar överföringen från varukorgen till leverans korrekt, men betalningshanteringen misslyckas vid sparade kreditkort. Fel rapporterat: sökningen efter det tokeniserade kortet går ut i timeout när betalningsgatewayen tar längre tid än 3 sekunder på sig att svara.
Exempel 2: REST API-ändpunkt (ingen användargränssnitt, validering av in- och utdata)
En backend-ingenjör testar API-ändpunkten ”Skapa användare” innan den tas i bruk av frontend-teamet. Det finns inget gränssnitt att klicka sig igenom: testfallet validerar direkt begärandens data, svarskoder och datalagring. Den utmärkande utmaningen är att testa avtalet mellan systemen, inte användarupplevelsen.
Testare: Sarah S.
Testdatum: 09/05/2026
Testfalls-ID: TC_API_USER_001
Beskrivning: Kontrollera att en POST-begäran till /api/v1/users skapar en ny användare och returnerar rätt svar.
Förutsättningar:
- API-testmiljön är igång och tillgänglig
- En autentiseringstoken med administratörsbehörighet har genererats och är giltig
- Det finns ingen användare med e-postadressen ”newuser@testdomain.com” i databasen
| Steg | Förväntat resultat | Faktiskt resultat | Godkänt/Underkänt |
| Skicka en POST-begäran till /api/v1/users med giltig data: { "name": "Test User", "email": "newuser@testdomain. com", "role": "viewer" } | Svaret returnerar 201 Created med en JSON-kropp som innehåller användar-ID, namn, e-postadress och roll | 201 returnerades med korrekt innehåll | Godkänd |
| Skicka samma POST-begäran igen med samma e-postadress | Svaret returnerar 409 Konflikt med meddelandet: ”Användare med denna e-postadress finns redan” | 200 OK returnerat; dubblett av användare skapad | Misslyckas |
| Skicka POST med saknat ”email”-fält | Svaret returnerar 400 Bad Request med valideringsfel: ”E-postadress krävs” | 400 returnerades som förväntat | Godkänd |
| Skicka en GET-förfrågan till /api/v1/users/{id} med hjälp av ID:t från steg 1 | Svaret returnerar 200 OK och användaruppgifterna stämmer överens med den ursprungliga nyttolasten | Som förväntat | Godkänd |
Sammanfattning av resultatet: Endpunkten skapar användare korrekt och validerar obligatoriska fält, men lyckas inte säkerställa att e-postadresser är unika på databasnivå. Dubbletter skapades utan att något fel uppstod. Felet har loggats med allvarlighetsgraden: Hög.
Exempel 3: Rollbaserad åtkomstkontroll (säkerhet, behörighetsgränser)
Ett säkerhetsteam testar om applikationen korrekt begränsar åtgärder utifrån användarroller inför en efterlevnadsgranskning. Den särskilda utmaningen är att du inte testar om en funktion fungerar, utan om en funktion nekas på rätt sätt. Det förväntade resultatet för de flesta stegen är en blockering, inte en framgång.
Testare: Marcus L.
Testdatum: 09/08/2026
Testfalls-ID: TC_RBAC_002
Beskrivning: Kontrollera att en användare med rollen ”Viewer” inte kan skapa, redigera eller ta bort projekt.
Förutsättningar:
- Det finns två konton: ett med rollen ”Admin” och ett med rollen ”Viewer”
- Det finns minst ett projekt i arbetsytan, skapat av administratören
- Användaren är inloggad på Firefox 130, Windows 11
| Steg | Förväntat resultat | Faktiskt resultat | Godkänt/Underkänt |
| Gå till sidan Projekt | Användaren ser projektlistan i skrivskyddat läge; knappen ”Skapa projekt” är antingen dold eller inaktiverad | Knappen är synlig men gråmarkerad | Godkänd |
| Försök att klicka på ”Skapa projekt” | Systemet förhindrar åtgärden; inget nytt projektformulär laddas | Inget formulär har laddats; verktygstipset visar ”Du har inte behörighet” | Godkänd |
| Öppna ett befintligt projekt och försök att redigera titeln | Titelfältet går inte att redigera, eller så blockerar systemet sparandet | Fältet Titel var redigerbart; ändringarna sparades utan problem | Misslyckas |
| Försök att ta bort projektet via menyn med de tre punkterna | Alternativet för att radera är dolt, eller så blockeras åtgärden på grund av ett behörighetsfel | Alternativet "Ta bort" syns inte i menyn | Godkänd |
Sammanfattning av resultatet: Behörigheterna att skapa och ta bort är korrekt begränsade för läsare, men behörigheterna att redigera tillämpas inte på fältnivå. En läsare kan ändra projekttitlar trots att denne endast har läsbehörighet. Felet har loggats med allvarlighetsgraden: Kritiskt (hinder för efterlevnad).
Vilka verktyg är bäst för att hantera testfall?
Testfall kan hanteras i ett särskilt QA-verktyg (TestRail, Zephyr), ett allmänt projektledningsverktyg (ClickUp, Jira) eller i ett kalkylblad; vilket alternativ som är rätt beror på om du behöver inbyggd körning eller bara spårning.
ClickUp

ClickUp for Software Teams är en projektledningsplattform där testfall finns som uppgifter tillsammans med de sprintar, buggar och pull-förfrågningar som de hänför sig till. Det är inte ett dedikerat testhanteringsverktyg, men dess flexibla uppgiftsstruktur gör det möjligt för team att skapa arbetsflöden för testfall med hjälp av anpassade statusar, fält och uppgiftstyper utan att behöva ett separat verktyg.
ClickUps viktigaste funktioner
- Flexibel hierarki för att organisera testfall i utrymmen, mappar och listor med anpassade fält för testtyp, prioritet och miljö
- Över 15 ClickUp-vyer (tavla, lista, tabell) för att spåra testgenomförandet efter status, ansvarig eller sprint
- Dokument för att förvara PRD:er, testplaner och guider för miljökonfiguration tillsammans med de testfall som de avser
- Inbyggd chatt för kommunikation mellan QA-personal och utvecklare utan att behöva byta till Slack eller e-post
- AI-drivna uppgiftssammanfattningar via ClickUp Brain för snabb kontext under sprintgenomgångar
Begränsningar i ClickUp
- Ingen inbyggd testkörningsmotor
- Testspecifika rapporter (täckning per krav, godkännandegrad per cykel) kräver anpassade instrumentpaneler snarare än färdiga QA-rapporter
Priser för ClickUp
Betyg och recensioner för ClickUp
- G2: 4,6/5 (över 14 100 recensioner)
- Capterra: 4,6/5 (över 4 600 recensioner)
Vad säger verkliga användare om ClickUp?
Här är vad en G2-recensent har att säga:
Det jag gillar mest med ClickUp är att det samlar allt på ett ställe. Uppgifter, tidslinjer, anteckningar och uppdateringar finns alla i samma system, vilket minskar behovet av att växla mellan olika verktyg. Jag uppskattar också flexibiliteten. Vi kan anpassa statusar, fält och vyer så att de passar vårt teams faktiska arbetssätt. Det gör det enklare att hålla ordning och ger tydlig insyn i vem som ansvarar för vad och hur projekten ligger till vid varje given tidpunkt.
Det jag gillar bäst med ClickUp är att det samlar allt på ett ställe. Uppgifter, tidslinjer, anteckningar och uppdateringar finns alla i samma system, vilket minskar behovet av att växla mellan olika verktyg. Jag uppskattar också flexibiliteten. Vi kan anpassa statusar, fält och vyer så att de passar vårt teams faktiska arbetssätt. Det gör det enklare att hålla ordning och ger tydlig överblick över vem som ansvarar för vad och hur projekten ligger till vid varje given tidpunkt.
Bäst för: En QA-ansvarig som vill att ett misslyckat test ska bli en buggrapport för utvecklaren med ett enda klick, där PR, teststegen och sprinten alla syns i samma uppgift.
Hoppa över detta om: Din testcykel är till största delen automatiserad. Om 80 % av din testserie körs från en CI-pipeline behöver du ett verktyg som samlar in exekveringsresultat, inte ett där en människa uppdaterar statusen.
TestRail

TestRail är en specialiserad testhanteringsplattform utvecklad för QA-team som behöver strukturerad kontroll över hela testprocessen. Den hanterar hela cykeln från att skriva och köra testfall till att rapportera resultaten, med DevOps- och CI/CD-integrationer som matar in resultaten.
TestRails viktigaste funktioner
- Centraliserad hantering av testfall och testsuiter med återanvändbara testfall mellan olika projekt
- Testplaner och milstolpar för att organisera och schemalägga testkörningar över sprints och releaser
- Detaljerad rapportering med täckningsanalys, framstegsuppföljning och körningshistorik
- Integrationer med Jira, GitHub, Jenkins, Azure DevOps och över 20 andra DevOps-verktyg
- REST-API för automatisering av uppgifter och synkronisering av testdata med externa system
Begränsningar i TestRail
- Inga inbyggda funktioner för kravhantering eller ärendehantering – teamen måste förlita sig på externa verktyg som Jira, vilket kan leda till fragmenterad spårbarhet
- Det blir svårt att hitta rätt i mappbaserade strukturer när testarkiven växer till tusentals
Priser för TestRail
- Professional: 39 $/användare/månad
- Enterprise: 78 USD per användare och månad
Betyg och recensioner av TestRail
- G2: 4,4/5 (över 600 recensioner)
- Capterra: 4,3/5 (över 160 recensioner)
Vad säger verkliga användare om TestRail?
Här är vad en G2-recensent har att säga:
Det jag uppskattar mest med TestRail är att det ger vårt QA-team en säker och välorganiserad miljö för att hantera testplaner, testfall och testkörningar. Jag uppskattar hur enkelt det är att strukturera och implementera testsuiter, samt att återanvända tidigare skapade testfall. Integreringarna med Jira och CI/CD-verktyg har gjort vårt arbetsflöde mer sammanhängande och lättare att följa. Möjligheten att övervaka testförloppet och täckningen i realtid har varit otroligt hjälpsamt för sprintplanering och rapportering. I mitt dagliga arbete som QA-ingenjör har användningen av TestRail också sparat mig en betydande mängd tid.
Det jag uppskattar mest med TestRail är att det ger vårt QA-team en säker och välorganiserad miljö för att hantera testplaner, testfall och testkörningar. Jag uppskattar hur enkelt det är att strukturera och implementera testsuiter, samt att återanvända tidigare skapade testfall. Integrationerna med Jira och CI/CD-verktyg har gjort vårt arbetsflöde mer sammanhängande och lättare att följa. Möjligheten att övervaka testförloppet och täckningen i realtid har varit otroligt hjälpsamt för sprintplanering och rapportering. I mitt dagliga arbete som QA-ingenjör har användningen av TestRail också sparat mig en betydande mängd tid.
Bäst för: Ett kvalitetssäkringsteam på fem eller fler personer som genomför formella testcykler per release, där en chef behöver kunna svara på frågan ”hur stor andel av Release 2.0 har testats och godkänts” utifrån en översiktssida, inte ett kalkylblad.
Hoppa över detta om: Din testsuite består av färre än några hundra fall eller om dina testare även fungerar som utvecklare. I den skalan innebär kostnaden per användare och den separata inloggningen att du får rapporter som du ändå inte kommer att titta på.
Zephyr

Zephyr är SmartBears plugin för testhantering i Jira, utvecklat för att hantera testfall direkt i Jira-gränssnittet. Det stöder både manuell och automatiserad testning, med kraftfulla rapporterings- och spårbarhetsfunktioner för agila team och företagsteam.
Zephyrs viktigaste funktioner
- Inbyggd Jira-integration – skapa, länka och kör testfall direkt från Jira-ärenden
- Projektöverskridande hierarkiska testbibliotek för återanvändning och organisering av testfall i stor skala
- Över 70 färdiga rapporter som täcker testtäckning, genomförandestatus och feluppföljning
- BDD-stöd med Gherkin-syntax för beteendestyrda utvecklingsflöden
- CI/CD-integrationer med Jenkins, GitHub, GitLab, Bitbucket och Bamboo
Begränsningar i Zephyr
- Licensen gäller per Jira-användare, inte per testare
- Stora testarkiv (med tusentals testfall) kan kännas mer krångliga att navigera i än i fristående verktyg som TestRail
- Supporten hanteras via Atlassian Marketplace, vilket innebär ett extra steg för team som är vana vid direkt support från leverantören
Priser för Zephyr
- Essential: från 5,99 $/användare/månad (11–50 användare)
- Standard: från 6,81 USD/användare/månad (11–50 användare)
- Avancerad: från 8,73 $/användare/månad (11–50 användare)
Betyg och recensioner för Zephyr
- G2: 4,1/5 (över 80 recensioner)
- Capterra: För få recensioner
Vad säger verkliga användare om Zephyr?
Här är vad en G2-recensent har att säga:
Detta är det bästa verktyget för att importera testfall direkt från ett Excel-ark. Med detta verktyg blir testarnas arbete enklare än att importera testfall i Jira. En annan utmärkt funktion i detta verktyg är möjligheten att markera testfall som godkända eller underkända samt lägga till bilagor.
Detta är det bästa verktyget för att importera testfall direkt från ett Excel-ark. Med detta verktyg blir testarnas arbete enklare än att importera testfall i Jira. En annan utmärkt funktion i detta verktyg är möjligheten att markera testfall som godkända eller underkända samt att lägga till bilagor.
Bäst för: Reglerade eller revisionsintensiva team (fintech, hälso- och sjukvård) som behöver kunna spåra varje test till ett Jira-krav och koppla varje fel tillbaka till det test som upptäckte det, allt inom en och samma Atlassian-instans.
Hoppa över detta om: Din Jira-instans är stor och ditt QA-team är litet. En Jira-instans med 200 användarplatser och 10 testare kostar lika mycket som 190 Zephyr-licenser som ingen använder; ett fristående verktyg som prissätts per testare kostar mindre.
Jira

Jira är Atlassians plattform för projektledning och ärendehantering, som används flitigt av teknik- och kvalitetssäkringsteam för att hantera sprintar, buggar och utvecklingsarbetsflöden. Även om det inte är ett dedikerat testhanteringsverktyg använder många team det tillsammans med lösningar som Zephyr Scale eller Xray för att hantera testfall inom sin befintliga Jira-miljö.
Jiras viktigaste funktioner
- Scrum- och Kanban-tavlor för hantering av sprintar, backloggar och agila testarbetsflöden
- Anpassningsbara arbetsflöden, ärendetyper och fält som passar hur ditt team följer upp arbetet
- Avancerade vägkartor för teamöverskridande planering och spårning av beroenden (Premium)
- Över 1 000 marknadsplatsintegrationer, inklusive GitHub, Confluence, Slack och CI/CD-verktyg
- Automatiseringsregler för att utlösa åtgärder i olika projekt baserat på uppdateringar av ärenden eller statusändringar
Begränsningar i Jira
- Hantering av testfall kräver ett Marketplace-plugin (Zephyr Scale, Xray) med en egen avgift per användare utöver Jira-abonnemanget
- Brantare inlärningskurva för icke-tekniska användare, med introduktionskostnader som kan bli höga för större team
Priser för Jira
- Gratis
- Standard: 7,91 $/användare/månad
- Premium: 14,54 $/användare/månad
- Enterprise: Anpassad prissättning
Betyg och recensioner på Jira
- G2: 4,3/5 (över 7 900 recensioner)
- Capterra: 4,4/5 (över 15 400 recensioner)
Vad säger verkliga användare om Jira?
Här är vad en G2-recensent har att säga:
Jira är ett av mina favoritprogram för att följa upp och visualisera resultatet av alla mina arbetsprojekt i samarbete med alla medlemmar i mitt arbetsteam, eftersom det erbjuder de bästa virtuella prestationsfunktionerna i sin klass, vilket gör det enklare att uppnå alla mina professionella mål.
Jira är ett av mina favoritprogram för att följa upp och visualisera resultatet av alla mina arbetsprojekt i samarbete med alla medlemmar i mitt arbetsteam, eftersom det erbjuder de bästa virtuella prestandafunktionerna i sin klass, vilket gör det enklare att uppnå alla mina professionella mål.
Passar bäst för: Teknikteam som utvärderar om de överhuvudtaget behöver en dedikerad testhantering. Genom att först köra några testcykler som anpassade Jira-ärendetyper kan man se om volymen motiverar ett plugin.
Hoppa över detta om: Du redan vet att du behöver testhantering. Genom att gå direkt till ett plugin eller ett fristående verktyg undviker du migrering när anpassade ärendetyper slutar skala.
Vanliga misstag att undvika när du skapar testfall
Undvik dessa misstag vid skrivandet av testfall som kan minska deras totala effektivitet.
| Misstag | Vad du istället bör göra |
|---|---|
| Att skriva testfall för sent | Involvera testare i kravinventering och designfaserna för att identifiera potentiella problem innan kodningen påbörjas |
| Testfall uppdateras inte | Uppdatera testfallet så snart funktionen får en ny uppgradering, en förändring i funktionaliteten eller en förändring i användargränssnittet |
| Inga eftervillkor | Ange hur systemet ska se ut när testet är klart (testanvändaren har raderats, varukorgen har tömts, sessionen har stängts) så att nästa testfall startar från ett tomt tillstånd |
| Endast data från den optimala vägen | Varje inmatningsfält behöver minst ett värde som systemet ska avvisa. Dokumentera hur datasetet genereras eller hämtas |
| Att inte prioritera testfall | Tilldela varje testfall en prioritet baserat på affärsmässig påverkan, användningsfrekvens och risk för fel. Detta hjälper dig att fokusera testinsatserna och fatta smartare beslut om budget och testmetoder |
Hur man ser till att testfall förblir användbara över tid
En testsuite förblir tillförlitlig när varje testfall är oberoende, riktar in sig på de indata som mest sannolikt orsakar fel och tas bort så fort det slutar ge ett tillförlitligt resultat. Dessa sex metoder skiljer testsuiter som upptäcker buggar i åratal från testsuiter som ignoreras redan efter den andra sprinten.
Skriv oberoende, atomära tester
Ett testfall bör skapa sitt eget tillstånd och aldrig vara beroende av att ett annat testfall har körts först. När TC_CHECKOUT_003 utgår från att TC_CHECKOUT_002 lämnade kvar en vara i varukorgen, leder ett fel till fem, och du tillbringar förmiddagen med att försöka lista ut vilket fel som var det verkliga. Om en testrubrik innehåller ordet ”och”, dela upp den i två testfall.
Testa vid gränserna
Fel samlas i ytterkanterna av den tillåtna inmatningen, inte i mitten. Om ett lösenordsfält accepterar 8 till 128 tecken, testa 7, 8, 128 och 129, inte bara ett bekvämt lösenord på 12 tecken. Gränsvärdesanalys är en formell teknik i testdesignstandarden ISO/IEC/IEEE 29119-4 just av denna anledning: den upptäcker ”off-by-one”-fel som slumpmässiga inmatningar missar.
Använd ekvivalenspartitionering för att minska antalet överflödiga testfall
Gruppera indata som systemet ska behandla på samma sätt och testa sedan ett representativt exempel från varje grupp. Alla giltiga e-postformat beter sig på samma sätt i ett inloggningsformulär, så en giltig e-postadress räcker. Att testa user@example.com, jane@company.com och bob@domain.org som tre separata testfall tredubblar din underhållsbelastning utan att öka testtäckningen.
Separera testdata från teststeg
Att hårdkoda ”ange test@example.com” i ett steg innebär att du måste skriva om steget varje gång testmiljön ändras. Håll stegen generella (”ange en registrerad e-postadress”) och förvara de faktiska värdena i ett testdatafält eller en fil. Samma steg kan då köras mot staging-, QA- och pre-produktionsmiljöer utan redigeringar, och att byta till en ny datamängd för ett negativt test kräver endast en rads ändring.
Spåra instabila tester och andelen fel som slinker igenom
Ett instabilt test misslyckas inkonsekvent utan att det finns någon verklig produktbug, och varje instabilt test lär teamet att ignorera röda resultat. Spåra hur ofta varje testfall växlar mellan godkänt och underkänt i identiska byggnader. Om ett testfall är instabilt mer än ett par gånger i månaden, skriv om eller ta bort det. Kombinera detta med andelen förbisedda fel (buggar som upptäcks i produktion som ett testfall borde ha upptäckt) för att se var täckningen är tunn, inte bara var den är brusig.
Automatisera de tester du kör oftast
Regressions-, rök- och högfrekventa funktionella testfall är de bästa kandidaterna för automatisering eftersom de körs vid varje build och sällan ändras. Flytta dessa till skript i din CI/CD-pipeline och använd AI-stödda verktyg med självläkande lokalisatorer där UI-element ofta flyttas. Det frigör mänskliga testare för utforskande arbete och de typer av programvarutestning som kräver omdöme, såsom användbarhet och jakt på gränsfall.
Hur man skriver och kör testfall i ClickUp
I avsnittet om verktyg ovan beskrivs hur ClickUp passar in. Detta avsnitt visar den faktiska konfigurationen, kopplad till stegen tidigare i guiden.
Strukturera ditt testfallsbibliotek. Skapa ett utrymme för din produkt, en mapp för varje funktionsområde (t.ex. autentisering, betalningar, onboarding) och en lista för varje testcykel eller sprint. Varje uppgift blir ett enskilt testfall. Använd ClickUps anpassade fält för att registrera komponenter som testfalls-ID, förutsättningar, testdata, prioritetsnivå och miljö.
Skriv teststeg direkt i uppgiften. Använd uppgiftsbeskrivningen för att dokumentera stegvisa utförandeprocesser och förväntade resultat. Checklister fungerar bra för steg-för-steg-flöden där en testare behöver bocka av varje åtgärd, medan beskrivningen innehåller sammanhang som förutsättningar och testdata.
Spåra utförande och resultat. Skapa anpassade statusar som speglar ditt testflöde: Ej påbörjat → Pågår → Godkänt → Underkänt → Blockerat. När ett test misslyckas kan du omvandla det till en bugguppgift eller skapa en länkad uppgift som tilldelas utvecklaren, med prioritet, beroenden och en deadline. Med GitHub- och GitLab-integrationerna kan du länka felrapporten direkt till den pull request som orsakade felet. Om orsaken är ett kodfel kan du tilldela felrapporten till ClickUp Codegen Agent, som läser uppgiften, länkade specifikationer och kommentarer, skriver korrigeringen och öppnar en pull request där framstegen rapporteras tillbaka till uppgiften.
Proffstips: QA-ansvariga kan få en omedelbar översikt över alla uppgifter genom att be ClickUp Brain att sammanfatta öppna bugguppgifter. På så sätt har de all den kontext de behöver för sprintgranskningar utan att behöva gräva igenom enskilda uppgifter för att få en helhetsbild.

Kör testcykler med olika vyer. Använd tavlevyn, grupperad efter status, för att snabbt se fördelningen mellan godkända och underkända resultat under ett testkörning. Tabellvyn fungerar som en traditionell testmatris när du behöver granska resultat från dussintals testfall. Filtrera efter ansvarig för att fördela arbetsbelastningen jämnt, eller efter prioritet för att först fokusera ett rökprov på de kritiska vägarna.
ClickUp-mallen för testhantering ger dig ett centraliserat sätt att hantera hela testflödet för flera funktionsområden, testscenarier och gränsfall på ett och samma ställe. Använd den för att spåra användarfeedback, hantera testscheman, övervaka testernas framsteg och utvärdera godkända/underkända resultat utan att behöva växla mellan olika verktyg.
Hantera dina testarbetsflöden effektivt
Ett testfall är giltigt så snart två personer kan köra det oberoende av varandra och komma fram till samma resultat – godkänt eller underkänt. Allt i den här guiden (en åtgärd per steg, tydliga förutsättningar, förväntade resultat utan utrymme för tolkning) syftar till just den standarden. Om du redan planerar sprintar i ClickUp kan du med den konfiguration som beskrivs ovan skriva, köra och spåra testfall tillsammans med de fel de upptäcker, utan att behöva lägga till ytterligare ett verktyg.
Registrera dig gratis på ClickUp
Vanliga frågor om testfall
Hur många testfall bör ett krav ha?
Ett enda krav kan kräva ett eller tio testfall, beroende på hur många scenarier, gränsfall och ingångsvariationer det omfattar. Tanken är att täcka alla realistiska vägar och erbjuda tillräcklig täckning utan redundans.
Vad är skillnaden mellan testfall och testskript?
Ett testfall dokumenterar vad som ska testas och vilket resultat som förväntas, och är avsett för manuell utförande. Ett testskript är däremot den automatiserade versionen: kod som utför samma steg programmatiskt.
Hur detaljerade ska teststegen vara?
Dela upp testet i logiska, sekventiella steg som är lätta att följa utan någon tidigare bakgrundskunskap. Slå inte ihop flera åtgärder och gör inte testet onödigt komplicerat.
Ett testscenario anger vad som ska testas i en rad (”Verifiera återställning av lösenord”); ett testfall specificerar hur, med förutsättningar, steg, testdata och förväntade resultat. Ett scenario ger vanligtvis upphov till 3 till 10 testfall som täcker den normala vägen, ogiltiga indata och gränsvillkor. Scenarierna kommer först och styr planeringen av testtäckningen; testfallen kommer i andra hand och styr utförandet.
Ett positivt testfall använder giltiga indata och förväntar sig att det ska lyckas: korrekt e-postadress och lösenord loggar in användaren. Ett negativt testfall använder ogiltiga eller oväntade indata och förväntar sig att systemet ska hantera felet på ett korrekt sätt: ett felaktigt lösenord visar ”Ogiltigt lösenord” utan att skapa en session. Välutvecklade testsuiter har ungefär ett förhållande på 1:3 till 1:5 mellan positiva och negativa testfall, eftersom de flesta produktionsfel förekommer i felvägar, inte i lyckade vägar.
En testplan definierar omfattning, tillvägagångssätt, resurser och tidsplan för hela testarbetet. En testserie är en samling testfall som grupperats för en enskild körning, till exempel ”regressionsserie för version 2.1”. Ett testfall är den minsta enheten i båda: en dokumenterad kontroll med ett resultat av godkänd eller underkänd. Planen fastställer strategin, serien fastställer omfattningen och testfallet fastställer resultatet.


