De fleste kjenner Tomras pantemaskiner, som er godt utbredt i store deler av verden.



Like dokumenter
Mellom barken og veden Smidig testing i krevende terreng TTC 2015

Testplan (Software Test Plan)

GJENNOMGANG UKESOPPGAVER 9 TESTING

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Grunnleggende testteori

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester.

ISTQB Foundation Level Prøveeksamen

Kravhåndtering. INF1050: Gjennomgang, uke 03

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

Gjelder fra: Godkjent av: Fylkesrådet

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Eli Toftøy-Andersen og Jon Gunnar. brukertesting

OBS! Man kan skrive på norsk!

Kontrakter og test i smidige prosjekter. Fagmøte Dataforeningen i Trondheim 12.Mars 2012

K O N S U L E N T - I D : C U R R I C U L U M V I T A E

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Testbilag til IT kontrakter

NIVÅ FORTREFFELIG KOMPETENT UNDERVEIS PÅ BEGYNNER- STADIET KRITERIER. Bruker til sammen minst 4 ulike uttrykk for å hevde egne meninger

Grunnleggende testteori. Etter Hans Schaefer

Livsløpstesting av IT-systemer

A tool for collaborating to success in a development project Experience with Visual Studio 2010 and Test Manager at Lånekasse

Løsningsforslag: Oblig 1. INF1050: Gjennomgang, uke 12

Enkle generiske klasser i Java

SUBTRAKSJON FRA A TIL Å

Grunnleggende testteori

Oppgave 1 Multiple Choice

Verdien av god leverandørtesting i konstruksjonsfasen i smidige prosjekter

Modernisering av IKT i NAV

Systemutviklingen er ferdig når et system er operativt. Med operativt menes når systemet blir brukt av brukerne på et faktisk arbeidssted.

Vedlegg Brukertester INNHOLDFORTEGNELSE

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Ansvarlig: Faglig ansvarlig for innhold og revisjon, Testseksjonen TestiT, Avd. for Tjenesteproduksjon HN IKT

BommBang - Boomdans veiledning. BoomBang BoomDans. Forarbeid. Trinnene illustrerer hvordan en komposisjonsprosess kan arte seg i forhold til rytme.

Norsk Arkivråds seminar - Deponering. Pia Bratlie og Bjørn Olav Nyberg

SALG. Hvorfor skal vi selge? For å sikre at. Hva er salg? Salg er å få. På samme måte

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Etatene/sentrene står fritt til å bruke egne kontroll-/konsekvensområder i tillegg.

Prosjektledelse - fra innsiden

Motivasjon og Målsetting Veilederkompendium

Evaluering av IT-systemer Introduksjon. Monica Kristiansen

Prosjekteierrollen, krav og forventninger. Implementering av pensjonsreformen i Statens Pensjonskasse PERFORM

Krav som bør stilles til leverandørens verifikasjon og test

Referat fra Temakveld om lobbyvirksomhet Innleder: Håvard B. øvregård, leiar for Noregs Mållag

Velkommen til minikurs om selvfølelse

Testdokumentasjon. Testdokumentasjon Side 1

Tilvenning i Blåveiskroken barnehage.

Lykke til! Eksamen i fag SIF8018 Systemutvikling. 20 mai, 2003 kl Fakultet for fysikk, informatikk og matematikk

Teststrategi! Teststrategi! Kom og kjøp!

En filosofisk kjærlighetshistorie 5: Hva nå? Kjærlighet i evolusjonens tid

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren Pillbox Punchline

Skoletorget.no Fadervår KRL Side 1 av 5

Kostnadseffektivt eller bortkastet tid? Øyvind Woll Seniorkonsulent, Vivento AS

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Testing tidlig i livssyklusen smidige prosjekter. Arne Erik Hurum Helsedirektoratet Bjørn Andersen - Steria

Erfaring med funksjonell testing i en integrert ALM prosess

Why Desperate Houswives make Excellent Test Managers Testprosjektet som suksessfaktor i et hvert prosjekt

Hva er en innovasjon? Introduksjonsforelesning TIØ4258. Hvorfor er innovasjoner viktige? Hva er en innovasjon (II) Forslag?

Stein Haugen Sjefsingeniør, Safetec Nordic Professor II, NTNU

Organisasjonsutvikling som kulturarbeid

Smidig metodikk, erfaringer fra NAV Fagportal

2018 Panikkangst.org Alle Rettigheter Forbeholdt SNARVEIEN UT AV FRYKT (revisjon 1)

Løsningsforslag Sluttprøve 2015

Aamodt Kompetanse. Motstand del 2. Hvordan forholde seg til motstand.

Fra idé til marked Hvorfor elektronikk handler om mer enn kretskort

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

Videreutvikling av ideer- 6 øvelser Anbefales brukt i fase 2, 3 og 4. SCENARIOSPILL

1. Dette sitter du igjen med etter et komplett program hos Talk

Prisbelønte «esøknad Bostøtte» & Endrede tilnærming «Fra scrum til Kanban»

Smidig innhold Hvordan smidige metoder hjelper oss å lage kvalitetsinnhold. Ove Dalen

Prosjektledelse,,prosjektplanlegging,, teamarbeid

Test og kvalitet To gode naboer. Børge Brynlund

Jon Hammeren Nilsson, Anders Emil Rønning, Lars Grini og Erling Fjelstad

Prosjektledelse - fra innsiden av et utviklingsprosjekt. Presentasjon hos UiO Ida Lau Borch, prosjektleder i Bouvet ASA

Fra data til innsikt. Om prosjektet

NFLB vinterkonferanse København Risikoforståelse ved Stig Larsen Rig Manager Odfjell Drilling. RISIKOIDENTIFISERING

IT Service Management

Overordnet Testplan. MUSIT Ny IT-arkitektur, Pilot og Hovedprosjekt. Page 1 of 11

Høgskolen i Oslo og Akershus

Det perfekte møte av!

Tall og algebra Matematikk Side 1 av 6

Testrapport Prosjekt nr Det Norske Veritas

Jobbsøking. Tema i Grønn gruppe - januar 2007 JOBBSØKING... 2

Testrapport for Sir Jerky Leap

Together. Free your energies Moden og modig! Ansvarsfull og fleksibel!

Hvorfor skriver jenter ofte penere enn gutter?

3.4 RISIKOSTYRING. Hva er risiko? Risikostyring Metoder for risikoanalyse

Cross the Tech Bridge. Anette Valaker

Oversikt over bevis at det finnes uendelig mange primtall med bestemte egenskaper

1. Hvilke type krav angår sikkerhet og pålitelighet?

Overvåkingsløsning hos NAV. Med tjenester i fokus

Hvorfor kiler det ikke når vi kiler oss selv?

11 Planlegging og dokumentasjon

Kap 11 Planlegging og dokumentasjon s 310

Software Development Plan. Software Development Plan. Forum / Nettverkssamfunn Team 2

IT I PRAKSIS!!!!! IT i praksis 20XX

Kort om evaluering og testing av It-systemer. Hvordan vurdere, verdsette, velge og teste?

UKE 15 Prosjektledelse, planlegging og teamarbeid. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

ELIN-metoden. Elektronisk informasjonsutveksling

Neste generasjon ERP-prosjekter

Transkript:

Risikoanalyse i ukjent terreng om farene ved innovasjon og test Av Audun Urke, Sogeti Norge AS Innlegget tar for seg risiko og test i prosjekter preget av innovasjon. Innovasjon er som regel ikke farlig, men der er farer som kan gjøre at vi ikke når opp til forventningene til produktkvaliteten vi er med på å utvikle. Hvordan kan vi håndtere en slik risiko som testere? Oppfinnelsen av hjulet var en av de viktige innovasjonene vi har hatt hittil i historien, og i dette innlegget skal vi bruke den for å illustrere risiko ved innovasjon generelt. Flere tips er dessuten baserte på erfaringer fra test i et utviklingsprosjekt på Tomra. T-9: siste generasjon pantemaskin De fleste kjenner Tomras pantemaskiner, som er godt utbredt i store deler av verden. Tomra har laget en ny generasjon panteautomat som fornyer og forbedrer teknologien sin. På innsiden av automatene til Tomra finner vi blant annet sensorbasert høyteknologi og kompliserte embedded systemer. Målet for prosjektet som utviklet T9 var en maskin som er raskere, renere og som har mulighet for å håndtere andre emballasjetyper som ikke kun er sirkulære. Den store innovasjonen var verdens første 360 gjenkjenningssystem.

En flaske skal raskt analyseres uavhengig hvordan den legges inn i maskinen, og det betyr bearbeiding av et stort antall former, strekkoder, pantehastigheter, sikkerhetsmerker for å nevne noe. I tillegg kom mye nytt innen hardware, operativsystem, måten softwarene i maskinen samarbeider og kommuniserer på, og mye mer. Testteamet for T9 prosjektet besto av en testleder og en fast tester, hvor det ble hentet inn flere spesialiserte testressurser ved behov. Vi skal utover se litt mer på hvordan testingen tok hensyn til risiko. Men først er det greit å ta for seg hva vi mener med embedded testing. Embedded testing Hva er et embedded system? Det er lettere å peke på de enn å fortelle hvilke trekk som forener dem. Det er alt fra mobiltelefoner til biler. Det de har til felles er at de interagerer med den relle fysiske verden, for eksempel gjennom sensorer, og kontrollerer en spesifikk hardware. Siden det er veldig forskjellig fra å teste en mobiltelefon fra bilbremser, kan vi ikke peke på en mal eller en enkelt best practice som kan gjelde for samtlige typer embedded testing. Men uansett hvilken testtilnærmelse vi velger vil vi måtte ta hensyn til risiko. Innovasjon av forretningshensyn Hva er innovasjon? Det er vel en eller annen form for fornyelse? De fleste må fornye seg i dag av forretningshensyn: Vi vil kjappere ut til kunden med produktet og redusere Time2Market. Vi vil

redusere kostnadene og sikre oss Return On Investment. Vi må utvikle nye produkter og bli mer tilgjengelige på flere plattformer og kanaler. Test av trendene Vår oppgave er å kunne teste disse nye produktene, og det er dette som er hovedfokuset i dette innlegget. Bare det å teste kan jo sies å være med på å redusere risiko. Utfordringene fremover er jo mange: Internet of Things, Skyen, Big Data, Bring Your On Device. Felles for mange av disse er at de setter store krav til sikkerhet og personvern. Innovere oss som testere Og vi må heller ikke glemme å selv innovere oss, vi testerne, for å kunne utnytte ny teknologi og kunnskap for å kunne teste riktig, effektivt, bredere osv. For å eliminere risiko har vi blant annet tatt innover oss smidige utviklingmetoder. Automatiseringsverktøy har gjort det mulig å kjøre flere og bredere tester. Vi har forsøkt å få test inn så tidlig som mulig i prosjektene og ved reviews av kravspesifikasjoner og annen dokumentasjon. Disruption Innovasjonen og fornyelsen kan komme som en plutselig og banebrytende nyhet, som for eksempel dannelsen av Universet. Og innføringen av en ny idè, og dermed en radikal endring, er ofte det man legger i begrepet «disruption». Mange tenker kanskje på IPhonen som et eksempel. Denne typen innovasjon kan gi utfordringer siden vi ikke helt vet hva det er best å sammenlikne med. Sustaining innovation Innovasjonen kan også komme sakte med sikkert, som evolusjonen man tilpasser seg nye krav og muligheter fra en verden som stadig er i endring. «Sustaining innovation» kalles det ofte. Vi kan kanskje da støtte oss på tidligere testmetodikk og resultater, men det må ikke bli noen hvilepute. Produktrisiko: vi når ikke forventningene til kvalitet Der er flere definisjoner på risiko. Det er vanlig å se risiko som noe negativt, som potensiale for at noe uønsket skal inntreffe. La oss her si at produktrisiko er faren for at leveransen og resultatet ikke når opp til kvaliteten vi forventer det skal ha. Hva er sannsynligheten for at en feil kommer til syne, og hva er konsekvensene hvis den preger produktet? Hvordan kan vi finne sannsynligheten for feil når vi mangler informasjon om hvilke risiko som kan oppstå, hvor de kan oppstå og hvordan og hvorfor? Og hvordan kan vi vite konsekvensene av dem når vi egentlig ikke helt vet hva vi skal teste, i hvert fall ikke i tidlige stadier? Her kan feil som slipper gjennom fra arbeidet med produktrisikoen skape forsinkelser og budsjettoverskridelser som igjen kan utgjøre prosjektrisko. Kort sagt, vi har en utfordring med at vi mangler informasjon. Metoder og verktøy for risikostyring

For å kunne demme opp mot det å mangle informasjon, må vi kunne metoder og verktøy for risikostyring. Ulike metoder og verktøy har ulike egenskaper og muligheter, og vi og hjelpemidlene må jobbe mot det samme målet. Hvis ikke, som vi ser på illustrasjonen, kan det bli vanskelig. Det er vanlig å se metoder for risikostyring ut fra noen faser eller trinn: identifisere trusler evaluere og vurdere truslene bestemme risikoen, altså sannsynlighet og konsekvens finne måter å redusere risikoene prioritere risikoreduksjonen ut fra en strategi man utvikler Risikostyring og informasjon Det er i de to første fasene at vi i størst grad står overfor utfordringer som skyldes manglende informasjon. Det er jo her vi plukker ut faremomenter vi skal bruke tid på å teste fremover. Vi må identifisere det som kan bli en bekymring, vite hva vi skal teste, hvilke egenskaper vi skal teste for. Vi må også analysere de risikoene vi finner for å si mer om hvor grundig vi skal teste dette. Det vi ikke vet, det har vi ikke godt av. Hvordan identifisere og analysere risiko ved innovasjon? Så hva gjør vi? Vel, vi vet fra teststatistikk generelt at utviklingsfeil pleier å være hyppige der funksjonaliteten er kompleks, helt ny eller at et tidligere produkt er tilpasset på en grunnleggende måte. Det vil også ha sammenheng med tiden vi har til disposisjon og hvilke teknikker og verktøy som benyttes. Var der ofte feil i et sammenliknbart tidligere prosjekt, har disse ofte en tendens til å gjenta seg. Jo flere grensesnitt, jo større mulighet for integrasjonsfeil. Og en del prosjektrisikoer kan også nevnes, som kommunikasjon og teamsammensetting. Kort sagt: endringer kan bety feil. En slik statistisk kunnskap må vedlikeholdes og kvalitetssikres, og vil nok endre seg avhengig av typer produkt, utviklingsmetodikk og tilgjengelig teknologi. Den er et fint grunnlag for å sette opp mulige risiko items tidlig i et prosjekt. Kanskje også som grunnlag for å velge videre teknikk for risikoidentifisering og analyse, og hvor formell denne skal være. Sjekklister for å finne risiko items

Vi kan bruke den statistiske kunnskapen som over, eller vi kan ta utgangspunkt i funksjonelle og ikkefunksjonelle egenskaper. Utfordringen er å forestille seg enhver situasjon som kan innebære en risiko. Hva kan gå galt hvis produktet ikke går over i riktig ny tilstand? Er det en sjanse for at data går tapt eller korrumperes? Vi har kanskje vært inne på flere av disse hensynene tidligere i prosjektfasen, for eksempel under kravspesifiseringen, under designen og andre forberedende faser. Men vi sitter kanskje likevel igjen med frykten for at vi har glemt noe, oversett noe: hva er det vi ikke har tenkt på? Uansett kan vi gå videre med sjekklistene, de krav satt fra prosjektledelse og interessenter, og det testgrunnlaget vi har å basere oss på. Men der er også teknikker som kan hjelpe oss. Teknikker Det finnes mange teknikker for risikoidentifisering og analyse. De går fra å være uformelle sjekklister, som vi nettopp har sett eksempel på og workshops med interessenter - til mer formelle metoder som Hazard Analysis og Failure Mode and Effect Analysis. Teknikkene brukes ofte basert på de krav, den design og den implementasjon som er ferdig på tidspunktet for risikoanalysen. Og på den måten vil teknikker og bruken av dem gjenspeile test basisen, altså den informasjonen som definerer den systematferden vi krever. Det kan være lurt å tenke gjennom hvor mye test basis legger føringer for risikostyringen. For prosjekter med mye innovasjon, kan det være utfordringer ved å bruke disse teknikkene hvis vi mangler nok eller riktige data. Product Risk Analysis Hvilken teknikk vi velger avhenger av hvor mye vi ønsker å kontrollere risikoen og hvor mye ressurser vi ønsker å bruke på dem. I Sogeti bruker vi Product Risk Analysis, som er en egenutviklet metode for

risikoanalyse som hjelper oss frem til slike vurderinger. Ønsket er å kunne prioritere det som har størst risiko. Etter å ha identifisert risiko items ut fra test goals og evaluert dem, er det et eget steg som vektlegger å begrunne risikoklassen som vi kommer frem til. Her er det viktig med en konsensus i prosjektet og med interessenter å komme frem til en liste. Denne listen blir i neste omgang utgangspunktet for å kunne prioritere i testprosessen. Vi forsøker å kontrollere for at vi mangler informasjon om innovasjonen med å inkludere flest mulige interessenter i vurderingen av risikoklasse og prioriteringen. Risikoanalysens betydning: testplan og omfang I risikobasert testing vil naturligvis risikoanalysen få en stor rolle for hele testprosessen. Risikoanalysen blir ofte utgangspunktet for master test plan, og dermed også for hvordan de enkelte testnivåene, innrettes. Den vil legge føringer også for testomfang og testteknikker. Hvordan vi ser risikoen vil altså påvirke hele arbeidsprosessen videre. Vi kan gi et eksempel på hvordan risiko kan påvirke testnivåer. På Tomra er testobjektene er komplekse, med mange mindre subsystemer som skal integreres. I tillegg til de mer vanlige testnivåene som unit testing og systemtesting, må man også ta høyde for HW/SW/FW integrasjonstesting: for eksempel - avlesninger av flaskeinformasjon brukes til både sortering og dataadministrasjon. Markedstester gir verdifull informasjon om produktet i ulike kontekster hvor der er flere og mer spesifikke krav til hvordan maskinen skal se ut, yte og opptre. Det er gjennom risikoanalysen vi finner testomfanget og testdekningen som vi ønsker, det er den som gir oss risikoklasser i teststrategien vår. Vi har da nok allerede en ide om hvilke egenskaper av produktkvaliteten vi kommer til å vektlegge i testingen. I embedded testing finner vi ofte ikkefunksjonelle egenskaper som må vektlegges like mye som de funksjonelle. Pantemaskinene og noen av sorteringsløsningene utviklet av Tomra testes i klimarom for å se om temperaturer og fuktighet påvirker funksjonaliteten. Siden maskinen fysisk vil stå på steder som utsetter den for lys, temperatur og muligens støt må man sjekke at hardware og software tåler slike påkjenninger. Stadig utvikling Ideelt bør risikoanalysen gjøres så tidlig som mulig, og bør jo være med i master test plan eller for eksempel i 0-sprinten hvis man bruker SCRUM. Ved innovasjon kan det dukke opp risiko underveis, av grunner som vi allerede har nevnt, som må håndteres. Vi må med andre ord holde risikoanalysen vår oppdatert. Det er viktig å huske at denne risikoanalysen må tilpasses funn, endringer og nye krav som kommer underveis i prosjektet.

Dette har som kjent ikke bare betydning for produktkvalitet, men også store konsekvenser for estimering og prosjektstyring altså prosjektrisiko. I prosjektet på Tomra ble prioriteringen av testingen gjort fortløpende ut fra en vurdering av ny funksjonalitet, viktigheten av eksisterende feil og behovet for regresjonstesting. Ved et par anledninger på Tomra ble det umulig å kjøre tester som tidligere var prioriterte ut fra risiko, blant annet fordi hardware ikke var klar til å testes på. Kjenn ditt testobjekt Testobjektet og testmiljøet må få en stor rolle siden det er stadig i endring. Det er her historikken til innovasjonen og produktet ligger og hjelper oss til å forstå hvilken tilstand testobjektet er i til enhver tid. Vi må vite hvilken tilstand testobjektet er i og hva det vil bety å teste på det. Dette handler mye om forventninger. Testeren må tørre å tenke nytt og være fleksibel for å ta innover seg endringene. Lag en logg over utviklingen. Alt dette er viktig skal vi gjenskape et testresultat, og ikke minst til at vi kan stole på at testresultatet er riktig.

Bruk av historikk for å finne nye risiki La oss se mer på oppfinnelsen av hjulet. Vi kan late som om vi har tilgang til informasjonen som prosjektet som utviklet hjulet hadde tilgang på. Historikk kan bli en viktig kilde. Selv om innovasjonen kommer som lyn fra klar himmel, kan det hende at noen vet mye om dette lynet allerede om enn fra en indirekte vinkel. Akkurat som man før det runde hjulet hadde firkantede hjul. En kilde til risikoidentifisering og analyse kan være å se på hvor feilene var i tidligere produkter og kanskje er det skrevet noe om andres utfordringer i utviklingen av sine? Bruk tilgjengelig historikk. I mange bransjer må man også huske at man fortsatt selger firkantede hjul, slik at man må vite hvilke virkninger det nye systemet kan få for det gamle. Kan sykkelrammene tåle både firkantede og runde hjul? Vi kan gi noen eksempler på hvordan det nye produktet må tilpasse seg, og kanskje krever tilpasninger på andre systemer. På Tomra skulle den nye T9-maskinen kunne benytte seg av etablert software og design for brukerkommunikasjon. Den skulle kunne integreres med tidligere sorterings- og oppbevaringsløsninger, såkalte bakrom, som opprinnelig var utviklet ut fra andre tidligere modeller. Likeså skulle T9 også støtte en rekke SW applikasjoner og backofficesystemer, blant annet for dataadministrasjon, som allerede var etablerte ute hos kundene. Test av den nye løsningen

Underveis har vi testet mye på tilgjengelig funksjonalitet og en del ikke-funksjonelle egenskaper, og dermed testet mye av innovasjonen. Vi har da løpende prioritert testingen ut fra krav som dukket opp underveis i tillegg til de satt i system test planen. Så vi har testet deler av det nye gjennom nye tester. Men kan vi være sikre på at vi har testet alt som vi skulle? For å svare på det, kan vi kanskje se tilbake. Kan vi teste dette nye vi har laget med de tidligere testene? Regresjonstestingen fra tidligere prosjekter kan gi nyttig informasjon men dekker den alt? Vi hadde en test for å sykle opp en trapp med firkantede hjul, vil denne testen være aktuell for en sykkel med runde hjul? Både for tester utviklet ut fra tidligere tester eller helt nye tester, er det viktig med fleksibilitet og omstillingsemne i testteamet, og god kommunikasjon i prosjektet. Så kort sagt, hvordan skal vi testere håndtere risiko ved innovasjon? Endringer kan bety at det er kommet inn en feil Kjenn testobjektet: Lag en logg Bruk all tilgjengelig historikk Test både nye og gamle egenskaper Test må inn tidlig. Vi skal ta de bugsene tidlig. Eller for å omskrive et kjent engelsk ordtak: the early worm is caught by the bird.