Testing Software
在测试前要搞明白两个问题:
- 哪些是我们测试要捕捉的真正bug?
- 哪些错报会由我们的测试引起?
|
bug |
OK |
| √ |
Missed Alarm |
Smooth Sailing |
| × |
Caught Bug |
False Alarm |
在一些情况下,正确性很重要:
- Cases:
- Medical dx & intervention
- Self-driving vehicles
- Banking, Finance
- Patterns:
- Autonomous systems
- High stakes
使用测试工具,但不追求完全覆盖
Pytest, doctest, codecov
标准化统一编码风格
black Formatter, Flake8, shellcheck
强迫的风格限制令人沮丧
建议:
- 将规则限制在为了完成目标的最小风格要求。(坚持标准,避免争议,保持版本控制历史)
- “opt-in”规则,随着时间扩大覆盖,尤其是对已有的代码库
代码库管理工作流:Github Actions,precommit
80/20 原则
Testing ML Systems