LabHub

테스트 도구 실전 · 무엇을 테스트하나 · 실습

커버리지의 빈칸을 메운다

LabHub 에서 이어서 보기

목표

테스트를 쓰는 법이 아니라 무엇을 테스트할지 고르는 법을 익힙니다.
커버리지를 목표가 아니라 지도로 씁니다.

왜 중요한가

커버리지 100%는 아무것도 보장하지 않습니다. assert x is not None
있어도 100%가 됩니다. 반대로 진짜 위험한 곳(오류 처리, 경계값)은 테스트를
쓰기 귀찮아서 비어 있고, 정확히 그래서 버그가 삽니다.

이 실습은 그 빈칸을 숫자로 찾아 메우고, 마지막에는 **안 채울 곳을
정하는** 것으로 끝납니다.

환경

pytest --cov=<모듈> --cov-report=term-missingpytest --cov-branch      분기 커버리지pytest --durations=5     느린 테스트 다섯 개

네트워크가 없지만 pytest·coverage·hypothesis 는 이미지에 들어 있습니다.

단계

1. 분기 셋짜리 함수 → /root/work/tt/billing.py
2. 정상 경로만 테스트 → test_billing.py
3. 빠진 줄 확인 → /root/work/tt/03-cov.txt
4. 오류 경로 채우기
5. 분기 커버리지 → /root/work/tt/05-branch.txt
6. hypothesis 로 성질 검증
7. 느린 테스트 → /root/work/tt/07-slow.txt
8. 안 테스트할 것 → /root/work/tt/08-verdict.md

참고

단계 8개

  1. 테스트할 코드를 만든다
  2. 첫 테스트
  3. 빠진 줄을 본다
  4. 빈칸을 메운다
  5. 분기 커버리지는 다르다
  6. 사람이 못 떠올리는 입력
  7. 느린 테스트를 골라낸다
  8. 무엇을 안 테스트할지 정한다