White-Box Test Design Flashcards
7 cards from real ISTQB practice questions. Tap to flip, then mark Knew It or Still Learning — missed cards come back until you master them.
Read the first 7 White-Box Test Design flashcards as text
Which of the following is NOT a white-box (structural) testing technique?
Answer: Equivalence partitioning
Equivalence partitioning is a black-box technique based on input domain analysis, not on code structure examination.
A software component has the Boolean expression `if (x > 0 && y != 0)`. To achieve MC/DC, which set of test cases is SUFFICIENT?
Answer: TC1: x=1,y=1 (T,T); TC2: x=-1,y=1 (F,T); TC3: x=1,y=0 (T,F)
MC/DC requires each condition to independently affect the outcome: TC1 shows T,T→T; TC2 changes only x to show F,T→F; TC3 changes only y to show T,F→F — three test cases suffice.
When a white-box tester calculates cyclomatic complexity using the formula V(G) = P + 1, what does 'P' represent?
Answer: The number of predicate (decision) nodes in the control flow graph
In the formula V(G) = P + 1, P is the number of predicate (binary decision) nodes in the control flow graph.
Which coverage criterion is MOST effective at detecting faults caused by incorrect variable initialization before first use?
Answer: Data flow coverage (all-defs)
Data flow coverage specifically tracks definition-use pairs and can identify ur anomalies where variables are used before a valid definition, directly targeting initialization faults.
A tester achieves 100% branch coverage on a function. Which of the following statements is TRUE?
Answer: 100% statement coverage is also achieved
Branch coverage subsumes statement coverage — if every branch (true and false outcome of every decision) is exercised, every reachable statement must have been executed.
In white-box testing, what is the purpose of using a 'call graph'?
Answer: To visualize the invocation relationships between functions/modules for integration testing
A call graph is a directed graph showing which functions call which other functions, enabling testers to design integration test cases based on structural dependencies.
Which statement BEST explains why 100% path coverage is generally impractical for real software?
Answer: The number of paths grows exponentially with the number of loops and branches
The number of unique paths through a program with loops and nested branches grows exponentially (potentially infinitely with unbounded loops), making exhaustive path coverage infeasible.