Wat is codedekking?
Codedekking staat bekend als de maat waarin we de mate van broncode van het programma beschrijven die getest moet worden. Kort gezegd is codedekking een type van de witte doos-testtechniek waarbij we die delen van het programma zoeken die niet zijn uitgevoerd door de ingestelde testgevallen. Ze nemen ook op in het maken van enkele testgevallen om de dekking te verhogen, evenals de bepaling van de redelijk goede maat voor de codedekking. In veel gevallen verzamelt dit systeem echter informatie over het actieve programma. Codedekking omvat deze bovendien samen met informatie over de broncode om het rapport over codedekking van de testreeks te verwijderen.
Hoe werkt codedekking?
Er bestaan eigenlijk verschillende benaderingen voor het meten van de codedekking. Als we het op een brede manier beschouwen, zijn er drie van de volgende benaderingen:
- Broncode-instrumentatie: Broncode-instrumentatie voegt de verklaringen van instrumentatie toe aan de broncode en compileert vervolgens de code samen met de normale compilatietool om ons een samengestelde instrument te bezorgen.
- Tussenliggende code-instrumentatie: In tussenliggende code-instrumentatie worden gecompileerde bestanden geïnstrumenteerd door toevoeging van de bytecodes die nieuw zijn en daarna wordt de nieuwe klasse gegenereerd.
- Runtime-informatieverzameling: In Runtime-informatieverzameling verzamelen we de informatie uit de omgeving die runtime is, omdat code wordt uitgevoerd om de dekkingsinformatie te bepalen.
Omdat de code tijdens de test wordt uitgevoerd, verzamelt het codedekkingsysteem informatie over welke van de instructies worden uitgevoerd. Nu zou deze informatie worden gebruikt als een deel van de basis van de rapporten. Bovendien verschillen de methoden voor codedekking afhankelijk van de verschillende vormen van de dekkingsinformatie die wordt verzameld. Er bestaan verschillende methoden voor codedekking als we verder gaan dan de basismethoden voor statementdekking.
Methoden voor codedekking
Er bestaan veel methoden voor codedekking. Weinigen van hen zijn hieronder opgesomd:
- Voorwaarde dekking
- FSM-dekking
- Verklaring dekking
- Beslissingsdekking
- Branch dekking
1. Verklaring dekking
- Het is de White Box-testontwerptechniek waarbij we de uitvoering van alle uitvoerbare instructies ten minste één keer behandelen die in de broncode bestaat. Codedekking is nodig bij de berekening en bij het meten van veel uitspraken die in de broncode voorkomen en die kunnen worden uitgevoerd, op voorwaarde dat de vereisten worden vermeld.
- Deze methode is nodig bij het afleiden van de scenario's, afhankelijk van de structuur van de code die onder de test bestaat.
2. Beslissingsdekking
- Deze methode is nuttig bij het melden van de waar of de valse resultaten van elke expressie die Boolean is. De uitdrukkingen in deze dekking worden vaak ingewikkeld. Daarom is het vrij moeilijk om 100% dekking te krijgen.
- Dat is precies de reden dat er verschillende methoden bestaan om dit soort statistieken te rapporteren. Deze hele methoden behandelen in principe de dekking van de belangrijkste combinaties. Beslissingsdekking biedt een grote gevoeligheid om de stroom te regelen.
3. Vestigingsdekking
- Als we over dit type praten, bedoelen we dat elke uitvoer die uit de codemodule komt, wordt getest. Als voorbeeld kunnen we in overweging nemen dat in het geval dat de uitgangen binair zijn, we zowel True als False-uitgangen zullen testen.
- Branch Coverage helpt ons om ervoor te zorgen dat alle mogelijke branches die uit elk van de beslissingen komen, de voorwaarde minimaal één keer wordt uitgevoerd.
- Via de takdekkingsmethode kunnen we de fractie van de codesegmenten berekenen die onafhankelijk zijn. Bovendien stelt deze methode ons in staat om te achterhalen welke delen van de code geen vertakkingen hebben.
Er bestaat de formule voor de berekening van filiaaldekking:
Branch Coverage = Aantal uitgevoerde takken / Totaal aantal uitgevoerde takken
4. Voorwaarde dekking
- Conditiedekking, ook wel expressiedekking genoemd, vertelt ons hoe de variabelen of de subexpressies die in de voorwaardelijke instructie bestaan, worden geëvalueerd.
- Laten we een voorbeeld bekijken waarin een expressie bestaat uit de Booleaanse bewerkingen zoals AND, OR of XOR die bestaat uit het totale aantal mogelijkheden.
- Deze methode geeft ons in feite een veel betere gevoeligheid voor het regelen van de stroom in vergelijking met de beslissingsdekking. Deze methode geeft ons geen garantie met betrekking tot de volledige beslissingsdekking.
Er bestaat de formule voor de berekening van filiaaldekking:
Voorwaarde dekking = Aantal uitgevoerde operanden / Totaal aantal uitgevoerde operanden
5. Eindige machinedekking
- Deze methode wordt beschouwd als de meest complexe methode voor codedekking. De reden erachter is dat deze methode daadwerkelijk werkt op het gedrag van het ontwerp.
- In deze methode moeten we ook ontdekken hoeveel staten die tijdsspecifiek zijn, worden bezocht en doorgestuurd. Bovendien verifieert deze methode ook hoeveel van de sequenties in de eindige toestandsmachine worden overwogen.
Voordelen van codedekking
Enkele voordelen worden hieronder gegeven:
- Het is vrij nuttig bij de evaluatie van de kwantitatieve maat van de codedekking
- Het stelt ons ook in staat om extra testgevallen te creëren om de dekking te vergroten
- Codedekking stelt ons ook in staat om die delen van het programma te vinden die niet door de testgevallen worden uitgeoefend.
Nadelen van codedekking
Enkele nadelen worden hieronder gegeven:
- Wanneer een bepaalde functie niet goed is geïmplementeerd in het ontwerp, zou de codedekking nog steeds een rapportagedekking van 100% zijn.
- Het is onmogelijk te begrijpen als u alle mogelijke waarden van de functie test via de codedekking
- Het vertelt ook niet hoeveel en hoe goed we onze logica hebben afgedekt.
Conclusie
De codedekking wordt beschouwd als de maat waarin we beschrijven in welke mate de code van een programma is getest. Het helpt ons ook om de efficiëntie van de testimplementatie te berekenen. Verklaring van de dekking betekent ook dat alle uitvoerbare verklaringen minimaal één keer moeten worden uitgevoerd.
Aanbevolen artikelen
Dit is een gids voor codedekking. Hier bespreken we de methoden en hoe codedekking werkt? samen met voor- en nadelen. U kunt ook de volgende artikelen bekijken voor meer informatie -
- Hoe maakt testdekking werken zo eenvoudig?
- Verschillende GUI-testtools
- Soorten mutatietesten
- Wat is CodeIgniter?
- Hulpmiddelen voor codedekking | Top 6 Code Coverage Tools
- Wat is een testcase? | Tips en trucs