Wat is Takdekking (branch coverage)?
Dekkingscriterium voor whiteboxtesten dat vereist dat zowel de ware als de onware tak van elke beslissing (zoals een if-statement) in een programma minstens één keer wordt uitgevoerd. Het wordt ook beslissingsdekking (decision coverage) of C1 genoemd, en is sterker dan statementdekking (C0), die vereist dat elk statement minstens één keer wordt uitgevoerd.
Japanse benaming: 分岐網羅
“Takdekking (branch coverage)” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Softwareontwikkeling en projectmanagement.
Vakgebied: Softwareontwikkeling en projectmanagement
Verband met conditiedekking en samengestelde voorwaarden
Bestaat een beslissing uit meerdere voorwaarden, zoals bij „A en B”, dan vereist conditiedekking dat elke afzonderlijke voorwaarde zowel waar als onwaar wordt. De twee testgevallen (A = waar, B = onwaar) en (A = onwaar, B = waar) bereiken conditiedekking, maar de beslissing is in beide onwaar, dus takdekking is niet bereikt. Daarom worden criteria gebruikt zoals beslissings-/conditiedekking, die aan beide voldoet, en MC/DC (modified condition/decision coverage), dat controleert of elke voorwaarde zelfstandig de uitkomst van de beslissing beïnvloedt. MC/DC is vereist op het hoogste veiligheidsniveau van DO-178C, de norm voor software in luchtvaartuigen, en wordt ook sterk aanbevolen bij ASIL D in ISO 26262, de norm voor functionele veiligheid van wegvoertuigen.
Veelgestelde vragen
Wat betekenen C0 en C1?
Het zijn afkortingen voor dekkingscriteria: C0 is statementdekking (elk statement minstens één keer uitgevoerd) en C1 is takdekking (zowel de ware als de onware kant van elke tak minstens één keer uitgevoerd). Wie C1 bereikt, bereikt ook C0.
Moet 100% takdekking het doel zijn?
Voor veiligheidsgerelateerde software kunnen normen of bedrijfsregels doelen vastleggen voor takdekking of MC/DC. Anders is het belangrijker om bij elke niet-uitgevoerde tak na te gaan of die echt overbodig is of dat er tests ontbreken, dan vast te houden aan 100%. Code die alleen in abnormale situaties wordt uitgevoerd, moet worden getest, bijvoorbeeld met foutinjectie.