Python 系统测试
测试的本质是在特定条件下验证行为,它无法证明系统没有 Bug。因此,对系统的信心应建立在多层测试之上,每一层具备不同的故障捕获能力。
知识地图
- 单元测试 — 涵盖示例、参数化、Fixture、测试替身(Test Doubles)及隔离边界。
- 测试策略 — 涉及集成、系统、回归、性能、CI 以及 Flaky Test(不稳定测试)的处理策略。
- 错误与异常 — 在 Python 中定义并测试失败契约(Failure Contracts)。
测试工作流
- 明确契约:定义可观察的行为契约及关键的失败模式。
- 核心逻辑:将大部分确定性的领域逻辑放入快速、聚焦的单元测试中。
- 边界测试:在组件、存储、网络、进程或用户交互的边界处增加测试。
- 执行策略:开发阶段运行最小相关测试集;CI 环境中运行完整规定的测试套件。
- 缺陷处理:将发现的 Bug 视为模型缺失或检查遗漏;若该场景具有长期价值,务必保留回归测试。
关于覆盖率: 覆盖率仅反映代码是否被执行,而非行为是否被有效验证。应利用覆盖率发现测试盲区,而非将其作为测试设计的替代品。