Bird
Raised Fist0
Testing Fundamentalstesting~20 mins

Path coverage in Testing Fundamentals - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Path Coverage Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding Path Coverage Basics

Consider a simple function with two if statements in sequence. How many unique execution paths should be tested to achieve 100% path coverage?

Testing Fundamentals
def example(x, y):
    if x > 0:
        print("X positive")
    if y > 0:
        print("Y positive")
A4
B3
C2
D5
Attempts:
2 left
💡 Hint

Each if statement can be true or false independently.

❓ Predict Output
intermediate
1:30remaining
Output of Path Coverage Example

What is the output when calling test_func(3, -1)?

Testing Fundamentals
def test_func(a, b):
    if a > 0:
        print("A positive")
    else:
        print("A non-positive")
    if b > 0:
        print("B positive")
    else:
        print("B non-positive")

# Call: test_func(3, -1)
AA positive\nB positive
BA non-positive\nB positive
CA positive\nB non-positive
DA non-positive\nB non-positive
Attempts:
2 left
💡 Hint

Check each if condition with the given inputs.

❓ assertion
advanced
2:00remaining
Assertion for Full Path Coverage

Which assertion best verifies that all paths in the following function have been executed at least once?

Testing Fundamentals
def check_values(x, y):
    if x > 10:
        if y < 5:
            return "Path 1"
        else:
            return "Path 2"
    else:
        return "Path 3"
Aassert results == ["Path 1", "Path 2", "Path 3"]
Bassert set(results) == {"Path 1", "Path 2", "Path 3"}
Cassert "Path 1" in results and "Path 2" in results
Dassert len(results) == 3
Attempts:
2 left
💡 Hint

All unique paths must be covered regardless of order.

🔧 Debug
advanced
2:00remaining
Identify Path Coverage Miscount

Given this code, a tester claims there are 3 paths. Is this correct? If not, what is the correct number of paths?

Testing Fundamentals
def sample(x, y):
    if x > 0:
        if y > 0:
            return 1
    return 0
ACorrect, there are 3 paths: both true, first true second false, first false
BIncorrect, there are 2 paths: both true and others combined
CIncorrect, there are 4 paths: all combinations of x and y conditions
DIncorrect, there is only 1 path because y is checked only if x > 0
Attempts:
2 left
💡 Hint

Consider when the second if is evaluated.

❓ framework
expert
2:30remaining
Designing Tests for Full Path Coverage

You have a function with three nested if statements. How many test cases are needed to guarantee 100% path coverage?

Function structure:

if A:
    if B:
        if C:
            do X
        else:
            do Y
    else:
        do Z
else:
    do W
A8 test cases
B5 test cases
C6 test cases
D4 test cases
Attempts:
2 left
💡 Hint

Count unique paths from root to leaves in the nested if structure.

Practice

(1/5)
1. What does path coverage testing ensure in software testing?
easy
A. All possible routes through the code are tested
B. Only the most common routes are tested
C. Only the start and end points are tested
D. Only the user interface is tested

Solution

  1. Step 1: Understand path coverage meaning

    Path coverage means testing every possible route or path through the code's decision points.
  2. Step 2: Compare options with definition

    All possible routes through the code are tested matches this definition exactly, while others limit testing scope incorrectly.
  3. Final Answer:

    All possible routes through the code are tested -> Option A
  4. Quick Check:

    Path coverage = all routes tested [OK]
Hint: Path coverage means testing every route through code [OK]
Common Mistakes:
  • Confusing path coverage with statement coverage
  • Thinking it tests only common or simple paths
  • Assuming it tests only UI or start/end points
2. Which of the following is the correct way to represent path coverage in a decision structure?
easy
A. Testing only the true branch of an if statement
B. Testing only the false branch of an if statement
C. Testing both true and false branches of an if statement
D. Skipping the if statement entirely

Solution

  1. Step 1: Understand path coverage in decisions

    Path coverage requires testing all possible outcomes of decisions, including both true and false branches.
  2. Step 2: Match options to requirement

    Only Testing both true and false branches of an if statement tests both branches, fulfilling path coverage requirements.
  3. Final Answer:

    Testing both true and false branches of an if statement -> Option C
  4. Quick Check:

    Both branches tested = path coverage [OK]
Hint: Test all branches of decisions for path coverage [OK]
Common Mistakes:
  • Testing only one branch of a decision
  • Ignoring false branches
  • Skipping decision points
3. Consider this code snippet:
if (x > 0) {
  if (x < 10) {
    print("A");
  } else {
    print("B");
  }
} else {
  print("C");
}

How many unique paths must be tested for full path coverage?
medium
A. 2
B. 3
C. 4
D. 5

Solution

  1. Step 1: Identify decision points and paths

    There are two if statements: outer (x > 0) and inner (x < 10). Paths are:
    1) x > 0 and x < 10 -> print "A"
    2) x > 0 and x >= 10 -> print "B"
    3) x <= 0 -> print "C"
  2. Step 2: Count unique paths

    There are 3 unique paths through the code based on these conditions.
  3. Final Answer:

    3 -> Option B
  4. Quick Check:

    Two decisions create 3 paths [OK]
Hint: Count all decision outcomes to find paths [OK]
Common Mistakes:
  • Counting only outer if branches
  • Assuming paths multiply incorrectly
  • Forgetting else branch path
4. You have this code:
if (a > 5) {
  if (b == 0) {
    print("X");
  }
} else {
  print("Y");
}

Which test case is missing for full path coverage?
medium
A. a = 6, b = 1
B. a = 6, b = 0
C. a = 4, b = 0
D. a = 4, b = 1

Solution

  1. Step 1: Identify all paths

    Paths are:
    1) a > 5 and b == 0 -> print "X"
    2) a > 5 and b != 0 -> no print
    3) a <= 5 -> print "Y"
  2. Step 2: Check test cases for coverage

    The test case a = 6, b = 1 covers path 2, which is missing from the others.
  3. Final Answer:

    a = 6, b = 1 -> Option A
  4. Quick Check:

    Test all branches including no-action paths [OK]
Hint: Include tests for conditions with no output too [OK]
Common Mistakes:
  • Ignoring paths with no print or action
  • Testing only true branches
  • Missing else branch tests
5. Given this nested decision code:
if (x > 0) {
  if (y > 0) {
    print("P");
  } else {
    print("Q");
  }
} else {
  if (y > 0) {
    print("R");
  } else {
    print("S");
  }
}

How many test cases are needed for full path coverage, and why?
hard
A. 2, because only outer if matters
B. 5, because of extra hidden paths
C. 3, because some inner paths overlap
D. 4, because each if-else pair creates 2 paths

Solution

  1. Step 1: Analyze nested if-else structure

    There are two if-else blocks nested:
    - Outer if (x > 0) with two inner paths (y > 0 and y <= 0)
    - Outer else (x <= 0) with two inner paths (y > 0 and y <= 0)
  2. Step 2: Calculate total paths

    Each outer branch has 2 inner branches, so total paths = 2 (outer) * 2 (inner) = 4.
  3. Final Answer:

    4, because each if-else pair creates 2 paths -> Option D
  4. Quick Check:

    Nested if-else multiply paths = 4 [OK]
Hint: Multiply branches of nested decisions for paths count [OK]
Common Mistakes:
  • Counting only outer or inner branches
  • Assuming overlapping paths reduce count
  • Adding extra paths without basis
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard