code coverage met Clover
vrijdag, 05 maart 2010 17:44
Ook Clover begint met een dashboard...
Het dashboard van clover geeft belangrijke informatie over essentiële test gegevens op één enkel beeldscherm weer.
Met de 'drill-down' mogelijkheden van clover, en doordat iedere informatie is voorzien van een actie (aanklikbaar) kunt u het volgende zien:
- De projecten met het grootste risico.
- De afdekking (coverage), uw gehele code base kan worden geanalyseerd in een boomstructuur.
- Overzicht van de meest complexe 'packages' en 'classes'.
- De methodes die nauwelijks werden getest.
- Pass / fail / OK resultaten.
- Overzicht van de laatste testrun.
- 'Scatter'-diagram met de complexiteit versus code-coverage. Ook hierop kan weer worden doorgeklikt.
Welke tests eerst?
Vaak is een team te druk bezig met het schrijven van tests die niet belangrijk zijn. Met Clover heeft u direct inzicht in de riskantste en minst geteste 'classes'. Als u hier begint met testen komt u meestal veel sneller met zinvolle resultaten.
- Project Risks: Deze module toont de paketten en classes die het meest complex zijn en het minst afgedekt worden door softwaretests.
- Quick wins: Deze module toont de paketten en classes die bijna niet werden getest.
Schrijf tests die er toe doen
Het laatsts wat uw testteam zou moeten doen is het schrijven van triviale tests die alleen bedoeld zijn om alle software code uit te voeren. Het filter mechanisme van Clover geeft u makkelijk de controle over de software code die belangrijk is voor uw code-coverage metingen zoals daar zijn:
- get () en set () methodes
- catch {} en finally {} blokken
- private methodes
- logging statements
Clover geeft u zo de volledige controle over wat wel en niet belangrijk is voor de goede afdekking van uw softwarecode. Zo spendeert u uw kostbare tijd aan de belangrijkste zaken.
Houdt uw code-coverage ook over langere tijd in de gaten.
Gaat u ook uw code-coverage minder nauwgezet in de gaten houden als u een dead-line nadert? Welke classes zijn er onlangs toegevoegd en hoe goed zijn ze afgedekt? Welke classes worden beter of slechter met tests afgedekt? Met de historische reports van Clover kunnen dergelijke vragen veel eenvoudiger worden beantwoord. Gedurende de life cycle van uw software houdt Clover ook bij:
- Het dekkingspercentage van de elementen, methoden, branches en de statements.
- Het totaal van LoC, non-covered LoC, de complexiteit, 't aantal classes en 't aantal packages.
- De classes die werden toegevoegd.
- De classes waarvan zich de code-coverage gedurende de laatste dagen, weken of maanden positief of negatief heeft ontwikkeld worden zo zichtbaar.
Wat doen de
ze tests?
Als uw code-base wijzigt in de loop van de tijd, moeten uw software tests ook veranderen. Door de dekking-per-test van Clover wordt meteen duidelijk welke classes verder getest moeten worden en welke niet. Ook geeft Clover aan wat de dekking van uw tests is. Zo blijft uw code up-to-date en zijn de tests doeltreffend als uw software code base zich verder ontwikkelt.
Met Clover kunt u doorklikken tot aan de individuele regel source code en daar bepalen:
- Is het statement getest (groen) of niet (rood).
- Hoe vaak is dit statement uitgevoerd.
- Classes toegevoegd, classes waarvan de code coverage zich heeft gewijzigd gedurende de laatste tijd.
Terwijl u code aan het veranderen bent, zal clovers per-test coverage snel antwoord geven op de volgende vragen:
- Moet ik een classe aanmaken of veranderen omdat ik zojuist een regel code heb gewijzigd?
- Waarom hebben de unit-tests een fout in deze klasse, methode of regel code aangegeven?
- Hoe zeker kunnen we er van zijn dat onze tests voldoende afdekken bij een veranderde classe, methode of regel code.


