Test i en komplex värld – Johan Östman

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