Hvad er kodedækning?
Kodedækning er kendt som det mål, hvor vi beskriver graden af programmets kildekode, der skal testes. Kodedækning er kort sagt en type af den hvide boks testteknik, hvor vi lokaliserer de dele af programmet, der ikke er blevet udført af testsagerne. De indarbejder også i oprettelsen af få testsager for at hæve dækningen såvel som bestemmelsen af det ret gode mål for kodedækningen. I mange tilfælde indsamler dette system imidlertid oplysninger om det kørende program. Kodedækning inkluderer desuden den sammen med information om kildekoden for at udarbejde rapporten vedrørende kodedækning af testsuiten.
Hvordan fungerer kodedækning?
Der findes faktisk forskellige tilgange til måling af kodedækningen. Hvis vi overvejer på en bred måde, findes der 3 af de tilgange, der er som følger:
- Kildekodeinstrumentering: Kildekodeinstrumentering vil tilføje instrumenteringsangivelserne til kildekoden, og derefter vil den kompilere koden sammen med det normale kompileringsværktøj, så vi får en samling, der er instrumenteret.
- Intermediate Code Instrumentation: I Intermediate Code Instrumentation bliver kompilerede filer instrumenteret ved tilføjelse af bytekoder, der er nye, og derefter genereres den nye klasse.
- Runtime Information Collection: I Runtime information indsamling samler vi oplysningerne fra det miljø, der er runtime, da kode udføres for at bestemme dækningsinformationen.
Da koden bliver udført under testen, indsamler kodedækningssystemet oplysninger om, hvilke af udsagnene der udføres. Nu vil disse oplysninger blive brugt som noget af grundlaget for rapporterne. Derudover er kodedækningsmetoder forskellige, afhængigt af de forskellige former for dækningsinformation, der indsamles. Der findes forskellige metoder til kodedækning, hvis vi går ud over de grundlæggende metoder til udsagnsdækning.
Metoder til kodedækning
Der findes mange metoder til kodedækning. Få af dem er anført nedenfor:
- Tilstandsdækning
- FSM-dækning
- Erklæring dækning
- Beslutningsdækning
- Filialdækning
1. Erklæring dækning
- Det er den hvide boks testdesignteknik, hvor vi beskæftiger os med udførelsen af alle de eksekverbare udsagn mindst én gang, der findes i kildekoden. Kodedækning er nødvendig i beregningen såvel som målingen af mange udsagn, der findes i kildekoden, såvel som dem, der kan udføres, forudsat at kravene er givet.
- Denne metode er nødvendig i afledningen af scenarierne afhængigt af strukturen af koden, der findes under testen.
2. Beslutningsdækning
- Denne metode er nyttig til rapportering af enten rigtige eller falske resultater af ethvert udtryk, der er boolsk. Udtrykkene i denne dækning bliver ofte komplicerede. Derfor er det ganske vanskeligt at få 100% dækning.
- Det er netop grunden til, at der findes forskellige metoder til at rapportere denne type metriske. Hele disse metoder beskæftiger sig grundlæggende med dækningen af de mest markante kombinationer. Beslutningsdækning giver stor følsomhed for at kontrollere strømningen.
3. Filialdækning
- Når vi taler om denne type, mener vi, at hvert output, der kommer fra kodemodulet, bliver testet. Som et eksempel kan vi overveje, at i tilfælde af at output er binære, vil vi teste både True og False output.
- Filialdækning hjælper os med at sikre, at alle de mulige grene, der kommer fra hver af beslutningerne, betingelsen udføres mindst en gang.
- Gennem filialdækningsmetoden kan vi beregne brøkdelen af kodesegmenterne, der er uafhængige. Derudover giver denne metode os mulighed for at finde ud af, hvilke sektioner i koden ikke har grenene.
Der findes formlen til beregning af filialdækning:
Filialdækning = Antal udførte filialer / Samlet antal udførte filialer
4. Dækning af tilstanden
- Tilstandsdækning, der også kaldes, som udtryksdækning fortæller os, hvordan de variabler eller subexpressions, der findes i betinget erklæring, evalueres.
- Lad os overveje et eksempel, hvor et udtryk består af de boolske operationer såsom AND, OR eller XOR, der består af det samlede antal muligheder.
- Denne metode giver os faktisk meget bedre følsomhed til at kontrollere flow sammenlignet med beslutningsdækningen. Denne metode giver os ingen garanti for den fulde beslutningsdækning.
Der findes formlen til beregning af filialdækning:
Tilstandsdækning = Antal udførte operander / Samlet antal udførte operander
5. Finite State Machine Cover
- Denne metode betragtes som den mest komplekse slags kodedækningsmetode. Årsagen bag det er, at denne metode faktisk fungerer på designens opførsel.
- I denne metode fik vi også at finde ud af, hvor mange af de stater, der er tidsspecifikke, bliver besøgt og transiteret. Derudover verificerer denne metode også, hvor mange af sekvenserne der tages i betragtning i den færdige tilstand.
Fordele ved kodedækning
Nogle af fordelene gives nedenfor:
- Det er meget nyttigt i evalueringen af kodedækningens kvantitative mål
- Det tillader os også at oprette testtilfælde, der er ekstra for at øge dækningen
- Kodedækning tillader os også at lokalisere de dele af programmet, der ikke udøves af testsagerne.
Ulemper ved kodedækning
Nogle af ulemperne er givet nedenfor:
- Hver gang en bestemt funktion ikke er implementeret godt i designet, vil kodedækningen stadig rapportere dækning på 100%.
- Det er umuligt at forstå, hvis du tester alle mulige værdier for funktionen gennem kodedækningen
- Det fortæller heller ikke, hvor meget og hvor godt vi dækkede vores logik.
Konklusion
Kodedækningen betragtes som det mål, hvor vi beskriver grad, hvilken kildekode for et program er blevet testet. Det hjælper os også med at beregne testimplementeringens effektivitet. Udsagnsdækning betyder også at udføre alle eksekverbare udsagn mindst en gang.
Anbefalede artikler
Dette er en guide til kodedækning. Her diskuterer vi metoder og hvordan kodedækning fungerer? sammen med fordele og ulemper. Du kan også se på de følgende artikler for at lære mere -
- Hvordan testdækning gør det nemt at arbejde?
- Forskellige GUI-testværktøjer
- Typer af mutationstest
- Hvad er CodeIgniter?
- Kode dækningsværktøjer | Top 6 kode dækningsværktøjer
- Hvad er test case? | Tips og tricks