Symbolic Execution 发现了我 94% 测试覆盖率都遗漏的整数溢出
你的单元测试只检查特定输入,而 symbolic execution 检查所有可能的输入。以下是它的工作原理、成本以及从何入手。
你的测试套件有 94% 的覆盖率,零失败。一个 symbolic execution 引擎在三秒内就在你的代码中找到了一个崩溃。 测试没有坏。覆盖率指标没有说谎。问题在于测试只验证特定点上的行为。Symbolic execution 验证的是整个输入区域上的行为。无论你写多少示例,如果 bug…