• No results found

För att lösa problemet med utgångspunkt från vår inhämtade bakgrund-skunskap enligt Bunges punkt 4 togs ett ramverk fram för de olika delprob-lemen som nämns i 3.4. Målet var att ramverket skulle innehålla de olika delar som identifierades som delproblem 3.6.1.

3.6.1 Ramverkets beståndsdelar

De delar som ansågs nödvändiga för ramverket, baserat på datainhämntnin-gen 3.5, var: En metod för att injicera fel, en metod för att upptäcka fel, ar-betsinsats, roller, typer av fel samt problemrapport. Hur de olika bestånds-delarna togs fram beskrivs mer ingående nedan.

3.6.2 Metod för Injicering

I de artiklar som undersöktes presenterades flera olika verktyg för att au-tomatisera felinjektioner i mjukvara, men ingen metod för hur man manuellt kan injicera fel. Därför skapade vi en injiceringsmetod baserat på informa-tion från litteraturstudiefasen vilket motsvarar punkt 5 i Bunges 3.3 med följande faser:

• Kravstudie

Injektionscykeln börjar med att studera målsystemets specifikationer.

Detta kan göras antingen genom att intervjua utvecklarna eller genom att läsa tillgänglig dokumentation.

Då specifikationerna avgör vad som är ett fel, är det av intresse att veta detta i egenskap av injicerare.

Denna fas utförs en gång.

• Undersöka källkoden

För att erhålla förståelse för hur målsystemet är implementerat

under-söks källkoden. Detta sker genom att gå igenom de olika skripten. För att se hur de olika skripten samverkar kan man titta efter vilka andra skript de importerar. Utvecklarens kommentarer kan också ge vägled-ning om vad en viss funktion gör. Koden granskas för att se att den lever upp till de sagda eller dokumenterade specifikationer.

Denna fas utförs en gång.

• Identifiera svaga punkter

När förståelse för hur målsystemet är uppbyggt erhållits, identifieras ett godtyckligt antal svaga punkter. Svaga punkter är de kodinstruk-tioner som med kodmutation kan resultera i att något eller några av de faults som presenteras i tabell 2.1 kan injiceras.

• Felinjektion

I denna fas injiceras utvalda faults genom kodmutation i de svaga punk-ter som identifierades i föregående fas. Med målsystemets specifika-tioner i åtanke väljs faults som resulterar i att målsystemet inte agerar korrekt vid exekvering.

• Exekvering

Målsystem exekveras för att bekräfta att injicerade faults har önskad effekt.

Tillvägagångssätt för injicering av fel, steg för steg beskrivs enligt följande flödesdiagram:

Figur 3.2: Injiceringsmetodens faser

3.6.3 Metod för upptäckt av fel

Vår metod för upptäckt av fel bygger på Mira Kajko Mattsons artiklar om problemhanteringsprocesser (se 2.4.1) och corrective maintenance testing (se 2.4.3). Vi delade upp metoden för upptäckt av fel i följande faser: Prob-lemanalysfas, förberedelsefas, exekveringsfas samt utvärderingsfas. Utöver faserna som är tagna från Kajko Mattssons artiklar kompletterades även up-ptäcktsmetoden med aktivitetslistan från corrective maintenance testing (se 2.4.3) som översattes och kan ses i 3.1.

• Problemanalysfasen

Testningscykeln börjar med att studera problemrapporten och speci-fikationen för den del som problemet rör. Utifrån problemrapporten

utförs tester för att bekräfta problemet. Detta görs likt Problemrapporterings-fasen i 2.4.1.

• Förberedelsefasen

Förberedelsefasen går ut på att skapa ett eller flera testfall för att testa en funktionalitet och jämföra det förväntade resultatet med det fak-tiska resultatet. Detta görs likt första punkten i corrective maintenance testing (se 2.4.3). Testfallen är utformade enligt:

– Input:

– Output:

• Exekveringsfasen

I denna fas körs mjukvaran baserat på varje testfall. Ett förslag på åt-gärder skapas. Detta som en kombination av problemanalysfas III och problemlösningsfasen i problemhanteringsprocesser (se 2.4.1)

• Utvärderingsfasen

Detta är den sista fasen där testningscykeln analyseras för att identi-fiera nya strategier att implementera i nästa iteration. Idén med tes-tutvärderingen är att ta bort onödiga steg i testningen för framtida iter-ationer. Detta sker genom att utvärdera förslag som Upptäckaren har

gett på förbättringar.

Tillvägagångssätt för upptäckt av fel beskrivs steg för steg enligt följande flödesdiagram:

Figur 3.3: Upptäcktmetodens faser

A-1 Bekräfta det inrapporterade problemet A-1.1 Undersök om problemet är unikt A-1.1.1 Identifiera och klassificera problemet

A-1.1.2 Undersök om problemet har fångats upp av organisationen med hjälp av information om problemets symptom

A-1.2 Om problemet är unikt:

A-1.2.1 Välj en lämplig version av produkten A-1.2.2 Skapa en lämplig testmiljö

A-1.2.3 Skapa lämpliga testfall A-1.2.4 Testa mjukvarusystemet

A-1.2.4.1 Testa systemet med hjälp av testfallen A-1.2.4.2 Dokumentera resultaten av testerna A-1.2.4.3 Modifiera testfallen om det behövs

A-1.2.4.4 Komplementera beskrivningen av problemet om det behövs A-1.2.4.4 Uppdatera organisationens problemhanteringssytem med

information om testfallen och hur problemet återskapas

A-1.3 Om problemet redan har fångats upp av organisationen:

A-1.3.1 Undersök om det redan finns tesfall för att återskapa problemet

A-1.3.2 Om det finns testfall anpassa dessa till den valda versionen av produkten A-1.3.3 Testa mjukvarusystemet

A-1.3.3.1 Testa mjukvarusystemet med testfallen A-1.3.3.2 Dokumentera resultaten av testerna A-1.3.3.3 Modifiera testfallen om det behövs

A-1.3.3.4 Komplementera beskrivningen av problemet om det behövs A-1.3.3.5 Uppdatera organisationens problemhanteringssytem

med information om testfallen och hur problemet återskapas

A-1.3.4 Om inga testfall existerar som kan användas, utför aktiviteter från A-1.2 A-2 Efter att testningen har lyckats:

A-2.1 Vidta lämpliga åtgärder

A-2.2 Sök efter befintliga lösningar om det finns A-2.3 Uppgradera problemrapporten och testfallen

till nästa avdelning i supportkedjan

Table 3.1: Aktivitetslista för upptäcktsmetoden

3.6.4 Arbetsinsats

Tiden för de olika stegen i ramverket mäts i minuter avrundat uppåt till närmsta femtal [9].

3.6.5 Roller

Det är möjligt att dela in upptäckt i flera roller likt Kajko Mattsons prob-lemhanteringsprocesser (se 2.4.1). Eftersom denna studien utfördes av två personer skapades två roller, en Injicerare för injicering av fel som också agerade problemrapportör och en Upptäckare.

3.6.6 Typer av fel

En lista med vanligt förekommande fel ingår i ramverket baserat på [15][16].

3.6.7 Problemrapport

Efter att ett fel har injicerats uppförs en problemrapport likt problemrappor-teringsfasen i Kajko Mattsons problemhanteringsprocesser (se 2.4.1). Denna problemrapport används sen i upptäcksmetoden.

Related documents