”Kraven är ju typ klara, vi behöver bara testa dem”
Ett litet apputvecklingsbolag bygger tvättstugebokning åt en bostadsrättsförening. Ingen testare anställd. Motsvarar Testfall från krav S, 12 900 kr exkl. moms.
Fiktivt exempel Företagen och underlaget är påhittade av Brickstream; det är ingen kunds material och ingen kundleverans. Arbetet görs av Brickstreams AI-team och granskas alltid av en senior slutgranskare – en människa – innan kunden får det. I de här exemplen är slutgranskningen illustrativ: den visar hur granskningen redovisas, men ingen människa har granskat exemplen ännu.
Det här skickade de
En kravlista med ”Systemet ska vara snabbt” och två krav med samma id. Ett mejl från ordföranden som säger emot listan. Utvecklarens lapp: ”15 min? ingen har bestämt”. Filerna återges ordagrant, precis så röriga som de var. Bytte ordförandens namn mot ”Ordförande” och laddade upp tre filer.
indata/01-kravlista-export.csvFIKTIVT EXEMPEL - påhittat av Brickstream. Tvättbjörn Digital AB och Brf Lingonriset finns inte.
| ID | Rubrik | Beskrivning | Prio | Status | Kommentar |
|---|---|---|---|---|---|
| TB-01 | Inloggning | Boende loggar in med lägenhetsnummer och en pinkod på 4 siffror | Hög | Klar | |
| TB-02 | Låsning | Efter 5 felaktiga försök ska kontot låsas | Hög | Klar | hur länge? |
| TB-03 | Bokningspass | Bokning sker i pass om 3 timmar mellan 07:00 och 22:00 | Hög | Pågår | |
| TB-04 | Max bokningar | En lägenhet får ha max 3 bokningar | Hög | Pågår | styrelsen sa 2? se mejl |
| TB-05 | Avbokning | Avbokning ska kunna göras senast 1 timme innan passet börjar | Medel | Pågår | |
| TB-06 | Påminnelse | Användaren ska få en påminnelse i god tid innan passet | Medel | Ej påbörjad | sms eller push? |
| TB-07 | Prestanda | Systemet ska vara snabbt | Medel | Ej påbörjad | |
| TB-08 | Användbarhet | Det ska vara enkelt att boka, även för äldre | Hög | Ej påbörjad | |
| TB-09 | Ej utnyttjat pass | Om ingen startat en maskin inom 30 min efter passets start ska passet frigöras | Medel | Ej påbörjad | |
| TB-10 | Översikt | Boende ska kunna se vilka pass som är lediga 14 dagar framåt | Hög | Klar | |
| TB-10 | Admin | Styrelsen ska kunna spärra en lägenhet från att boka | Låg | Ej påbörjad | dubbelt id, fixa |
| TB-11 | Språk | Appen ska finnas på svenska och engelska | Låg | Ej påbörjad | |
| TB-12 | Drift | Tjänsten bör vara tillgänglig dygnet runt | Medel |
indata/02-mejl-fran-styrelsen.txt[FIKTIVT EXEMPEL – påhittat av Brickstream. Namn är utbytta mot roller av kunden före uppladdning.] Från: Ordförande, Brf Lingonriset <ordforande@lingonriset.invalid> Till: Projektledare <pl@tvattbjorn.invalid> Datum: 2026-09-24 19:52 Ämne: Tvättstugan – några saker från styrelsemötet Hej! Några saker från styrelsemötet i går: - Max 2 bokningar per lägenhet åt gången, annars bokar vissa upp alla lördagar. - Man måste kunna avboka ända fram tills passet börjar, det är ju bättre än att passet står tomt. - Gärna att det syns vem som har bokat (lägenhetsnummer räcker, inte namn!) - Pinkoden: kan den vara 6 siffror istället? Säkrare väl. Hälsningar Ordförande
indata/03-anteckning-utvecklare.txt[FIKTIVT EXEMPEL – påhittat av Brickstream] anteckn. utv, tvättstugeappen låsning TB-02: 15 min? ingen har bestämt påminnelse: push 2 h innan. sms kostar pengar, inte beslutat passen: 07-10, 10-13, 13-16, 16-19, 19-22 TB-09 kräver att maskinen rapporterar start. finns bara i tvättstuga A (uppkopplade maskiner). B har gamla maskiner testmiljö: kan ställa klockan i admin (bra för TB-09)
Det här fick de
Testfall med steg, testdata och förväntat resultat för varje krav som går att testa, och förslag på mätbar formulering för dem som inte gör det. Två par testfall som inte båda kan bli godkända – beviset på att listan och mejlet säger emot varandra. I en riktig leverans är det en Excel-fil med flikar och en PDF; här återges flikarna som avsnitt. Breda tabeller går att rulla i sidled.
FIKTIVT EXEMPEL. Företagen, bostadsrättsföreningen och alla uppgifter är påhittade av Brickstream för att visa hur en leverans i paketet Testfall från krav ser ut när kraven är vaga och delvis motsäger varandra. Leveransen är framtagen av Brickstreams AI-team enligt metoden i paketbeskrivningen. Excel-flikarna återges här som avsnitt; CSV-filen finns i
testfall-steg.csv. Granskningsloggen och kolumnen "Granskarens beslut" visar formatet för en slutgranskning; i exemplet är de illustrativa. Ingen kund har fått den här leveransen.
Testspecifikation: tvättstugebokning för Brf Lingonriset
Beställare: Tvättbjörn Digital AB (fiktivt), projektledare · Paket: Testfall från krav S · Testnivå enligt beställningen: system och acceptans · Språk: svenska
1 Testspecifikationsrapport
1.1 Omfattning
- Kravlistan (
indata/01-kravlista-export.csv, export från projektverktyget): 13 krav, TB-01–TB-12. Id:t TB-10 används två gånger (rad 12 och rad 13); vi skiljer dem åt som TB-10 [rad 12] och TB-10 [rad 13] tills ni gett spärrkravet ett nytt id (E-10). - Styrelsens mejl (
indata/02-mejl-fran-styrelsen.txt): 4 önskemål utan id. De har numrerats R-001–R-004. - Utvecklarens anteckning (
indata/03-anteckning-utvecklare.txt): inga krav, men sammanhang som behövs för att stegen ska gå att utföra. Allt vi har hämtat därifrån står i fliken Antaganden.
Så hänvisar vi: filerna saknar sidor, så kolumnen Källa anger fil och radnummer. "Kravlista" = kravlistan, "Mejl" = styrelsens mejl, "Utv" = utvecklarens anteckning.
Mottagningskontroll (steg 0): storleksklass S (17 krav). Inga klassnings- eller exportkontrollmärkningar. Inga personuppgifter: namnen i mejlet var redan utbytta mot roller, och styrelsen skriver själv att bokningar ska visas med lägenhetsnummer, inte namn. Testdata i leveransen använder bara påhittade lägenhetsnummer.
1.2 Resultat i siffror
- 17 krav: 14 ska-krav (varav 4 utan "ska" eller "måste", tolkade som ska), 2 bör-krav och 1 fråga som inte är ett krav (R-004).
- 25 testfall skrivna, varav 1 struket av slutgranskaren. 24 testfall i leveransen och i CSV-filen.
- Täckning: 10 krav Täckt, 3 Delvis täckt, 3 Ej testbart, 1 Utanför omfattning.
- Alla 8 krav med numeriska gränsvärden (TB-01, TB-02, TB-03, TB-04, TB-05, TB-09, TB-10 [rad 12], R-001) har test på gränsen och strax utanför. Alla krav som beskriver avvisning, felhantering eller behörighet (TB-01, TB-02, TB-04, TB-05, TB-09, TB-10 [rad 13], R-001) har minst ett testfall där något nekas eller inte får ske.
- Uppskattad körtid för de 24 testfallen: cirka 2 timmar, förutsatt att klockan i testmiljön går att ställa (A-01).
1.3 Det viktigaste att veta
- Två kravpar säger emot varandra, och testfallen visar det. TF-009 (tredje bokningen tillåts, TB-04) och TF-011 (tredje bokningen nekas, R-001) kan inte båda bli godkända. Detsamma gäller TF-014 (avbokning 59 minuter före nekas, TB-05) och TF-015 (avbokning 5 minuter före tillåts, R-002). Ni behöver bestämma vilket krav som gäller (E-06, E-07). Tills dess är båda testfallen med, så att inget glöms bort.
- Tre krav går inte att testa som de står: "snabbt" (TB-07), "enkelt att boka, även för äldre" (TB-08) och "tillgänglig dygnet runt" (TB-12). Förslag på mätbara formuleringar finns i flik 4.
- Tre krav är bara delvis testbara: hur länge kontot är låst (TB-02), när påminnelsen kommer (TB-06) och frigörande av pass i tvättstuga B, där maskinerna inte rapporterar start (TB-09).
- Testmiljön behöver en inställbar klocka. Utvecklarens anteckning säger att den finns. Utan den tar testfallen med tider 30 minuter eller mer var (A-01).
1.4 Vad slutgranskaren gjorde
Se flik 6. Kort: alla osäkra testfall och alla randvärden kontrollerade, ett förväntat resultat ändrat (TF-005) och ett testfall struket (TF-006) eftersom det byggde på ett värde som inte är beslutat.
2 Testfall
Gemensam förutsättning för alla testfall: testmiljön har tvättstuga A (uppkopplade maskiner) och tvättstuga B, testkontona lägenhet 1101, 1102 och 1103 (pinkoder 2468, 3579 respektive 1470) och ett styrelsekonto. Alla är påhittade (A-07).
| TF-id | Titel | Krav-id | Källa | Testnivå | Verifieringsmetod | Testtyp | Prioritet | Förutsättningar | Testdata | Teststeg | Förväntat resultat | Godkännandekriterium | Uppskattad tid | Osäkerhet · Skäl | Granskarens beslut |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TF-001 | Inloggning med rätt lägenhetsnummer och pinkod | TB-01 | Kravlista rad 3 | System | T | Positiv | Hög | Lägenhet 1101 är inte låst | Lägenhet 1101, pinkod 2468 | 1. Öppna inloggningssidan. 2. Ange lägenhetsnummer 1101. 3. Ange pinkod 2468. 4. Välj Logga in. | Användaren är inloggad och ser översikten över pass. | Inloggningen lyckas i steg 4. | 3 | Medel · T1: vad som visas efter inloggning är härlett | Bekräftad |
| TF-002 | Fel pinkod nekas | TB-01 | Kravlista rad 3 | System | T | Negativ | Hög | Lägenhet 1101 har 0 felaktiga försök | Lägenhet 1101, pinkod 1357 | 1. Öppna inloggningssidan. 2. Ange lägenhetsnummer 1101 och pinkod 1357. 3. Välj Logga in. | Inloggningen nekas och användaren är fortfarande utloggad. | Inloggningen nekas i steg 3. | 2 | Medel · T2: felmeddelandets text anges inte | Bekräftad |
| TF-003 | Pinkod med fel format avvisas | TB-01 | Kravlista rad 3 | System | T | Negativ | Hög | Lägenhet 1103 är inte låst (eget konto, se A-08) | Lägenhet 1103; pinkoder "147" (3 siffror), "14702" (5 siffror), "14a0" (bokstav), tom | 1. Ange lägenhetsnummer 1103 och pinkod "147". Välj Logga in. 2. Upprepa steg 1 med "14702". 3. Upprepa med "14a0". 4. Upprepa med tom pinkod. | Varje försök avvisas. | Inget av de fyra försöken leder till inloggning. | 5 | Medel · T1: att andra format avvisas är härlett från "4 siffror". O1: R-004 föreslår 6 siffror (E-05) | Bekräftad |
| TF-004 | Fyra felaktiga försök låser inte kontot | TB-02 | Kravlista rad 4 | System | T | Randvärde | Hög | Lägenhet 1102 har 0 felaktiga försök | Fel pinkod 1111, rätt pinkod 3579 | 1. Logga in med lägenhet 1102 och pinkod 1111. 2. Upprepa steg 1 tills fyra felaktiga försök har gjorts. 3. Logga in med pinkod 3579. | Steg 3: inloggningen lyckas. | Kontot är inte låst efter fyra felaktiga försök. | 4 | Hög säkerhet | Bekräftad (stickprov) |
| TF-005 | Femte felaktiga försöket låser kontot | TB-02 | Kravlista rad 4 | System | T | Randvärde | Hög | Lägenhet 1102 har 0 felaktiga försök | Fel pinkod 1111, rätt pinkod 3579 | 1. Logga in med lägenhet 1102 och pinkod 1111. 2. Upprepa steg 1 tills fem felaktiga försök har gjorts. 3. Logga in med pinkod 3579. | Efter femte försöket: kontot är låst och användaren får veta det. Steg 3: inloggningen nekas trots rätt pinkod. | Inloggning med rätt pinkod nekas i steg 3. | 4 | Medel · T2: hur låsningen visas anges inte | Ändrad: förväntat resultat angav texten "Kontot är låst", som inte står i kravet |
| TF-006 | Låst konto låses upp efter 15 minuter | TB-02 | Kravlista rad 4 | System | T | Tillstånd | Hög | Lägenhet 1102 är låst enligt TF-005 | Systemtid: låsningstidpunkten + 15 min | 1. Ställ systemtiden 15 minuter framåt. 2. Logga in med pinkod 3579. | Inloggningen lyckas. | Kontot är upplåst efter 15 minuter. | 20 | Låg · T3: 15 minuter kommer från Utv rad 4 ("ingen har bestämt"), inte från kravet | Struken: värdet är inte beslutat; flyttat till E-01 |
| TF-007 | Fem pass om tre timmar mellan 07:00 och 22:00 | TB-03 | Kravlista rad 5 | System | T | Positiv | Hög | Inloggad som 1101 | Morgondagens datum, tvättstuga A | 1. Öppna översikten över pass. 2. Välj morgondagens datum och tvättstuga A. | Fem pass visas: 07:00–10:00, 10:00–13:00, 13:00–16:00, 16:00–19:00 och 19:00–22:00. | Exakt dessa fem pass visas. | 3 | Medel · T1: passindelningen är hämtad från Utv rad 6 (A-02) | Bekräftad |
| TF-008 | Inga pass utanför 07:00–22:00 | TB-03 | Kravlista rad 5 | System | T | Randvärde | Hög | Inloggad som 1101 | Morgondagens datum, tvättstuga A och B | 1. Öppna översikten för morgondagen, tvättstuga A. 2. Kontrollera första och sista passet. 3. Upprepa för tvättstuga B. | Inget pass börjar före 07:00 eller slutar efter 22:00. | Ja/nej i steg 2 och 3. | 3 | Hög säkerhet | Bekräftad (stickprov) |
| TF-009 | Tredje bokningen tillåts | TB-04 | Kravlista rad 6 | System | T | Randvärde | Hög | Lägenhet 1101 har 2 framtida bokningar | Ett ledigt pass om tre dagar | 1. Logga in som 1101. 2. Boka ett ledigt pass om tre dagar. | Bokningen bekräftas. 1101 har 3 framtida bokningar. | Bokningen i steg 2 lyckas. | 3 | Låg · O1: R-001 anger högst 2 (E-06). O2: om "max 3" avser framtida eller alla bokningar anges inte | Bekräftad |
| TF-010 | Fjärde bokningen nekas | TB-04 | Kravlista rad 6 | System | T | Randvärde | Hög | Lägenhet 1101 har 3 framtida bokningar | Ett ledigt pass om fyra dagar | 1. Logga in som 1101. 2. Försök boka ett ledigt pass om fyra dagar. | Bokningen nekas. 1101 har fortfarande 3 bokningar. | Bokningen i steg 2 nekas. | 3 | Låg · O1: R-001 anger högst 2 (E-06) | Bekräftad (stickprov) |
| TF-011 | Andra bokningen tillåts, tredje nekas (styrelsens gräns) | R-001 | Mejl rad 10 | System | T | Randvärde | Hög | Lägenhet 1102 har 1 framtida bokning | Två lediga pass om två respektive tre dagar | 1. Logga in som 1102. 2. Boka passet om två dagar. 3. Försök boka passet om tre dagar. | Steg 2: bokningen bekräftas. Steg 3: bokningen nekas. | Steg 2 lyckas och steg 3 nekas. | 4 | Låg · O1: motstridigt mot TB-04. TF-009 och TF-011 kan inte båda bli godkända (E-06) | Bekräftad |
| TF-012 | Ny bokning tillåts när ett bokat pass har passerat | R-001 | Mejl rad 10 | System | T | Tillstånd | Hög | Lägenhet 1102 har 2 bokningar; den första är i dag 07:00–10:00 | Systemtid i dag 10:01 | 1. Ställ systemtiden till 10:01. 2. Logga in som 1102. 3. Boka ett ledigt pass om fem dagar. | Bokningen bekräftas. | Bokningen i steg 3 lyckas. | 5 | Medel · O2: "åt gången" tolkat som framtida bokningar. T3: inställbar systemtid (A-01) | Bekräftad |
| TF-013 | Avbokning exakt 60 minuter före passet tillåts | TB-05 | Kravlista rad 7 | System | T | Randvärde | Medel | Lägenhet 1101 har bokat i dag 13:00–16:00 | Systemtid 12:00 | 1. Ställ systemtiden till 12:00. 2. Logga in som 1101 och välj bokningen. 3. Välj Avboka. | Bokningen avbokas och passet visas som ledigt. | Avbokningen i steg 3 lyckas. | 5 | Medel · T4: om exakt 60 minuter räknas som "senast 1 timme" anges inte. T3 (A-01) | Bekräftad |
| TF-014 | Avbokning 59 minuter före passet nekas | TB-05 | Kravlista rad 7 | System | T | Randvärde | Medel | Lägenhet 1101 har bokat i dag 13:00–16:00 | Systemtid 12:01 | 1. Ställ systemtiden till 12:01. 2. Logga in som 1101 och välj bokningen. 3. Välj Avboka. | Avbokningen nekas och bokningen finns kvar. | Avbokningen i steg 3 nekas. | 5 | Låg · O1: R-002 vill tillåta avbokning fram till passets start. TF-014 och TF-015 kan inte båda bli godkända (E-07) | Bekräftad |
| TF-015 | Avbokning 5 minuter före passet tillåts (styrelsens önskemål) | R-002 | Mejl rad 11 | System | T | Randvärde | Hög | Lägenhet 1101 har bokat i dag 13:00–16:00 | Systemtid 12:55 | 1. Ställ systemtiden till 12:55. 2. Logga in som 1101 och välj bokningen. 3. Välj Avboka. | Bokningen avbokas och passet visas som ledigt. | Avbokningen i steg 3 lyckas. | 5 | Låg · O1: motstridigt mot TB-05 (E-07) | Bekräftad (stickprov) |
| TF-016 | Påminnelse som push-notis två timmar före passet | TB-06 | Kravlista rad 8 | System | T | Positiv | Medel | Lägenhet 1101 har bokat i dag 16:00–19:00; appen är inloggad i en testtelefon med notiser tillåtna | Systemtid 13:55 | 1. Ställ systemtiden till 13:55. 2. Vänta till 14:05 i systemtid. 3. Kontrollera notiserna i testtelefonen. | En påminnelse om passet 16:00 har kommit mellan 13:55 och 14:05. | Påminnelsen har kommit i steg 3. | 15 | Låg · T3: push och två timmar kommer från Utv rad 5 och är inte beslutat (A-03). T4: tolerans saknas | Bekräftad |
| TF-017 | Pass frigörs 31 minuter efter start om ingen maskin startats | TB-09 | Kravlista rad 11 | System | T | Randvärde | Medel | Tvättstuga A. Lägenhet 1101 har bokat i dag 10:00–13:00. Ingen maskin har startats. | Systemtid 10:31 | 1. Ställ systemtiden till 10:31. 2. Logga in som 1102 och öppna översikten för tvättstuga A. | Passet 10:00–13:00 visas som ledigt och kan bokas av 1102. | Passet är ledigt i steg 2. | 5 | Medel · T3: bara tvättstuga A (A-04). T4: exakt tidpunkt för frigörandet anges inte | Bekräftad |
| TF-018 | Pass frigörs inte 29 minuter efter start | TB-09 | Kravlista rad 11 | System | T | Randvärde | Medel | Som TF-017 | Systemtid 10:29 | 1. Ställ systemtiden till 10:29. 2. Logga in som 1102 och öppna översikten för tvättstuga A. | Passet 10:00–13:00 visas fortfarande som bokat. | Passet är bokat i steg 2. | 5 | Medel · T3 (A-04) | Bekräftad (stickprov) |
| TF-019 | Pass frigörs inte om en maskin startats | TB-09 | Kravlista rad 11 | System | T | Negativ | Medel | Tvättstuga A. Lägenhet 1101 har bokat i dag 10:00–13:00. | Maskin 1 startas 10:10 (på riktigt eller simulerat, A-04). Systemtid 10:31 | 1. Starta maskin 1 i tvättstuga A klockan 10:10 i systemtid. 2. Ställ systemtiden till 10:31. 3. Logga in som 1102 och öppna översikten. | Passet 10:00–13:00 visas fortfarande som bokat av 1101. | Passet är bokat i steg 3. | 10 | Medel · T3 (A-04) | Bekräftad |
| TF-020 | Lediga pass visas 14 dagar framåt | TB-10 [rad 12] | Kravlista rad 12 | System | T | Randvärde | Hög | Inloggad som 1101 | Systemtid 2026-10-12 | 1. Ställ systemtiden till 2026-10-12. 2. Öppna översikten. 3. Bläddra till den sista dagen som visas. | Pass för 2026-10-26 visas. | Den sista dagen med pass är 2026-10-26. | 4 | Medel · T4: om dagens datum räknas in i "14 dagar framåt" anges inte (A-05, E-11) | Bekräftad |
| TF-021 | Dag 15 visas inte | TB-10 [rad 12] | Kravlista rad 12 | System | T | Randvärde | Hög | Inloggad som 1101 | Systemtid 2026-10-12 | 1. Ställ systemtiden till 2026-10-12. 2. Öppna översikten. 3. Försök visa 2026-10-27. | Inga pass för 2026-10-27 visas eller kan bokas. | Inga pass för 2026-10-27 i steg 3. | 3 | Medel · T4 (A-05, E-11) | Bekräftad |
| TF-022 | Styrelsen spärrar en lägenhet | TB-10 [rad 13] | Kravlista rad 13 | System | T | Positiv | Låg | Lägenhet 1103 har inga bokningar. Styrelsekontot finns. | Lägenhet 1103 | 1. Logga in med styrelsekontot och spärra lägenhet 1103. 2. Logga ut. 3. Logga in som 1103 och försök boka ett ledigt pass. | Steg 3: bokningen nekas. | Bokningen i steg 3 nekas. | 5 | Medel · T2: hur spärren visas för den boende anges inte. Vad som händer med redan gjorda bokningar anges inte (E-10) | Bekräftad |
| TF-023 | Boende kan inte spärra lägenheter | TB-10 [rad 13] | Kravlista rad 13 | System | T | Negativ | Låg | Inloggad som 1101 | – | 1. Öppna alla menyer och inställningar som 1101 har tillgång till. 2. Leta efter en funktion för att spärra lägenheter. | Funktionen finns inte för boende. | Ingen spärrfunktion finns i steg 2. | 5 | Medel · T1: härlett från att kravet nämner styrelsen | Bekräftad |
| TF-024 | Appen på svenska och engelska | TB-11 | Kravlista rad 14 | System | D | Positiv | Låg | Inloggad som 1101 | Språk: svenska, engelska | 1. Välj svenska i inställningarna. 2. Gå igenom inloggning, översikt, bokning och avbokning. 3. Välj engelska. 4. Upprepa steg 2. | Steg 2: all text på svenska. Steg 4: all text på engelska. | Ingen text på fel språk i steg 2 och 4. | 15 | Medel · T3: hur språk väljs anges inte (A-06) | Bekräftad (stickprov) |
| TF-025 | Bokningen visar lägenhetsnummer, inte namn | R-003 | Mejl rad 12 | Acceptans | D | Positiv | Låg | Lägenhet 1101 har bokat i morgon 10:00–13:00 | – | 1. Logga in som 1102. 2. Öppna översikten för i morgon. 3. Välj passet 10:00–13:00. | Passet visas som bokat av 1101. Inget namn visas. | Lägenhetsnumret visas och inget namn visas. | 3 | Medel · T2: exakt hur bokaren visas anges inte | Bekräftad (stickprov) |
3 Täckningsmatris
| Krav-id | Källa | Nivå (ska/bör) | Status | Testfall | Testtyper som täcks | Kommentar |
|---|---|---|---|---|---|---|
| TB-01 | Kravlista rad 3 | Ska (tolkad, inget modalt verb) | Täckt | TF-001, TF-002, TF-003 | Positiv, Negativ | R-004 kan ändra antalet siffror (E-05) |
| TB-02 | Kravlista rad 4 | Ska | Delvis täckt (låsningens längd saknas) | TF-004, TF-005 | Randvärde | TF-006 struket; se E-01 |
| TB-03 | Kravlista rad 5 | Ska (tolkad, inget modalt verb) | Täckt | TF-007, TF-008 | Positiv, Randvärde | Passindelningen är antagen (A-02) |
| TB-04 | Kravlista rad 6 | Ska (tolkad: "får ha max") | Täckt | TF-009, TF-010 | Randvärde | Motstridigt mot R-001 (E-06) |
| TB-05 | Kravlista rad 7 | Ska | Täckt | TF-013, TF-014 | Randvärde | Motstridigt mot R-002 (E-07) |
| TB-06 | Kravlista rad 8 | Ska | Delvis täckt ("i god tid" saknar värde) | TF-016 | Positiv | E-08, A-03 |
| TB-07 | Kravlista rad 9 | Ska | Ej testbart | – | – | E-02 |
| TB-08 | Kravlista rad 10 | Ska | Ej testbart | – | – | E-03 |
| TB-09 | Kravlista rad 11 | Ska | Delvis täckt (bara tvättstuga A) | TF-017, TF-018, TF-019 | Randvärde, Negativ | E-09, A-04 |
| TB-10 [rad 12] | Kravlista rad 12 | Ska | Täckt | TF-020, TF-021 | Randvärde | Dubbelt id (E-10); oklart om dagens datum räknas (E-11) |
| TB-10 [rad 13] | Kravlista rad 13 | Ska | Täckt | TF-022, TF-023 | Positiv, Negativ | Dubbelt id (E-10) |
| TB-11 | Kravlista rad 14 | Ska | Täckt | TF-024 | Positiv | – |
| TB-12 | Kravlista rad 15 | Bör | Ej testbart | – | – | E-04 |
| R-001 | Mejl rad 10 | Ska (tolkad, inget modalt verb) | Täckt | TF-011, TF-012 | Randvärde, Tillstånd | Motstridigt mot TB-04 (E-06) |
| R-002 | Mejl rad 11 | Ska | Täckt | TF-015 | Randvärde | Motstridigt mot TB-05 (E-07) |
| R-003 | Mejl rad 12 | Bör ("Gärna") | Täckt | TF-025 | Positiv | – |
| R-004 | Mejl rad 13 | – | Utanför omfattning (fråga, inte krav) | – | – | E-05 |
4 Ej testbara krav och frågor
| E-id | Krav-id | Källa | Varför det inte går att testa | Förslag på omformulering | Fråga till kravställaren |
|---|---|---|---|---|---|
| E-01 | TB-02 | Kravlista rad 4; Utv rad 4 | Hur länge kontot är låst och hur det låses upp anges inte. Utvecklarens 15 minuter är inte beslutat. | "Efter 5 felaktiga försök i följd ska kontot låsas i X minuter, och därefter låsas upp automatiskt." | "Hur länge ska kontot vara låst efter fem felaktiga försök, och ska det låsas upp automatiskt eller av styrelsen?" |
| E-02 | TB-07 | Kravlista rad 9 | "Snabbt" saknar värde, mätpunkt och belastning. | "Översikten över lediga pass ska visas inom X sekunder efter att användaren valt datum, mätt i testmiljön med Y samtidiga användare." | "Vilken vy är viktigast att den är snabb, och hur lång väntetid är acceptabel?" |
| E-03 | TB-08 | Kravlista rad 10 | "Enkelt" och "äldre" är inte mätbara. | "Minst X av Y testpersoner som är Z år eller äldre ska kunna boka ett pass utan hjälp inom W minuter första gången de använder appen." | "Hur vill ni mäta att det är enkelt, och vilken grupp ska vi testa med?" |
| E-04 | TB-12 | Kravlista rad 15 | "Dygnet runt" anger inget mått på tillgänglighet och går inte att verifiera i ett enskilt test. | "Tjänsten bör vara tillgänglig minst X procent av tiden per kalendermånad, planerat underhåll undantaget." | "Vilken tillgänglighet behövs, och får planerat underhåll ske på natten?" |
| E-05 | R-004 | Mejl rad 13; Kravlista rad 3 | En fråga, inte ett krav. Om den blir ett krav säger den emot TB-01 (4 siffror). | – | "Ska pinkoden vara 4 eller 6 siffror?" |
| E-06 | TB-04, R-001 | Kravlista rad 6; Mejl rad 10 | Två krav som inte båda kan uppfyllas: högst 3 bokningar eller högst 2 åt gången. TF-009 och TF-011 kan inte båda bli godkända. | "En lägenhet får ha högst X framtida bokningar samtidigt." | "Gäller högst 2 eller högst 3 bokningar, och avses bokningar som ännu inte har passerat?" |
| E-07 | TB-05, R-002 | Kravlista rad 7; Mejl rad 11 | Två krav som inte båda kan uppfyllas: avbokning senast 1 timme före eller fram till passets start. TF-014 och TF-015 kan inte båda bli godkända. | "Avbokning ska kunna göras fram till X minuter före passets start." | "Ska avbokning vara tillåten fram till en timme före passet, eller ända fram till att passet börjar?" |
| E-08 | TB-06 | Kravlista rad 8; Utv rad 5 | "I god tid" saknar värde; kanal (push eller SMS) är inte beslutad. Testas delvis med antagande A-03. | "Användaren ska få en påminnelse som push-notis X timmar före passets start." | "När och hur ska påminnelsen skickas?" |
| E-09 | TB-09 | Kravlista rad 11; Utv rad 7 | I tvättstuga B rapporterar maskinerna inte start, så kravet kan inte uppfyllas eller testas där. | "I tvättstugor med uppkopplade maskiner ska ett pass frigöras om ingen maskin startats inom 30 minuter efter passets start." | "Gäller TB-09 även tvättstuga B?" |
| E-10 | TB-10 [rad 12], TB-10 [rad 13] | Kravlista rad 12 och 13 | Två krav har samma id. För spärren anges inte vad som händer med redan gjorda bokningar. | Ge spärrkravet ett nytt id. "Styrelsen ska kunna spärra en lägenhet från att boka; redan gjorda bokningar ska [behållas/tas bort]." | "Vilket id ska spärrkravet ha, och vad ska hända med bokningar som lägenheten redan har gjort?" |
| E-11 | TB-10 [rad 12] | Kravlista rad 12 | Oklart om dagens datum räknas in i "14 dagar framåt". Testat med antagande A-05. | "Boende ska kunna se lediga pass från och med i dag till och med dagens datum plus 14 dagar." | "Räknas dagens datum in i de 14 dagarna?" |
5 Antaganden
| A-id | Antagande | Varifrån | Påverkar |
|---|---|---|---|
| A-01 | Systemtiden i testmiljön kan ställas från admin. Annars måste testaren vänta i realtid. | Utv rad 8 | TF-006, TF-012–TF-021 |
| A-02 | Passen är 07–10, 10–13, 13–16, 16–19 och 19–22. Kravet anger bara pass om 3 timmar mellan 07:00 och 22:00, vilket ger samma fem pass. | Utv rad 6 | TF-007 |
| A-03 | Påminnelsen skickas som push-notis 2 timmar före passet. Inte beslutat. | Utv rad 5 | TF-016 |
| A-04 | TB-09 testas bara i tvättstuga A. Maskinstart kan göras på riktigt eller simuleras i testmiljön. | Utv rad 7 | TF-017–TF-019 |
| A-05 | "14 dagar framåt" = från och med i dag till och med i dag plus 14 dagar. | Vår tolkning | TF-020, TF-021 |
| A-06 | Språk väljs i appens inställningar. | Vår tolkning | TF-024 |
| A-07 | Testkonton med påhittade lägenhetsnummer (1101, 1102, 1103) och ett styrelsekonto. Inga verkliga boende eller personuppgifter. | Metodens regel om testdata | Alla |
| A-08 | Formatfelen i TF-003 testas på ett eget konto (1103), så att eventuella felräkningar inte påverkar låsningstesterna. | Vår tolkning | TF-003 |
6 Granskningslogg
Illustrativ i exemplet: visar formatet och vilken sorts ändringar en slutgranskare gör.
| Kontroll (checklistan, avsnitt 11) | Resultat |
|---|---|
| 1. Granskare | Brickstreams slutgranskare, en senior ingenjör och konsult (illustrativt i exemplet). |
| 2. Täckningsmatris | 17 krav i underlaget, alla med status. Ej testbart och Utanför omfattning är motiverade. |
| 3. Ej testbara krav | Skälen håller; förslagen är användbara. |
| 4. Osäkra testfall | 23 med Medel eller Låg. 21 bekräftade, 1 ändrat, 1 struket. |
| 5. Randvärden | Kontrollerade för alla 8 krav med gränsvärden: gränsen och strax utanför testas, och strax innanför där det är meningsfullt. |
| 6. Stickprov | TF-004, TF-008, TF-010, TF-015, TF-018, TF-024 och TF-025 samt de osäkra testfallen ovan. Spårar till rätt krav, förväntat resultat stämmer, stegen går att utföra. |
| 7. Säkerhetskritiska ska-krav | Inga i underlaget. Låsningen (TB-02) lästes i sin helhet. |
| 8. Antaganden | Rimliga och redovisade. |
| 9. Säkerhet | Inga personuppgifter i testdata. |
| 10. Logg och godkännande | Godkänd för leverans. |
Ändringar
| Testfall | Vad granskaren ändrade | Feltyp (lärandelogg) |
|---|---|---|
| TF-005 | Förväntat resultat angav texten "Kontot är låst". Kravet anger ingen text, så testet kontrollerar nu att användaren får veta att kontot är låst (T2). | Feltolkning |
| TF-006 | Struket. Testfallet byggde på utvecklarens "15 min? ingen har bestämt", inte på kravet. Frågan står i E-01. | Feltolkning |
Granskarens roll: senior testingenjör (namnet lämnas inte i leveransen).
Så gick det till
Steg för steg: utgångsläget, vad kunden gjorde, vad AI-teamet gjorde och vilka frågor det ställde sig, vad slutgranskningen visar och vad kunden behövde göra efteråt.
FIKTIVT EXEMPEL. Tvättbjörn Digital AB, Brf Lingonriset och appen är påhittade av Brickstream. Inget här är en kunds material eller en kundleverans. Arbetet i exemplet är gjort av Brickstreams AI-team enligt paketets metod; slutgranskningen är illustrativ och visar hur den går till.
Så gick det till: "Kraven är ju typ klara, vi behöver bara testa dem"
Paket: Testfall från krav S · Kunden: ett litet apputvecklingsbolag som bygger en app för att boka tvättstugan åt en bostadsrättsförening. Ingen testare anställd. Föreningen ska godkänna appen innan den används.
1. Utgångsläget: en kravlista som ser klar ut, men inte är det
Projektledaren har en kravlista i projektverktyget. Den ser ordnad ut: id, rubrik, beskrivning, prioritet, status. Men:
- Vissa krav går inte att testa som de står: "Systemet ska vara snabbt", "Det ska vara enkelt att boka, även för äldre".
- Två krav har samma id (TB-10), och kommentaren säger "dubbelt id, fixa".
- En kommentar säger "styrelsen sa 2? se mejl".
- Ordföranden har mejlat fyra önskemål efter ett styrelsemöte. Två av dem säger emot kravlistan, och ett är en fråga: "kan den vara 6 siffror istället? Säkrare väl."
- Utvecklaren har en egen lapp med det som faktiskt är bestämt i koden – och det som inte är det: "låsning TB-02: 15 min? ingen har bestämt".
| Fil | Vad den är | Vad som är rörigt med den |
|---|---|---|
indata/01-kravlista-export.csv |
Export från projektverktyget | Vaga krav, dubbelt id, "hur länge?" i kommentarerna. |
indata/02-mejl-fran-styrelsen.txt |
Mejl från ordföranden | Önskemål utan id. Två säger emot kravlistan. |
indata/03-anteckning-utvecklare.txt |
Utvecklarens lapp | Halvbeslut. Men också det som behövs för att testerna ska gå att köra (passtider, testmiljöns klocka). |
2. Vad kunden gjorde
- Bytte ut ordförandens namn mot "Ordförande" i mejlet.
- Laddade upp de tre filerna och valde testnivå (system och acceptans) och språk (svenska).
Mer behövdes inte. AI-teamet ställde inga frågor till kunden under arbetet; allt oklart finns som frågor i leveransen.
3. Vad AI-teamet gjorde, steg för steg
Steg 0 – Kontrollerade det som kom in. 17 krav, alltså storlek S. Inga märkningar. Inga personuppgifter. Styrelsen skriver själv "lägenhetsnummer räcker, inte namn!" – och alla testdata i leveransen är påhittade lägenhetsnummer.
Steg 1 – Byggde en kravbas. Frågor teamet ställde sig: Vilka krav finns, och var står de? Har alla ett id? Vilka värden, gränser och felfall nämns?
- De 13 raderna i kravlistan fick behålla sina id. De två raderna med TB-10 skiljs åt som "TB-10 [rad 12]" och "TB-10 [rad 13]" tills kunden bestämt nytt id.
- Mejlets fyra önskemål numrerades R-001–R-004.
- Utvecklarens lapp blev inga krav. Den är sammanhang, och allt som hämtades därifrån står i fliken Antaganden, så att kunden ser exakt vad som är antaget.
Steg 2 – Bedömde om varje krav går att testa. Frågan teamet ställde sig för varje krav: Kan en testare avgöra Godkänt eller Underkänt utan att tycka något?
- "Snabbt", "enkelt" och "dygnet runt": nej. De fick ett förslag på mätbar formulering i stället för testfall (E-02, E-03, E-04).
- "Påminnelse i god tid": delvis. Testfallet bygger på utvecklarens "push 2 h innan", tydligt märkt som antagande (TF-016, A-03).
- "Kan den vara 6 siffror istället?": en fråga, inte ett krav (E-05).
Steg 3 och 4 – Skrev testfallen med fasta tekniker.
- Randvärden för varje siffra i kraven: fyra felaktiga försök (kontot ska inte låsas) och fem (det ska låsas). 29 och 31 minuter för att frigöra ett pass. 14 och 15 dagar framåt.
- Negativa tester för det som ska nekas: fel pinkod, pinkod med bokstäver, fjärde bokningen, en boende som försöker spärra en annan lägenhet.
- Konkreta steg som går att följa utan att fråga någon: "Ställ systemtiden till 12:01. Logga in som 1101 och välj bokningen. Välj Avboka."
Steg 5 – Kontrollerade att allt hänger ihop. Frågor teamet ställde sig: Har varje krav minst ett testfall eller ett skäl? Pekar varje testfall på ett krav som finns? Använder testfallet samma värde som kravet? Här blev motsägelserna synliga på ett sätt som är svårt att missa: testfallen TF-009 och TF-011 kan inte båda bli godkända. Det första testar kravlistans "max 3 bokningar", det andra styrelsens "max 2 åt gången". Samma sak för avbokning (TF-014 och TF-015). Båda paren är med i leveransen, och frågan om vilket som gäller står i E-06 och E-07.
Steg 6 – Satte ihop leveransen. Testfall, täckningsmatris, ej testbara krav med förslag, antaganden, rapport och en CSV-fil med ett steg per rad för import i ett testverktyg.
Steg 7 – Lämnade över till en människa med de osäkra testfallen överst.
4. Före och efter
| Det kunden hade | Det leveransen säger |
|---|---|
| "Systemet ska vara snabbt" | E-02: går inte att testa. Förslag: "Översikten över lediga pass ska visas inom X sekunder efter att användaren valt datum, mätt i testmiljön med Y samtidiga användare." |
| "Efter 5 felaktiga försök ska kontot låsas" + "hur länge?" | TF-004 (fyra försök: inte låst) och TF-005 (fem: låst). Hur länge kontot är låst går inte att testa förrän ni bestämt det (E-01). |
| "En lägenhet får ha max 3 bokningar" + "styrelsen sa 2? se mejl" | TF-009 och TF-011, som inte båda kan bli godkända. Fråga E-06: "Gäller högst 2 eller högst 3 bokningar, och avses bokningar som ännu inte har passerat?" |
| "Om ingen startat en maskin inom 30 min ... ska passet frigöras" | TF-017–TF-019 för tvättstuga A. Tvättstuga B har gamla maskiner som inte rapporterar start, så kravet kan inte uppfyllas där (E-09). |
| Två krav med id TB-10 | Båda testade och spårade; E-10 ber om nytt id för spärrkravet. |
| "Gärna att det syns vem som har bokat (lägenhetsnummer räcker, inte namn!)" | TF-025 kontrollerar både att lägenhetsnumret visas och att inget namn visas. |
| 13 krav i en lista och 4 i ett mejl | 24 testfall med 69 steg, en täckningsmatris där alla 17 krav har status, och 11 frågor. |
5. Vad slutgranskaren ändrade (illustrativt)
Slutgranskaren – en senior ingenjör och konsult på Brickstream – läste alla osäkra testfall och kontrollerade randvärdena. Två ändringar:
- TF-005: AI-teamet hade skrivit att meddelandet "Kontot är låst" ska visas. Den texten står inte i kravet, så testet kontrollerar nu bara att användaren får veta att kontot är låst.
- TF-006 struket: testfallet kontrollerade att kontot låses upp efter 15 minuter. Siffran kom från utvecklarens lapp ("ingen har bestämt"), inte från kravet. Ett testfall ska inte göra ett obeslutat värde till ett krav. Frågan står i E-01 i stället.
6. Vad kunden behövde göra efter leveransen
- Bestämma sig i de två motsägelserna (E-06, E-07) och svara på frågorna om låsning och påminnelse. Det är beslut bara föreningen och bolaget kan ta.
- Importera CSV-filen i testverktyget, eller skriva ut testfallen och köra dem.
- Se till att klockan i testmiljön går att ställa, annars tar testerna med tider lång tid att köra.
En revidering ingår inom 10 arbetsdagar från leverans, till exempel om kunden vill ha testfallen i en egen mall eller ändrar högst en tiondel av kraven efter svaren på frågorna.
7. Vad var arbetet värt?
Uppskattning, inte uppmätt. Så här lång tid hade samma leverans tagit för en erfaren testkonsult, räknat med samma arbetstakt som i Brickstreams priskalkyl:
| Moment | Uppskattad tid |
|---|---|
| Analys av varje krav: testbarhet, gränsvärden, felfall (17 krav, 5–10 minuter per krav) | 1,4–2,8 h |
| Formella testfall med förutsättningar, steg, testdata och förväntat resultat (24 testfall, 15–30 minuter per testfall) | 6–12 h |
| Täckningsmatris, frågor och rapport | 2 h |
| Totalt | cirka 9–17 timmar, alltså cirka 9 000–20 000 kr vid 1 000–1 200 kr per timme |
Motsvarande paket: Testfall från krav S (upp till 40 krav). 12 900 kr exklusive moms. Leveranstid normalt inom 3 arbetsdagar; datumet bekräftas vid beställning. Ett fullt S-underlag med 40 krav uppskattar vi till 25–49 konsulttimmar för samma leverans.
Det här tar vi inte emot – och bara det
Ordning behövs inte. Två saker tar vi däremot inte emot, och det följer av lag: säkerhetsskyddsklassificerade uppgifter och exportkontrollerad teknisk information. Om ni vill maskera namn eller andra personuppgifter, till exempel byta namn mot roller, avgör ni själva utifrån er interna policy. Bolaget valde att byta ordförandens namn mot "Ordförande".
Har ni ett lika rörigt underlag?
Skicka det som det är. Vill ni först se hur det blir på ert eget område kan ni beställa ett kostnadsfritt prov på ett publicerat underlag, eller be om att bli uppringda.
Redan kund hos oss? Logga in och beställ i plattformen
Fler exempel: Anbudsstöd S · Kravanalys och kravspårning S · Alla tjänster