• No results found

A.5 Diskussion

C.6.2 Metod

Metoden som har anv¨ants f¨or denna studie av riskhantering ¨ar inte helt konkret. Det finns s˚a m˚anga olika s¨att att hantera risker och att leta fram en som ¨ar b¨attre ¨an en annan ¨ar sv˚art. D¨arf¨or blir det sv˚art om inte om¨ojligt att f˚a fram ett b¨asta s¨att, det g˚ar d¨aremot att f˚a fram ett bra s¨att.

Metoden som anv¨andes f¨or att se om TRM skulle vara en bra l¨osning i detta projekt tycker jag har varit ganska legitim. Att ta reda p˚a kraven som kr¨avs f¨or att implementera TRM och sedan j¨amf¨ora med de erfarenheter och ˚asikter vi har haft s˚a f˚ar man ett tydligt svar. Det skulle givetvis varit b¨attre att faktiskt implementera TRM i projektet eftersom d˚a skulle det g˚a att avg¨ora sj¨alv om det fungerade eller inte.

K¨allorna jag har anv¨ant verkar alla legitima. K¨allorna som Higuera har medverkat i har citerats m˚anga g˚anger, vilket tyder p˚a att det inte bara ¨ar jag som tycker dessa ¨ar bra. Att jag anv¨ant tv˚a k¨allor fr˚an olika ˚ar som ¨ar skrivna av samma person ¨ar d¨aremot lite mindre bra. Det hade varit mer intressat om jag kunde f˚a flera k¨allor som visade p˚a samma sak. TRM verkar dock vara en metod som forskarna p˚a SEI har kommit p˚a sj¨alva s˚a att hitta yterliggare k¨allor f¨or den metoden blir sv˚art.

C.7

Slutsatser

Att f¨orbereda sig p˚a oplanerade risker kan vara sv˚art, inte n¨odv¨andigtvis f¨or att det ¨ar s˚a sv˚art att identifiera riskerna och hitta en m¨ojlig l¨osning n¨ar den v¨al intr¨affar. Problemet ¨ar att det blir hitta balansen mellan av hur mycket tid och energi du spenderar och hur mycket riskanalysen ger. Spenderar du v¨aldigt mycket tid p˚a att g¨ora en riskanalys och kontinuerligt kollar s˚a att den fortfarande st¨ammer kommer du spendera tid du skulle kunna ha anv¨ant till n˚agot annat. Denna tid kanske du skulle spara in om du st¨oter p˚a en h¨andelse som inte fanns med i din analys. Svaret p˚a fr˚agan blir d¨armed n˚agot vagt. Det finns inte ett b¨asta s¨att att hantera risker, s˚a att f˚a ett riktigt bra svar p˚a vilken metod skulle var b¨ast ¨ar om¨ojligt. Det som g˚ar s¨aga ¨ar att en bra riskhantering ¨ar betydligt jobbigare att ta fram ¨an den vi har haft i detta projekt. Det ¨ar mycket mer tidskr¨avande men i ett projekt som skulle f¨orlora v¨aldigt mycket p˚a medlemmar som f¨orsvinner eller andra st¨orre h¨andelser s˚a skulle det sannolikt vara v¨aldigt givande.

Hade jag genomf¨ort ett liknande projekt i framtiden s˚a hade jag velat ha en mer v¨alutvecklad riskanalys, fler fall med tydligare handlingar ifall risken intr¨affar. Skulle en risk intr¨affa skulle jag g˚a igenom riskanalysen ytterligare en g˚ang och se om n˚agra nya risker uppst˚att eller om det var n˚agon risk som p˚a v¨ag att intr¨affa. Jag hade dessutom sett till fr˚an b¨orjan att det fanns m¨oten varje vecka s˚a gruppen hade en bra kommunikation.

D. Hannes - Enhetstestning

D.1

Inledning

Under v˚aren 2015 genomf¨ordes projektet Detektor f¨or dricksvattenkvalitet vid Link¨opings univer- sitet. I detta projekt var jag testledare och det var i det sammanhanget jag blev nyfiken p˚a hur bra v˚ar testmetodik egentligen var.

D.1.1

Syfte

Syftet med den h¨ar utredningen ¨ar att unders¨oka hur v¨al v˚ar egen testmetodik fungerade i projektet Detektor f¨or dricksvattenkvalitet och hur vi hade kunnat f¨orb¨attra den.

D.1.2

Ordlista

Term Betydelse

Modul En modul ¨ar en st¨orre del av hela systemet, som syftar till att utf¨ora en eller flera deluppgifter.

Stub En bit kod som simulerar en st¨orre del av systemet i syfte att testa en mindre utan att beh¨ova k¨ora systemet i sin helhet.

Driver En bit kod som stimulerar en specifik del av systemet att utf¨ora sina upp- gifter i syfte att testa en mindre del av systemet utan att beh¨ova k¨ora systemet i sin helhet.

PRU Integrerad realtidsprocessor i BeagleBone Black. Statement En rad kod som utf¨or en operation.

BeagleBone Black Enkortsdator.

D.1.3

Fr˚agest¨allning

• Hur anv¨ander man enhetstestning p˚a ett effektivt s¨att i samband med en agil utvecklings- metodik?

– Finns det en risk att man missar f¨or m˚anga kritiska testfall?

– B¨or man komplettera enhetstestning med ytterligare testmetodiker som regressionstest och utf¨orliga systemtest? Eller ¨ar detta f¨or dyrt i ett relativt litet projekt?

• Hur v¨al fungerade den testmetodik vi valde?

– Hade v˚ar testning kunnat utf¨oras p˚a ett b¨attre s¨att?

D.1.4

Avgr¨ansningar

Jag har begr¨ansat utredningen till att unders¨oka metoderna enhetstestning, modultestning, integ- rationstestning, regressionstestning och systemtestning. Jag har ocks˚a begr¨ansat utredningen till att bara handla om test av funktionalitet. Kvalitetsv¨arden s˚a som prestanda och anv¨andbarhet kommer inte tas i beaktning.

D.2

Bakgrund

Att anv¨anda agila utvecklingsmetoder s˚a som Scrum eller Kanban har blivit popul¨art. Samtidigt har s˚a kallad enhetstestning blivit vanligare, d¨ar man i huvudsak testar varje liten del individuellt med hj¨alp av stubs och drivers och sedan utg˚ar fr˚an att det fungerar n¨ar man s¨atter ihop det. Det ¨

ar praktiskt att anv¨anda dessa i kombination, d˚a det inneb¨ar att man tidigt f˚ar svar p˚a huruvida den kodsnutt man skrivit fungerar och kan g˚a vidare till n¨asta arbetsuppgift.

D.3

Teori

I det h¨ar avsnittet redog¨ors f¨or hur de metoder som unders¨oks fungerar.

D.3.1

Agil arbetsmetodik

En agil arbetsmetodik bygger kring id´en att ett projekt kan anpassas till nya m˚al och f¨oruts¨attningar under utf¨orandet. En av de mest v¨alk¨anda metoderna ¨ar Scrum (What is Scrum? An Agile Fram- ework for Completing Complex Projects - Scrum Alliance, u. ˚a.). Den karakt¨ariseras bland annat av att det h˚alls frekventa m¨oten d¨ar aktuella arbetsuppgifter f¨ordelas p˚a arbetsgruppen.

D.3.2

Enhetstest

Under utvecklingen av ett system vill man som utvecklare kunna verifiera att man ¨ar p˚a r¨att sp˚ar och att den kod man skriver g¨or det den ¨ar t¨ankt att g¨ora. Dessutom vill man fixa simpla buggar p˚a en g˚ang medans man ¨ar insatt i koden. Utvecklaren skriver d˚a enhetstest.

Dessa test ¨ar sm˚a, enkla och testar enskilda funktioner i den aktuella kodbasen. Enhetstest beh¨over inte testa alla m¨ojliga testfall, ¨aven om detta kan vara ¨onskv¨art.

D.3.3

Modultest

Modultest testar samma funktioner som enhetstest, p˚a ungef¨ar samma s¨att. De testar funktio- naliteten hos en enskild modul. Skillnaden mot enhetstest ¨ar att modultest designas och utf¨ors av en testare i syfte att verifiera att den kod utvecklaren har skrivit faktiskt fungerar som t¨ankt. De ¨ar med f¨ordel n˚agot mer ing˚aende ¨an enhetstest och utf¨ors fr¨amst d˚a modulen n¨armar sig f¨ardigst¨allande.