Boken Agile Testing
Jag läste just Agile Testing - A Practical Guide for Testers and Agile Teams från Addison-Wesley av Lisa Crispin och Janet Gregory. ISBN: 9780321534460. Du hittar den just nu för 314 kr på Adlibris - [1] - eller 42$ på Amazon - [2] .
Överblick
Den är trevligt indelad i fyra delar (plus en introduktion och en sammanfattning) som täcker utmaningar i organisationen, agila testkvadranter, automatisering och en iteration i en testares liv.
Av de 29 reviews den fått på Amazon har den ett betyg på 4.3 av 5. De mest kritiska bedömarna menar att boken är för lång, för repetitiv och handlar för mycket om agil utveckling och för lite om agil testning. Och: Ja, den är repetitiv och handlar för mycket om agil utveckling. Och: Ja, den är ganska lång. Man hade kunnat såga bort två tredje delar och ändå täcka det (i mina ögon) som är riktigt bra med boken.
Om man som jag har en del agil utveckling i bagaget blir det tradigt att höra om hur bra det är att gå agilt. Så det man då bör göra är att strunta i allt utom agila testkvadranter och automatisering. Är man, som jag, mer åt det tekniska hållet och mindra åt management hållet är det helt enkelt mitt tips: börja läsa Part III: Agile Testing Quadrants. Hittar du något du gillar kan du alltid hoppa tillbaka senare.
Så vad är det som är bra med agila testkvadranter och automatisering då? Jo, Lisa och Janet (de refererar ofta till varandra on a first name basis) ger deras tolkning av agila testkvadrater som är ett sätt att få en helhetssyn på (agil) testning, kvadranterna fungerar även som en bra checklista så man inte råkar ut för problemet att man har utmärkta enhetstester men en värdelös produkt. Automatiseringen, då? Jo, de beskriver olika sätt att automatisera och värdet av automatisering. De beskriver även metoder där automatisering i sig inte är testet utan att automatiseringen är ett sätt att initialisera sin test setup. Faktum är att jag själv gjort precis det (använt ett automatiserat test för att få ett system i rätt tillstånd så jag kan köra exploratory testing utifrån det), men inte riktigt haft koll på att det är best practice (eller i alla fall good practice).
Part I: Introduction
Den första delen nämner lite om vad agil utveckling innebär och ger en trevlig lista på tio principer som är viktiga för agila testare. Här kommer min översättning av dem:
- Ge kontinuerlig feedback
- Leverera värde till kunden
- Möjliggör kommunikation ansikte-mot-ansikte
- Ha mod
- Håll det enkelt (Keep It Simple)
- Ständiga förbättringar
- Reagera på förändringar
- Var själv-organiserande
- Fokusera på människor
- Njut
Part II: Organizational Challenges
Här någonstans höll jag på att ge upp. I mina ögon handlar det här kapitlet om hur man kan överbrygga problem som organisationen man jobbar på har eller ser när man vill gå över till agil utveckling. Mitt tips är att hoppa över den här delen och börja direkt på nästa för att få en känsla om agil testning.
Är det så att man är i den sitsen att man har problem att gå agilt får man antagligen mod och bra idéer av att läsa den här delen.
Kapitlen i den här delen är:
- Cultural Challenges
- Team Logistics
- Transitioning Typical Processes
Part III: Agile Testing Quadrants
Det jag tycker är viktigast i hela Boken Agile Testing är verktyget Agila Testkvadranter. Det är tydligen ett begrepp som Brian Marick myntade i sin blogg 2003 (se [3]) och som hottades upp av Lisa och Janet i boken (se mer i Lisa Crispins blogg: [4]). En viss "rubytester" gjorde en trevlig slide show för att på sitt sätt förklara kvadranterna (se [5]).
I princip går agila testkvadranterna ut på att dela upp testing i ett plan med två axlar. Den ena axeln delar aktiviteterna i tester som stöder teamet och tester som kritiserar produkten. Tester som stöder teamet är till exempel enhetstester (de kan fungera som ett stöd vid utveckling, faktorisering och som regressionstester) och säkerhetstester av typen sql-injection. Den andra axeln delar upp test aktiviteterna i tester som är teknologi-nära (eller kod-nära) och business-nära (eller kund-nära). Teknologi-nära tester är till exempel last-tester och kund-nära kan vara GUI-tester.
Det intressanta nu är att test-aktiviteterna blir uppdelade i fyra kvadranter:
- Teknologi-nära tester som stöder teamet
- Business-nära tester som stöder teamet
- Business-nära tester som kritiserar produkten
- Teknologi-nära tester som kritiserar produkten
Att dessa fyra delar fått nummer 1-4 är bara ett sätt att dela upp dem och hålla ordning på dem, Lisa påpekar i sin blogg (och i boken upprepade gånger) att det inte är en prioriterings-lista och man behöver inte göra det ena innan det andra - man behöver hålla koll på alla fyra samtidigt. Ibland behövs kanske bara en del tester och ibland behövs aktiviteter för att täcka alla fyra kvadranter. Som utvecklare är det lätt att tänka Vi har så bra enhetstester, vad ska vi med testare till? Det är vid den sortens tänk som agila testkvadranterna snabbt och enkelt kan visa att nej, det räcker (oftast) inte.
Jag gillade det här konceptet ganska mycket och letade efter en bra bild att använda här - men jag hittade ingen - så jag ritade om bilden som finns i boken och lade till lite egna tolkningar och exempel på test-metoder. Så här är i alla fall min tolkning av agila test-kvadranter:
Jag bröt ut mer detaljer om dessa kvadranter i en sida om just dessa fyra Agila Testkvadranter.
Sammanfattning
Om det är något jag tycker om Boken Agile Testing så är det de agila test-kvadranterna - köp boken och läs dessa kapitel och kasta boken om du behöver. Kvadranterna introducerar ett helhetstänk som man lätt missar om man, till exempel som jag, har en bakgrund som utvecklare.
I ett agilt projekt behövs olika typer av testning. De agila test-kvadranterna kan fungera som ett stöd i en iteration, eller inför implementation av en produkt, feature eller story. En snabb titt och lite brainstorming kan visa på viktiga tester man annars kanske missar.
Part IV: Automation
Författarna berättar sin syn på varför man ska automatisera testning, vilka strategier man kan använda och vad man inte ska automatisera.
Ett exempel som återkommer är (med referenser till Working Effectively with Legacy Code av Michael Feathers - ISBN: 9780131177055) hur man kan bygga om ett legacy-system med hjälp av att först skriva tester för att få koll på vad systemet gör för att därefter få modet att modernisera eller skriva om det gamla systemet.
Andra tips är att titta på vad som gör mest ont nu, göra en risk-analys och att bara ta en del i taget.
Part V: An iteration in the Life of a Tester
Denna del innehöll mycket mjuka värderingar och attityder och en del handfasta tips. Delen är nog till en hel del hjälp för läsare som är inriktade mot management, eller kanske testledare. Kapitel som täcks här är:
- tester activities in release or theme planning
- hit the ground running
- iteration kickoff
- coding and testing
- wrap up the iteration
- successful delivery
Part VI: Summary (Key Success Factors)
Den sista delen innehåller endast ett kapitel om viktiga framgångsfaktorer (Key Success Factors).
- Använd en approach där du ser hela teamet
- Använd en agil testares tankesätt (se ovan för tio principer som är viktiga för agila testare)
- Automatisera regressionstester
- Ge och ta feedback
- Bygg en stabil bas av grundläggande metoder (kontinuerlig integration, testmiljöer, hantera teknisk skuld/backlog/buggar, jobba inkrementellt, inse att kodande och testande är två delar av samma process)
- Samarbeta med kunden
- Se helheten
Sammanfattning
Agile Testing - A Practical Guide for Testers and Agile Teams är en toppenbra bok för alla som på något sätt är involverade i test och agila projekt. Den är trevligt indelad i delar och man gör nog rätt i att hoppa över delar som inte talar direkt till en. Varje kapitel har en mindmap i början och en sammanfattning i slutet - perfekt när man går tillbaka till ett kapitel. Jag kan varmt rekommendera kapitel 6 till 12 i Part III. som handlar om de agila testkvadranterna - ett koncept jag garanterat kommer ta med mig till nästa projekt jag jobbar på. De övriga delarna läste jag väl valda delar av och boken kändes ibland pratig, tradig och full av upprepningar.
Alltså: läs Part III: Agile Testing Quadrants om de agila testkvadranterna
Se också Agila Testkvadranter
Se också Boken Software Testing Foundations
Se också Boken Advanced Software Testing
Se också Boken Requirements Engineering Fundamentals
Tillhör Kategori Mjukvara
Tillhör Kategori Test
Tillhör Kategori Boktips