Bird
Raised Fist0
JUnittesting~5 mins

Coverage reports in JUnit - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a coverage report in software testing?
A coverage report shows which parts of the code were tested by automated tests and which parts were not. It helps find untested code.
Click to reveal answer
beginner
Name two common types of code coverage measured in reports.
Line coverage (which lines ran) and branch coverage (which decision paths ran). Both help understand test completeness.
Click to reveal answer
intermediate
How does JUnit integrate with coverage tools to generate reports?
JUnit runs tests, and coverage tools like JaCoCo hook into the test run to track which code executes, then create reports after tests finish.
Click to reveal answer
intermediate
Why is 100% code coverage not always the goal?
Because some code is hard to test or not critical. Coverage shows tested code but not test quality or bugs. Aim for meaningful coverage.
Click to reveal answer
advanced
What does branch coverage tell you that line coverage might miss?
Branch coverage shows if all possible paths (like if-else branches) were tested, not just if lines ran. It finds missed decision cases.
Click to reveal answer
What does a coverage report primarily measure?
AMemory usage during tests
BHow fast the tests run
CNumber of tests written
DWhich code lines were executed during tests
Which tool commonly works with JUnit to generate coverage reports?
APostman
BSelenium
CJaCoCo
DJenkins
What does branch coverage help identify?
ALines with syntax errors
BUntested decision paths in code
CTest execution time
DNumber of test failures
Why might 100% coverage not guarantee bug-free code?
ACoverage shows tested code but not test quality
BCoverage tools only work on weekends
CTests never run on all machines
DCoverage measures only performance
Which coverage type measures if every line of code was executed?
ALine coverage
BBranch coverage
CPath coverage
DMutation coverage
Explain what a coverage report is and why it is useful in testing.
Think about how you check if you tested all parts of your code.
You got /3 concepts.
    Describe the difference between line coverage and branch coverage.
    Consider if statements and their possible outcomes.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a coverage report in JUnit testing?
      easy
      A. To show which parts of the code were executed during tests
      B. To list all test cases in the project
      C. To measure the speed of test execution
      D. To generate test data automatically

      Solution

      1. Step 1: Understand coverage report purpose

        A coverage report shows which lines or branches of code were run during testing.
      2. Step 2: Compare options to definition

        Only To show which parts of the code were executed during tests matches this purpose; others describe unrelated features.
      3. Final Answer:

        To show which parts of the code were executed during tests -> Option A
      4. Quick Check:

        Coverage report = executed code lines [OK]
      Hint: Coverage reports highlight tested code lines quickly [OK]
      Common Mistakes:
      • Confusing coverage with test case listing
      • Thinking coverage measures test speed
      • Assuming coverage generates test data
      2. Which tool is commonly used with JUnit to generate coverage reports?
      easy
      A. JaCoCo
      B. JUnitParams
      C. Mockito
      D. Selenium

      Solution

      1. Step 1: Identify coverage tools for JUnit

        JaCoCo is a popular Java code coverage tool that integrates with JUnit.
      2. Step 2: Eliminate unrelated tools

        Selenium is for UI testing, Mockito for mocking, JUnitParams for parameterized tests, not coverage.
      3. Final Answer:

        JaCoCo -> Option A
      4. Quick Check:

        Coverage tool with JUnit = JaCoCo [OK]
      Hint: JaCoCo is the go-to coverage tool for Java tests [OK]
      Common Mistakes:
      • Confusing Selenium with coverage tools
      • Mixing mocking frameworks with coverage
      • Assuming JUnitParams generates coverage
      3. Given this JaCoCo coverage summary:
      Lines covered: 80
      Lines missed: 20

      What is the coverage percentage?
      medium
      A. 100%
      B. 20%
      C. 80%
      D. 60%

      Solution

      1. Step 1: Calculate total lines

        Total lines = covered + missed = 80 + 20 = 100 lines.
      2. Step 2: Calculate coverage percentage

        Coverage % = (covered / total) * 100 = (80 / 100) * 100 = 80%.
      3. Final Answer:

        80% -> Option C
      4. Quick Check:

        80 covered of 100 total = 80% [OK]
      Hint: Coverage % = covered lines ÷ total lines x 100 [OK]
      Common Mistakes:
      • Using missed lines as coverage
      • Forgetting to add covered and missed for total
      • Mixing up numerator and denominator
      4. You ran tests with JaCoCo but the coverage report shows 0% coverage. What is the most likely cause?
      medium
      A. Tests did not execute any code
      B. JaCoCo was not properly attached to the test run
      C. All tests passed successfully
      D. The source code is empty

      Solution

      1. Step 1: Analyze 0% coverage meaning

        0% coverage means no code was recorded as executed during tests.
      2. Step 2: Identify common causes

        If tests ran but coverage is zero, JaCoCo likely was not attached or configured correctly.
      3. Final Answer:

        JaCoCo was not properly attached to the test run -> Option B
      4. Quick Check:

        0% coverage usually means missing JaCoCo setup [OK]
      Hint: Check JaCoCo setup if coverage is zero [OK]
      Common Mistakes:
      • Assuming tests passed means coverage is full
      • Thinking empty source code is common
      • Ignoring JaCoCo configuration errors
      5. You want to improve your test coverage report by including branch coverage in JaCoCo. Which configuration change is needed?
      hard
      A. Increase the number of test classes
      B. Add @BranchCoverage annotation to test methods
      C. Use a different testing framework instead of JUnit
      D. Enable branchCoverage option in JaCoCo plugin settings

      Solution

      1. Step 1: Understand branch coverage

        Branch coverage measures if all decision branches (like if/else) are tested.
      2. Step 2: Configure JaCoCo for branch coverage

        JaCoCo supports branch coverage via plugin settings; enabling branchCoverage activates it.
      3. Step 3: Eliminate incorrect options

        No annotation @BranchCoverage exists; changing framework or test count doesn't enable branch coverage reporting.
      4. Final Answer:

        Enable branchCoverage option in JaCoCo plugin settings -> Option D
      5. Quick Check:

        Branch coverage = enable in JaCoCo config [OK]
      Hint: Enable branchCoverage in JaCoCo config to track branches [OK]
      Common Mistakes:
      • Looking for annotations to enable coverage
      • Thinking more tests auto-enable branch coverage
      • Switching frameworks unnecessarily
      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