













第一轮测试:如同初次喷洒强力杀虫剂,它能迅速清理掉大部分显而易见、逻辑肤浅的 Bug。 第二、三轮测试:使用同样的方法,你会发现 Bug 越来越难抓。测试人员可能会产生一种“软件已经非常安全”的错觉。 最终阶段:固定的测试用例变成了某种“心理安慰”。虽然测试报告上显示全部通过,但那些隐藏在深处的、致命的 Bug,早已进化出了绕过这些检测的能力。




第1轮:输入正确/错误账号。
第2轮:重复上述操作。
第3轮:结果为0,误以为完美。
安全维度:尝试 SQL 注入,绕过密码校验。
性能维度:模拟万名用户并发,发现内存溢出。
边界维度:输入超长字符或火星文,测试溢出风险。

启示:Bug 并不会在同一个地方跌倒两次。只有不断改变攻击角度,才能让进化中的 Bug 无处遁形。



随机测试 (Random Testing):不按常理出牌,暴露非线性错误。
探索性测试 (Exploratory Testing):凭借直觉、经验探索灰色地带。
科学分类法:利用等价类划分和边界值分析实现最高覆盖。


测试的目标永远不是为了“证明软件没有错”,而是为了“尽可能发现存在的错”。




夜雨聆风