06.08.2013 Views

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.4 Vad man vill uppnå<br />

Med användandet av analysverktyg vill man uppnå så hög code coverage som man bara kan,<br />

det vill säga så stor andel <strong>test</strong>ad <strong>kod</strong> som det bara är möjligt. Tillsammans med det följer<br />

även att man vill ha ett system som är så fritt från buggar som möjligt så tidigt i utvecklingen<br />

som möjligt. Detta <strong>för</strong> att hålla kostnaderna nere eftersom det i regel är billigare att rätta till<br />

ett fel innan systemet vuxit sig <strong>för</strong> stort eller efter att ett system har lanserats.<br />

Fastän man anser sig vara noga vid <strong>test</strong>ning <strong>och</strong> att allt ska vara <strong>test</strong>at så brukar man<br />

rimligtvis ha en code coverage på mellan 60% - 70%, vilket brukar vara acceptabelt eftersom<br />

det vanligtvis anses alldeles <strong>för</strong> resurskrävande att höja det över 60% [2]. Utöver detta vill<br />

man sänka kostnaderna <strong>för</strong> <strong>test</strong>ningsdelen av utvecklingen så att man kan leverera ett buggfritt<br />

system snabbare <strong>och</strong> därigenom till ett lägre pris.<br />

Snabbt <strong>och</strong> enkelt skulle man kunna säga att allt handlar om pengar (<strong>och</strong> då menar jag allt<br />

här i världen), utvecklingen ska kosta så lite som möjligt så att cheferna blir glada <strong>och</strong> kan<br />

sälja en produkt med så mycket vinst som möjligt samtidigt som kunden vill ha en produkt<br />

till ett så billigt pris som möjligt. Aldrig är det någon som blir nöjd heller, utan man strävar<br />

hela tiden efter att få eller skapa så mycket som möjligt <strong>för</strong> en så liten summa som möjligt.<br />

En fråga som du som läsare bör ställa dig är: Hur skulle utvecklingen inom analysverktyg,<br />

eller rent av all utveckling, se ut om det inte var effektivisering <strong>för</strong> att tjäna in pengar som<br />

drev den framåt? Vad skulle annars driva den framåt?<br />

3.5 Hur det kan gå fel<br />

Code coverage är inget allvetande svar som presenteras på hur man bör <strong>för</strong>bättra sina <strong>test</strong><br />

<strong>för</strong> att säkra att systemet är helt <strong>test</strong>at <strong>och</strong> funktionellt. Code Coverage talar bara om vilka<br />

rader <strong>kod</strong> som blivit exekverade av de <strong>test</strong> som finns <strong>och</strong> därigenom kan man inte göra<br />

antagandet att hög code coverage säger att systemet är <strong>test</strong>at <strong>för</strong> alla tänkbara scenarion.<br />

Samma sak inträffar om man implementerat funktionalitet på ett inkorrekt sätt <strong>och</strong> som<br />

man sedan dessutom <strong>test</strong>ar på fel sätt, då kommer hög code coverage inte alls säga något<br />

om hur funktionellt <strong>och</strong> stabilt systemet är. Om man är duktig på att skriva bra <strong>test</strong>fall <strong>och</strong> är<br />

noggrann med vad man sysslar med så borde det dock inte kunna inträffa, i den bästa av<br />

världar. Vill man i det sistnämnda fallet garantera sig att systemet i sin helhet ut<strong>för</strong> den<br />

tänkta uppgiften så kan det vara lämpligt att fundera på eventuella ”Black-box <strong>test</strong>er”.<br />

6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!