Analysverktyg för kod och test - Lunds Tekniska Högskola
Analysverktyg för kod och test - Lunds Tekniska Högskola
Analysverktyg för kod och test - Lunds Tekniska Högskola
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Abstract<br />
Undertiden som man utvecklar programvara vill man på ett eller annat sätt kunna säga på<br />
ett så enkelt sätt som möjligt att det man gjort funkar. Detta brukar man många gånger göra<br />
med hjälp utav <strong>test</strong>er i olika former. För att underlätta <strong>test</strong>skrivandet <strong>och</strong> granskningen utav<br />
den <strong>kod</strong> som blivit implementerad så brukar man använda sig utav någon form av<br />
analysverktyg som kan presentera olika sorters data beroende på vad det är <strong>för</strong> sorts verktyg<br />
<strong>och</strong> vad det är användaren önskar sig få fram. Denna studie fokuserar på analysverktyg <strong>för</strong><br />
<strong>test</strong>fall <strong>och</strong> där<strong>för</strong> används ett specifikt program, EclEmma [3], som en del av en empirisk<br />
studie.<br />
1. Inledning<br />
I dagens samhälle finns det programvara inuti i princip allt elektroniskt som existerar.<br />
Samtidigt som andelen elektronik med programvara ökar så ökar även komplexiteten utav<br />
programvaran <strong>för</strong> dessa elektroniska apparater (tänk bara på hur mycket mobiltelefonerna<br />
har utvecklats under de senare åren). Detta innebär att det blir svårare <strong>och</strong> svårare att på ett<br />
enkelt sätt kunna säga att systemet fungerar som tänkt <strong>och</strong> det blir svårt att se om man<br />
<strong>för</strong>stört gammal funktionalitet under vidareutveckling av en produkt. För att hjälpa till med<br />
detta skriver man olika former utav <strong>test</strong>er, men att kunna skriva bra <strong>test</strong>fall som täcker in<br />
alla krav som ställs på systemet så att man samtidigt håller koll på gammal funktionalitet<br />
under utvecklingen av ny är svårt <strong>och</strong> kräver en hel del kunskap. Oberoende på om man<br />
anser sig ha den rätta kunskapen eller inte <strong>för</strong> att skriva bra <strong>test</strong>fall så måste man ställa sig<br />
frågan: ”Vet jag att de <strong>test</strong>er som görs på systemet verkligen <strong>test</strong>ar all <strong>kod</strong> <strong>och</strong> innesluter alla<br />
möjliga scenarion som kan inträffa?”. Detta <strong>för</strong> oss in på ämnet <strong>för</strong> denna djupstudie,<br />
nämligen analysverktyg.<br />
Den här artikeln är framtagen som en del i kursen ”Coaching av programvaruteam” vid <strong>Lunds</strong><br />
tekniska högskola <strong>och</strong> är tänkt att ge en djupare <strong>för</strong>ståelse <strong>för</strong> analysverktyg, hur man väljer<br />
rätt <strong>och</strong> hur man använder det på bästa sätt. I bakgrunden till alla åtaganden <strong>och</strong> slutsatser<br />
inom <strong>kod</strong>ning så kommer programmeringsspråket java att vara det enda språket i åtanke.<br />
Detta <strong>för</strong> att det är det språket som använts i kursen <strong>och</strong> det känns där<strong>för</strong> mest logiskt att<br />
utgå från det.<br />
2. Bakgrund<br />
När man <strong>test</strong>ar system så brukar man tala om två olika sätt att <strong>test</strong>a, nämligen ”black-box<br />
<strong>test</strong>ning” <strong>och</strong> ”white-box <strong>test</strong>ning” [2]. Black-box innebär att man inte vet något om hur<br />
systemet är implementerat <strong>och</strong> utformar <strong>test</strong>er <strong>för</strong> att se att systemet ut<strong>för</strong> det man vill att<br />
det ska göra (typiskt exempel är användarscenarion). White-box däremot innebär att man<br />
har tillgång till hur systemet är implementerat <strong>och</strong> <strong>test</strong>erna utformas <strong>för</strong> att se att alla<br />
metodanrop <strong>och</strong> liknande ger de resultat som man <strong>för</strong>väntar sig (typiskt vad som ut<strong>för</strong>s<br />
2