LabHub
学习 学习路径 课程

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

커버리지의 빈칸을 메운다

在 LabHub 中继续学习

目标

学习的不是如何编写测试,而是如何选择要测试的内容
把覆盖率当作地图,而不是目标。

为什么重要

100% 覆盖率不能保证任何事情。仅有 assert x is not None 也能达到 100%。
相反,真正危险的部分(错误处理、边界值)因为难写测试而保持空白,bug 正因如此存活。

本实验将用数字找到这些空白并补上,最后以决定哪些地方不测试结束。

环境

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. 决定哪些内容不测试