Skip to main content

Redaktörens kommentar: Välkommen till serien Ledarskap inom test från testgurun och konsulten Paul Gerrard. Serien är utformad för att hjälpa testare med några års erfarenhet – särskilt de som arbetar i agila team – att bli bättre i roller som testledare och testansvariga.

I den föregående artikeln beskrev vi ett riskmanifest för att hjälpa chefer. I den här artikeln ska vi ställa den tidlösa frågan ”Hur mycket testning är tillräckligt?”. Spoiler: det avgörs av intressenterna.

Anmäl dig till nyhetsbrevet från The QA Lead för att få en avisering när nya delar av serien publiceras. Dessa inlägg är utdrag ur Pauls kurs Ledarskap inom test, som vi varmt rekommenderar för en djupare genomgång av detta och andra ämnen. Om du gör det kan du använda vår exklusiva kupongkod QALEADOFFER för att få 60 USD rabatt på kursens ordinarie pris!

Oavsett projekt, organisation eller arbetssätt finns det alltid en plats för dokumentation. Bra dokumentation är en välsignelse och ger en användbar redogörelse för arbetssätt, omfattning, planer, utformning samt resultaten av analys-, utvecklings- och testaktiviteter. 

I den här artikeln går jag igenom:

Då kör vi.

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

Värdet av dokumentation

I strukturerade projekt betraktas dokument vanligtvis som leverabler i sin egen rätt. I agila eller kontinuerliga arbetssätt kan dokumentation produceras som en biprodukt med större eller mindre värde.

Att skriva dokument kan vara den huvudsakliga aktiviteten för professionella tekniska skribenter, men för de flesta yrkesverksamma är det ett besvär – oavsett hur användbart det kan vara. Även om dokumentskrivande kan vara tråkigt för vissa är det verkliga problemet med dokumentation att den i många sammanhang helt enkelt är slöseri med tid. Den har litet värde, är inaktuell, felaktig – eller allt detta på en gång.

Alla testansvariga har skrivit teststrategier som ingen läste eller ställde sig bakom. Testare skriver mängder av testplaner, testskript och rapporter, och det enda innehåll som är värdefullt för intressenterna är de ensidiga sammanfattningarna i början eller slutet.

Vi har alla skrivit dokument som vi vet har litet värde och som ingen kommer att läsa.

Detta beror på vanliga problem med dokumentation som vi stöter på i både stora och små projekt. För varje dokument vi skriver finns det flera frågor som vi behöver besvara:

  • Vilken typ av dokument? En policy eller strategi, ett arbetssätt eller en plan, en utformning eller implementering, eller ett resultat och en tolkning?
  • Vad är syftet med dokumentet?
  • Vilket innehåll krävs för att uppfylla syftet?
  • Vilka kunskapskällor krävs för att skapa innehållet?
  • Om dokumentet måste förändras över tid, hur ska det underhållas?
  • Vilken detaljnivå krävs?
Som testansvarig eller som team behöver du avgöra vilka typer och format av dokumentation som är lämpliga och, om de ska vara korrekta register eller så kallade levande dokument, hur de ska underhållas.

Get regular tech leadership wisdom for delivering better software and systems.

Nackdelarna med mallar och kopiera/klistra in

Om ditt projekt fastställer att ett visst dokument krävs, till exempel en systemtestplan eller ett riskregister, är det frestande att hitta en färdig mall för detta (och många andra dokumenttyper) på internet.

Vissa mallar kan hävda att de följer någon standard eller konvention och att de har laddats ner och använts tusentals gånger. Ibland kan en mall verka passa exakt för ditt ändamål. Men som vi ska se kan den ställa till problem för dig även om innehållsförteckningen ser heltäckande ut.

Det kan också vara så att du eller andra på företaget har tagit fram ett liknande dokument för tidigare projekt. Du kan frestas att kopiera och byta namn på dokumentet, ändra hänvisningarna till det gamla projektet och redigera innehållet så att det passar.

Varning: Enligt min erfarenhet som oberoende granskare är detta mycket vanligt och ofta ett verkligt problem. 

För det första är det vanligtvis uppenbart att en kopiering/redigering har gjorts. Språket som används i texten verkar ofta sakna koppling till projektet och det finns luckor och överflödig text överallt. Varför är det så?

Att använda en färdig mall eller ett befintligt dokument som källa medför flera risker:

  • Det ser heltäckande ut, men kan innehålla ämnen som är olämpliga och utesluta andra som är nödvändiga.
  • Det innehåller rubriker för ett dokument, men absolut ingen vägledning om vilket innehåll som är lämpligt för varje rubrik.
  • Det kan innehålla text som ser återanvändbar ut och som har kopierats oförändrad från ett tidigare, orelaterat projekt, men den texten kan ge ett felaktigt intryck eller vara felaktig eller ofullständig.

Att använda mallar för att få rubriker och en grundläggande formateringslayout kan vara användbart, men det största problemet med mallar är detta:

Att använda en mall kan spara lite tid; risken är att du inte tänker igenom texten tillräckligt.

Frestelsen med mallar är att lita för mycket på dem och sedan skriva utfyllnad för de olika avsnitten. Du kanske trots allt tänker att dokumentet bara uppfyller en ‘kryssruta’ och att ingen ändå kommer att läsa det. Risken med mallar är att du slutar tänka och skriver ett dokument som har begränsat värde.

Typer av testdokumentation

I det här avsnittet tittar vi på de olika formerna av testdokumentation och diskuterar vissa överväganden i strukturerade eller agila/kontinuerliga projekt jämfört med traditionell vattenfallsutveckling. 

Den centrala uppsättningen testdokument brukar delas in i följande kategorier:

  • Policy och strategi (ibland kallad övergripande testplan)
  • Testdefinition (även kallad specifikation eller testplaner, förvirrande nog)
  • Testutformning
  • Testfall
  • Testprocedurer eller skript
  • Testgenomförande
  • Tidsplan
  • Logg
  • Testrapport

Ovanstående utbud av dokumenttyper täcker definitionen av testprocessen, centrala aktiviteter för definition och genomförande samt rapportering. 

Det finns flera andra testrelaterade dokument som i mer byråkratiska miljöer skulle omfatta definitioner av testmiljöer och hanteringsprocesser, acceptansprocedurer, processer för incidenthantering och så vidare (vi kommer att behandla incidenthantering i en framtida artikel).

En annan uppenbar utelämning ovan är en övergripande plan eller tidsplan för testaktiviteter. En tidsplan är egentligen inte ett testdokument, utan en delmängd av en övergripande projektplan för ett strukturerat projekt (vi kommer också att behandla planering av tidsplaner i en framtida artikel, så håll utkik!).

Policy, strategi och övergripande testplan

Syfte
  • En policy omfattar vanligtvis en organisation och innehåller en delmängd av ämnen som täcker alla projekt. En strategi omfattar vanligtvis ett enskilt projekt (eller en applikation)
  • Övergripande ger strategin beslut om logistiska frågor kring tillvägagångssätt, överlämningar, ansvarsområden, miljöer och så vidare.
  • Vissa av dessa beslut kan fattas i förväg och dokumenteras i strategin
  • Vissa beslut kan inte fattas nu, men strategin kan dokumentera den process, metod eller information som gör det möjligt att fatta beslut (i projektet)
  • För osäkra situationer eller oplanerade händelser där beslut behöver fattas dokumenterar strategin de allmänna principer (eller den process) som ska följas.
Innehåll
  • Intressenter, mål och viktiga risker att beakta
  • Testprinciper/tillvägagångssätt som ska antas, till exempel ett riskbaserat test-tillvägagångssätt
  • Testprocess (testningsfaser):
    • mål och omfattning
    • acceptanskriterier
    • metoder och tekniker
    • leverabler (dokument)
    • ansvar
    • Icke-funktionella/tekniska testaktiviteter
    • Policy för hantering av (test)leverantörer
    • Process för incidenthantering
    • Källor till testdata
    • Testmiljöer
    • Strategi för verktyg/automatisering
  • Dokumentformat och mallar
Källor
  • Intressenter, användare, BA:er, utvecklare och driftpersonal
Underhåll
  • Vanligtvis ett engångsdokument som definieras för ett projekt eller program
Överväganden för agila metoder/kontinuerligt arbete Teststrategin för agila projekt som använder Scrum är till exempel sannolikt ganska kortfattad och omfattar bara några få sidor (om den alls dokumenteras). Testprocessen kanske inte har några faser, men det kommer sannolikt att finnas en definition av testning på olika nivåer. Till exempel:
  • Testning i en sprint eller iteration
  • Testning inför en version
  • Systemintegrationstestning (med andra system eller gränssnitt)
  • Användartestning (acceptans på sprint- och/eller versionsnivå).
Hur verktyg används vid utvecklartestning (och till exempel användning av BDD eller TDD) kommer sannolikt att förbli odokumenterat, men utvecklingsteamen förväntas utveckla ett tillvägagångssätt och samordna sig med andra teammedlemmar när de implementerar ny kod. Testarens roll kan vara att testa funktioner interaktivt när de släpps av utvecklarna eller att fungera som testhandledare för resten av teamet. Precis som användningen av verktyg och/eller TDD kommer arbetssättet att utvecklas över tid och kanske aldrig dokumenteras formellt.

Testdefinition (design, testfall och procedurer)

Syfte
  • Att visa flödet eller spårbarheten mellan kunskapskällorna och de tester som ska utföras
  • Att dokumentera täckningen (mot flera modeller) av aspekter av kraven, systemfunktionerna eller användarbeteendet
  • Att göra det möjligt för intressenter att granska omfattningen, tillvägagångssättet, täckningen och de val som gjorts när de tester som ska tillämpas skapades
  • Att tillhandahålla instruktioner för genomförandet av tester på en överenskommen detaljnivå.
Innehåll
  • Testningens omfattning – både på en hög nivå, till exempel funktioner, och på en lägre nivå, till exempel beteendemodeller
  • Testtäckning i förhållande till objekt inom omfattningen (till exempel en matris för kravtäckning eller en annan testmodell)
  • Testfall som identifierar funktioner, förvillkor, indata och eftervillkor (inklusive förväntade resultat)
  • Testprocedurer som kan återanvändas för att köra utvalda testfall.
Källor
  • Intressenter, användare, krav, designer och specifikationer
Underhåll
  • I princip bör det, när kraven är fasta, finnas en enda överenskommen version av dessa dokument
  • När krav eller omfattning ändras behöver testare justera dokumenten, underhålla dokumentationens spårbarhetsaspekter och tillhandahålla en konfigurationshanteringslogg eller ändringslogg.
Överväganden för agila metoder/kontinuerligt arbete Området testdefinition är det område där det agila tillvägagångssättet skiljer sig mest markant från strukturerade projekt. Potentiellt kan testare som fokuserar på funktioner när de levereras inte skapa någon dokumentation alls. Detta är lämpligt om det till exempel finns en policy eller ett styrdokument för testning av funktioner som gäller för hela systemet. Troligare är att det finns ett kort styrdokument för testning av varje funktion i en undersökande testsession. Ett styrdokument fungerar som en plan för en kort undersökningsperiod. Styrdokumentet identifierar vanligtvis:
  • Testsessionens omfattning – de funktioner som ska täckas och/eller viss angiven funktionalitet eller något specifikt beteende hos systemet
  • Sessionens mål – att undersöka vissa aspekter av beteenden, fokusera på en viss risk eller ett visst felsätt eller tillämpa vissa utvalda scenarier
  • Sessionens längd är vanligtvis 45–120 minuter. Sessionen är nödvändigtvis begränsad i omfattning, men testare får undersöka sådant utanför omfattningen om de anser att det är värdefullt
  • Ett styrdokument kan ha som mål att fokusera på undersökning – att ta reda på vad en funktion gör, identifiera specifika beteenden som är värda att testa, bedöma hur mycket testning/hur många sessioner som krävs för att testa en stor eller komplex funktion, förstå vilka testdata som kan behövas för att testa den och så vidare
  • Ett styrdokument kan fokusera specifikt på att testa en funktion, men samtidigt lyfta fram vissa områden som behöver mer uppmärksamhet än andra.
BDD-verktyg och berättelser i ett valt format, till exempel Cucumber- eller Gherkin-formaterade berättelser och scenarier, kan tillhandahålla den spårbarhet och det innehåll som testdesigner och procedurer gör. Varje scenario med satserna ”given/when/then” identifierar förvillkor, indata och eftervillkor. De hänvisar till en enskild funktion, så de utgör ett minimalt testfall/en minimal procedur och är åtminstone spårbara till funktioner. Tester som har skriptats för att köras av verktyg kan ha mellanliggande dokumentation eller inte. Team förlitar sig mer på observation av automatiserade tester och tabeller med testdata som används av automatiserade skript än på dokumenterade testdesigner.

Testkörning (schema, logg)

Syfte
  • Att ange i vilken ordning testerna ska köras
  • Att registrera testernas status – körda/inte körda och status
  • Att tillhandahålla resultaten från testkörningen för rapportering
Innehåll
  • Testidentifierare, testare, datum/tid för körning, status
  • För tester som verkar uppvisa avvikande beteende (valfritt):
    • Detaljer om testet så som det kördes där detaljerna skiljer sig från skriptet
    • Faktiska resultat jämfört med förväntade resultat
    • Andra observationer, tolkning
    • Teststatus (defekt, avvikelse i konfiguration eller miljö etc.)
    • Observations- eller defektrapportens id (i förekommande fall)
Källor
  • Inventering av testfall/testprocedurer, testare
Underhåll
  • Schemat skulle ändras i takt med testningens omfattning och procedurer som ändras, tas bort eller läggs till i planen.
  • Tester kommer sannolikt att köras flera gånger, antingen som omtester eller regressionstester. Loggen bör innehålla en fullständig historik för alla tester som ingår i omfattningen.
Överväganden för agilt/kontinuerligt arbete Om agila/kontinuerliga projekt inte förbinder sig till dokument för testdefinition kompenserar de till viss del genom att uppmuntra testare att föra bättre loggar över testkörningen. När testning utförs i sessioner mot testcharter förväntas testaren föra bra anteckningar om de tester som körs. Det finns få särskilda verktyg för testloggning som är mer än anteckningsböcker, så många testare använder enkla textredigerare, anteckningsverktyg eller anteckningsböcker i pappersform. Loggar används vanligtvis för att registrera all betydande aktivitet och alla observationer under sessionerna medan de genomförs. En typisk logg för utforskande testning skulle innehålla aspekter som:
  • Strukturen hos de utforskade funktionerna (en karta över området)
  • Observationer och frågor relaterade till de funktioner som utforskades under sessionen
  • Modeller, listor och tabeller över testobjekt och testidéer
  • Körda tester, dokumenterade med tillräckliga detaljer för att kunna återupprepa dem
  • Avvikelser som hittats – fel, tveksamt beteende, långsamma svar, bristande användarupplevelse och så vidare
  • Tid som lagts på utforskning, testkonfiguration, testning, undersökning, felrapportering, omtestning, regressionstestning och icke-produktiv tid
  • Datum/tid för registreringen
När testare loggar sin sessionsaktivitet i anteckningsverktyg eller andra verktyg använder de någon form av markering eller annat domänspecifikt språk för att strukturera sina anteckningar. Dessa kan analyseras av enkla interna verktyg för att ge sammanfattningar av aktiviteten som kan användas i testrapporten. Tester som körs av verktyg (oavsett om de är proprietära eller har öppen källkod) loggas automatiskt. Vanligtvis kan dessa loggar sökas i via verktyget eller användarskrivna procedurer.

Testrapport

Syfte
  • Att kommunicera resultatet av en testfas, utvalda tester eller en testsession
  • Kan även gälla tekniska krav eller icke-funktionella testaktiviteter, och i så fall skulle innehållet anpassas efter testmålet
  • Att delvis informera intressenter så att de kan fatta beslut om godkännande eller lansering av ett system eller delsystem.
Innehåll
  • Testets start- och sluttider samt varaktighet
  • Testmiljö
  • Programvaru- och systemversion(er) som testas
  • Testningens mål och omfattning (från teststrategin, testdefinitionen)
  • Berättande sammanfattning av resultaten
  • Funktioner som bedöms fungera enligt kraven
  • Risker som bedöms ha hanterats
  • Kvarstående tester av betydelse (misslyckade eller blockerade)
  • Funktioner som testats delvis eller inte alls
  • Risker som hanterats delvis eller inte alls.
  • Detaljer om testresultat med utdata från testloggar osv.
  • Status för kringgående lösningar för kvarstående avvikelser
  • Testanalyser
  • Testernas framsteg och status över tid
  • Incidentstatistik
Källor
  • Teststrategi, testdefinitioner, testlogg, incidentrapporter
  • En stor del av innehållet i en testrapport kommer från de verktyg som används för att registrera testdefinition(er), testloggen samt incident- eller defektloggen.
Underhåll
  • Detta är en ögonblicksbild av en testkörningsfas och underhålls inte.
Överväganden för agilt/kontinuerligt arbete Syftet med en testrapport i ett agilt projekt kan omfatta en enskild iteration eller sprint, testning inför en lansering eller en testfas på högre nivå, såsom integration eller övergripande systemgodkännande. Oavsett vilket är syftet oförändrat. En stor del av innehållet i en testrapport kommer från verktyg eller anteckningar från testare. Den berättande sammanfattningen av resultaten skrivs av en testledare eller testaren för en mindre omfattande testfas. Som vanligt är rapporten sannolikt mindre formell, och det skulle förmodligen finnas mindre rådata som kan ligga till grund för avancerade analyser. Under iterationen eller iterationerna kan framstegen genom iterationen, i form av funktioner eller berättelser som levererats, testats och godkänts av användarna, mycket väl registreras i ett verktyg eller på en offentlig KanBan-tavla. På så sätt hålls intressenterna informerade om framstegen under hela iterationen, och behovet av en formell rapport i slutet av en testperiod minskar. Synlighet kring framstegen är en viktig fråga för agila team. Med regelbundna, kanske dagliga, ståmöten kring exempelvis en Scrum-tavla delar teammedlemmarna sin förståelse av framstegen, ställer frågor till varandra och kommer hela tiden överens om en ståndpunkt (och nästa steg). På så sätt kanske en formell testrapport aldrig behövs, eftersom teamet alltid är informerat och uppdaterat. Om testarna för skriftliga anteckningar över sina sessionsaktiviteter finns det inga analyserbara data tillgängliga för att presentera automatiserade rapporter, så sessions- och framstegsrapporteringen kan behöva presenteras på ett offentligt och visuellt sätt. Detta kräver hög disciplin och god kommunikationsförmåga hos testarna. Testledaren eller testansvarig måste då tillhandahålla en motsvarande informativ rapport till intressenterna baserad på muntliga rapporter.

Några råd

Dokumentation i projekt är ett känsligt ämne för testare såväl som för andra projektmedlemmar.

De flesta betraktar skrivandet av dokumentation som ett besvär.

Här är några saker att tänka på när du utformar din dokumentation.

  1. Dokumentationen måste ha ett väldefinierat syfte och en tydligt definierad målgrupp. Om målgruppen inte behöver dokumentationen kommer de inte att läsa den. Om den inte knyter an till deras egna mål kommer de inte att ställa sig bakom den.
  2. Det är vanligtvis bättre att dokumentera en aktivitet före eller medan du utför den. TDD dokumenterar exempelvis tester innan koden skrivs. Loggar från testsessioner bör dokumenteras under sessionen och inte skrivas i efterhand.
  3. De nödvändiga uppgifterna för att dokumentera en aspekt av testningen kan vara minimala. En testanteckning i en anteckningsbok kan till exempel vara tillräcklig för testaren men kan inte enkelt analyseras. Kanske skulle en enkel textlogg med viss uppmärkning gå lika snabbt att skapa, men även kunna analyseras av ett anpassat verktyg.
  4. Testprocedurer kanske inte behövs alls om testarna känner till systemet som testas väl. Kanske behövs endast ett testmål eller en testplan. Förberedda testfall kan dokumenteras minimalt i ett kalkylblad.

Avslutningsvis

Nödvändigheten är dokumentationens moder.

Om du tar fram omfattande dokumentation för dina intressenter och de inte läser den beror det på att de inte ser något värde i den.

Det är bättre att ge en intressent ett tomt papper och tillsammans lägga till de ämnen som de behöver se i ett dokument och utgå därifrån. Det kan hända att de ber om mängder av innehåll, men det de faktiskt behöver är ganska enkelt. Fortsätt fråga: ”varför vill de ha detta?”

Tack för att du läste. Följ med oss nästa gång när vi kavlar upp ärmarna och börjar med testplanering.

Anmäl dig till The QA Leads nyhetsbrev för att få ett meddelande när nya delar av serien publiceras. Dessa inlägg är utdrag ur Pauls kursen Ledarskap inom test, som vi varmt rekommenderar om du vill fördjupa dig i detta och andra ämnen. Om du gör det kan du använda vår exklusiva kupongkod QALEADOFFER för att få $60 rabatt på kursens fullständiga pris!