TEST I EN VÄRLD AV INTEGRERADE SYSTEM FRÅN OLIKA LEVERANTÖRER Johan Östman 3 frågor att besvara Vilka krav är rimliga att ställa på leverantörens tester? Vad bör kommunen själv testa? Hur genomförs dessa tester på bästa sätt? © Konsultbolag1 ”Hur ofta har vi inte tvingats att ta i drift eller förvalta IT-system som inte fungerar så bra? System som inte bara i sig kostat mycket utan dessutom förorsakar dyrbara driftstörningar och upprörda användare” "Bra, snabbt, billigt. Välj två." Projekttriangeln Varje projekt balanserar en "triangel" med tid, kostnad och kvalitet – du kan inte ändra en komponent utan att påverka minst en av de andra. © Konsultbolag1 Vad är kvalitet? “Kvalitet (även kvalité) avser värdet av egenskaper som objekt, subjekt eller aktiviteter har.” – Wikipedia ”Bra kvalitet är något som sprider sig, dålig kvalitet sprider sig ännu snabbare” © Konsultbolag1 Fem smärtsamma symptom på bristande kvalitetssäkring • • • • • LÅNGSAMT Verksamheten drabbas ofta av oväntat försenade projekt och ofullständiga leveranser som inte alltid möter marknadens behov. Tiden för att hämta tillbaka investeringen blir för lång och det är svårt med besked om leveranser och releaser. INEFFEKTIVT Det uppstår missförstånd inom organisationen och kommunikationen brister. Verksamheten lägger tid på att återuppfinna hjulet och att släcka bränder istället för att vidareutveckla sina rutiner. Medarbetare upplever att de saknar rätt verktyg för att göra sina jobb och är inte nöjda med sina prestationer. KOSTSAMT Budgeten överskrids och tidsplaneringen håller inte, att rädda uppkomna situationer och jobba ikapp drar resurser och pengar. Dessutom uppstår ständiga diskussioner om vilken verksamhetsnytta som uppnås i förhållande till kostnaden. OKONTROLLERAD RISK Verksamheten upplever frustration och osäkerhet i sina beslutsfattanden – dessa måste ofta göras på ofullständiga underlag som gör att det uppstår oförutsedda och snabba konsekvenser. Det leder i sin tur till brister i säkerheten, lägre kundnöjdhet och det påverkar även marknadsföringen negativt. FRUSTRATION OCH OTRYGGHET Organisationen saknar tillräcklig egen kompetens, outsourcingprojekt är misslyckade eller leverantör brister i sitt åtagande. Kravhantering och testarbete delegeras otydligt i organisationen eller till leverantör oklara avgränsningar – det medför oro och osäkerhet för leveranser och kvalitet. Det uppstår diskussioner om vems ”felet” är. Känner du igen dig i några av dessa möjliga effekter och symptom? © Konsultbolag1 Fem positiva effekter av kvalitetssäkring • • • • • SNABBARE OCH SÄKRARE INTÄKTER Organisationer som arbetar på rätt sätt med kravhantering och test har kortare ”time to market”, reagerar snabbare inför ändrade marknadskrav och jobbar dessutom mer produktivt med hela livscykeln för sina produkter och system – det bidrar positivt till verksamhetens lönsamhet och konkurrenskraft. PROAKTIV ORGANISATION Genomarbetade och tydliga roller och processer skapar en samsyn som främjar hela organisationen och ökar förtroendet såväl internt som externt. Det ger en verksamhet som agerar mer proaktivt – istället för reaktivt. TIDS- OCH KOSTNADSKONTROLL Rutiner och återanvändning tillsammans med kunskap gör att verksamheten håller både budget och tidsplanering – i projekt och i förvaltning. Dessutom har organisationen ett längre och bredare perspektiv, bortom kommande lanseringar, där kostnad och funktion över hela livscykeln finns med i alla beslut. RISKKONTROLL Med korrekta beslutsunderlag är verksamheten medveten i sitt risktagande och kan därmed agera snabbare och tydligare. Det i sin tur bidrar till tryggare beslutsfattare och nöjdare användare samt system och produkter med önskad kvalitet. Varumärket stärks – både internt och externt. EFFEKTIVA LEVERANTÖRSRELATIONER Tydliga ansvarsområden och definierade överlämningspunkter gör att den egna organisationen kan fokusera på sin kärnverksamhet. Det möjliggör framgångsrika inköp av tjänster – från avgränsade konsulttjänster till kompletta offshoresatsningar. • Vad är test? • Varför är det viktigt att testa? © Konsultbolag1 “Testning är en process för att utvärdera en produkt. Vi lär om oss produkten genom att utforska och experimentera, vilket innefattar att: ifrågasätta, studera, modellera, observera, kontrollera, dra slutsatser, etc.” – James Bach 2015 Accepterade sanningar angående test: •Man kan inte testa allting •Det är billigare att fixa fel tidigt i processen © Konsultbolag1 V-modellen • Illustrerar krav- och testnivåer • Beskriver hur test hänger ihop med utveckling och kravhantering • Beskriver – Vad som ska göras = testnivåerna – När det ska göras = följ pilarna – Detaljeringsgrad = uppifrån ned V-modellen Verksamhetskrav Acceptanstest Systemkrav Systemtest Integrationstest Design Kodning och komponenttest Kravhantering och testplanering sker längs V-modellens vänstra sida. Testgenomförande sker längs den högra sidan. Det viktiga är att testarbetet ska pågå under hela utvecklingens livscykel och att testplaneringen sker så tidigt som möjligt © Konsultbolag1 Testnivåer och ansvarsfördelning Varför Beställare Verksamhetskrav Acceptanstest Vad Leverantör Leverantör Systemkrav Hur Systemtest Integrationstest Integrationstest Design Design Kodning och komponenttest Testkvadrant Stödjer utvecklarteamet Kolla efter väntat resultat Komponenttester Integrationstester Har vi byggt produkten rätt? © Konsultbolag1 Är det användarvänligt? Kan vi ha sönder produkten? Icke funktionella tester Prestanda, Last tester, Säkerhetstester m.m. Kvalitetsattribut - Responstid, Last tester etc. Verktyg & Teknologiriktat Utmana produkten Har vi byggt rätt produkt? Verktyg Manuell Användartester (UX) Användbarhetstester Test idéer Alfa/Beta tester ”Utforskande” tester Acceptanstester Funktionella tester Regressionstester Systemtester Checklistor Automatiserad Utforska det som är okänt, icke specificerat & oväntat Verksamhetsriktat Manuell & Automatiserad Acceptanstester • Formell testning med inriktning på användarbehov, användarkrav och användarens verksamhet. Avsikten är att bedöma om ett system uppfyller acceptanskriterier och för att ge användare, kunder och annan auktoriserad person eller organisation möjlighet att acceptera systemet. • Utförs av kunden/beställaren av systemet • Acceptanstest kan genomföras på ett flertal olika sätt t.ex. genom att Kunden/beställaren själv (alt. uppdrar åt annan) producerar testfall och genomför acceptanstesterna assisterad av leverantören. Ta del av testprotokoll, testrapport mm från de tester som genomförts i funktions-, system-, och integrationstest. Kunden har representant närvarande vid genomförande av systemtesterna och/eller integrationstesterna. Hur svårt kan det vara? För att lyckas i arbetet med acceptans av ett system, både i form av acceptanstestare och som formell ”godkännare” av det som levereras, krävs det att du måste ha god kännedom om det som skapats… Så fungerar det inte alltid. Acceptanstester utförs oftast av personer från verksamhets sidan som inte behöver ha särskilt stor systemkunskap. Utvecklingsarbetet å sin sida utförs av folk på IT-sidan som inte nödvändigtvis har någon djupare verksamhetskunskap. Vi saknar länken mellan systemförståelse (hur) och verksamhetsförståelse (vad) för olika kompetenser. © Konsultbolag1 Arbetet bedrivs sekventiellt. En formell beställning lämnas över och förväntas fixas av utvecklings sidan, även om det sällan är klart vad som egentligen behövs Brist på tid Brist på pengar Brist på resurser Hur gör vi då? Vilka aktiviteter kan generellt förbättra arbetssättet i projekt och förvaltning men går även att applicera på individnivå. • Kommunikation och tydlighet! Vet vi syftet och målen med projektet, vem som ansvarar för vad och dessutom vågar tänka lite nytt när det gäller arbetsuppgifter och hur vi jobbar tillsammans så har vi alla möjligheter att lyckas med målet. © Konsultbolag1 7 tips för ett lyckat acceptanstest 1. Skaffa en bra begreppsgrund att stå på • Verksamhetssidan kan sin verksamhet, utvecklare kan utveckling. Men det är två olika språk med olika begrepp och bäddat för missförstånd. – Jobba med begreppsmodellering, informationsmodellering och ordlistor specifikt för detta projekt. • Var tydlig med syftet med projektet. – Ta fram en projektvision • Vad är målet med projektet? • Varför är projektet nödvändigt? • Vem kommer att få nytta av det, och hur? © Konsultbolag1 2. Etablera tydliga roller Ofta är många olika roller inblandade i projektet men det är ändå inte säkert att ansvarsfördelningen är tydlig. En person kan HA ansvaret för ett visst område men en annan TAR ansvaret. Detta bäddar för otydlighet. • Se till att ha rätt person på rätt position och beslutsnivå så kommer färre saker ramla mellan stolar och missförstånd kan undvikas. • Lista aktuella roller och ansvarsområden i en projektstrategi eller projektplan. • Inga vattentäta skott mellan olika roller eller nivåer, t ex mellan beställare och leverantör. Transparens är en framgångsfaktor. 3. Ut på fältet • Det är inte alltid ”bara att fixa till” • Det är mycket lättare att förstå någons situation om man själv upplevt den, eller hur? • Byt sida! – Bjud in. Hälsa på. Hjälp till tidigt. Prya på ”andra sidan”. Sätt er in i hur de arbetar på verksamhetssidan/utvecklarsidan. Det kommer öka din förståelse och göra ditt arbete lättare i längden. • Låt acceptanstestare delta på tidigare testnivåer. © Konsultbolag1 4. Arbeta agilt • Arbeta i korta iterationer och ge alla möjlighet att vara delaktiga på samma villkor. Dagliga möten och täta avstämningar ger möjlighet till en flexibel planering och prioritering utifrån behov istället för prognos. Inom agil utveckling uppmuntras muntlig kommunikation, som i de allra flesta fall är överlägsen skriftlig när det gäller att komma fram till vad som ska göras, lösa ett specifikt problem och bestämma hur testerna ska genomföras. • Spika inte planeringen för längre period än några veckor. Då kan kraven utvecklas med hjälp av feedback från användare och acceptanstestare. • Ha korta dagliga avstämningar, både rörande planering och aktuella frågor. • Glöm inte att dokumentera resultatet! 5. Jobba med granskning och prototyper Prototyper ger en uppfattning om hur det skulle kunna se ut och hur det skulle kunna fungera. Utvecklarna får bättre förståelse och slipper göra onödigt arbete. Att granska krav, prototyper, testfall och designspecifikationer leder i tio fall av tio till högre kvalitet i det som granskas. Olika roller behöver delta för att bilden ska bli komplett. • Jobba ”hands on” med prototyper, skisser, mallar. Det ger bekräftelse att vi bygger rätt lösning och att vi bygger den på rätt sätt. Som bonus kan vi hitta saknade krav, motstridiga krav och krav som inte är testbara, m.m. • Låt testarna granska kraven. © Konsultbolag1 6. Gör användartester Hur noga vi än tänkt till, är det först när vi frågar riktiga användare som vi får bekräftat hur systemet faktiskt kommer att användas • Låt användare och acceptantestare klämma och känna på produkten i så tidigt skede som möjligt. • Använd den feedback som kommer in för att utveckla en ännu bättre produkt. 7. Underskatta inte det sociala • Jobb är viktigt men glöm inte att bara ha kul och umgås ibland. Det är ett bra sätt att stärka sammanhållningen i gruppen. • Ha en kick-off när projektet drar igång och en ännu roligare kick-out när det avslutas. Fira era framgångar! • Många bra tankar och idéer har uppstått på kafferasten. Kör en after work emellanåt eller en lunch eller fika, men gör det tillsammans! © Konsultbolag1 7 tips för ett lyckat acceptanstest 1. 2. 3. 4. 5. 6. 7. Skaffa en bra begreppsgrund att stå på Etablera tydliga roller Ut på fältet Arbeta agilt Jobba med granskning och prototyper Gör användartester Underskatta inte det sociala Summering • Vilka krav är rimliga att ställa på leverantörens tester? • Vad bör kommunen själv testa? • Hur genomförs dessa tester på bästa sätt? © Konsultbolag1 TACK! [email protected] © Konsultbolag1