SE401 · Code Coverage · Annotated SlidesCode Coverage
Original
Overview

Code Coverage

What code coverage measures, its benefits and its false sense of security, best practices, and Google’s code-coverage best practices (60/75/90% guidelines, coverage of changed code, gating deployments).

How to read this page

Every original slide is shown unchanged. Yellow marks on a slide point to a numbered note: hover or tap a mark to jump to its note, and hover a note to see its marks. Questions tagged Past exam appeared on a real paper; Prediction questions are likely angles, not confirmed. Pick an answer to each question: a wrong pick tells you why it is wrong, so you can try again.

All 27 slides
  1. 1 Slide 1
  2. 2 —–Ž‹‡
  3. 3 –”‘†— –‹‘
  4. 4 –”‘†— –‹‘
  5. 5 Ї‡‡ˆ‹–•‘ˆ‘†‡‘˜‡”ƒ‰‡
  6. 6 ‘†‡‘˜‡”ƒ‰‡
  7. 7 ‘†‡‘˜‡”ƒ‰‡
  8. 8 —ƒ”›
  9. 9 ‘‡‡•–”ƒ –‹ ‡•
  10. 10 ‘‡‡•–”ƒ –‹ ‡•
  11. 11 Slide 11
  12. 12 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  13. 13 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  14. 14 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  15. 15 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  16. 16 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  17. 17 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  18. 18 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  19. 19 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  20. 20 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  21. 21 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  22. 22 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  23. 23 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  24. 24 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  25. 25 ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
  26. 26 Slide 26
  27. 27 ‡ˆ‡”‡ ‡•
Slide 1 / 27

Slide 1

Slide 1: Slide 1
Slide 2 / 27

—–Ž‹‡

Slide 2: —–Ž‹‡
Slide 3 / 27

–”‘†— –‹‘

Slide 3: –”‘†— –‹‘

Notes

  1. Code coverage: the percentage of code (statements, branches, functions, lines) executed by the test suite.

Slide 4 / 27

–”‘†— –‹‘

Slide 4: –”‘†— –‹‘

Notes

  1. Coverage finds UNTESTED code; it does not prove the tested code is correct: high coverage can give a false sense of security.

Exam angle

PredictionQ1

High code coverage guarantees high-quality tests.

Slide 5 / 27

Ї‡‡ˆ‹–•‘ˆ‘†‡‘˜‡”ƒ‰‡

Slide 5: Ї‡‡ˆ‹–•‘ˆ‘†‡‘˜‡”ƒ‰‡

Notes

  1. Benefit: pinpoints which files and branches lack tests, guiding where to write more.

Slide 6 / 27

‘†‡‘˜‡”ƒ‰‡

Slide 6: ‘†‡‘˜‡”ƒ‰‡
Slide 7 / 27

‘†‡‘˜‡”ƒ‰‡

Slide 7: ‘†‡‘˜‡”ƒ‰‡
Slide 8 / 27

—ƒ”›

Slide 8: —ƒ”›

Notes

  1. Coverage ≠ quality-tested code; a coverage target must not replace code review.

Slide 9 / 27

‘‡‡•–”ƒ –‹ ‡•

Slide 9: ‘‡‡•–”ƒ –‹ ‡•

Notes

  1. Write tests from the specification first, then use coverage to see what you missed.

Slide 10 / 27

‘‡‡•–”ƒ –‹ ‡•

Slide 10: ‘‡‡•–”ƒ –‹ ‡•
Slide 11 / 27

Slide 11

Slide 11: Slide 11
Slide 12 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 12: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 13 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 13: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 14 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 14: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 15 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 15: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 16 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 16: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 17 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 17: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 18 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 18: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 19 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 19: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Notes

  1. Google guideline: 60% acceptable, 75% commendable, 90% exemplary (no single "ideal" number).

Exam angle

PredictionQ1

Google’s guideline calls 75% code coverage:

Slide 20 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 20: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 21 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 21: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 22 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 22: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 23 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 23: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Notes

  1. Make sure frequently changing code is covered (per-commit coverage goals).

Slide 24 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 24: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•
Slide 25 / 27

‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Slide 25: ‘‘‰Ž‡‘†‡‘˜‡”ƒ‰‡‡•–”ƒ –‹ ‡•

Notes

  1. Gate deployments on coverage carefully: thresholds can become a checkbox that encourages bad tests.

Slide 26 / 27

Slide 26

Slide 26: Slide 26
Slide 27 / 27

‡ˆ‡”‡ ‡•

Slide 27: ‡ˆ‡”‡ ‡•