发布人:Laura Pak,TensorFlow 团队
模糊测试是通过生成的数据测试 API 的过程。模糊测试可确保代码在负向路径中不会中断,从而生成尽量覆盖每条代码分支的随机输入。常见选择是将模糊测试工具与排错程序配对使用,排错程序是用于检查非法情况的工具,因此会标记模糊测试工具输入所触发的错误。
由此,模糊测试可以查找:
- 缓冲区溢出
- 内存泄漏
- 死锁
- 无限递归
- 往返一致性错误
- 未捕获到的异常
- 等等
最好的模糊测试方式便是持续运行模糊测试。测试运行次数越多,生成及测试的输入也越多。在本文中,您将了解如何向 TensorFlow 添加 Python 模糊测试工具。
技术实现方法
TensorFlow Python 模糊测试工具通过 OSS-Fuzz 运行,这是面向开源项目的持续模糊测试服务。
-
OSS-Fuzz
对于 Python 模糊测试工具,OSS-Fuzz 会使用 Atheris,这是一个覆盖率引导 Python 模糊测试引擎。Atheris 基于模糊测试引擎 libFuzzer,可结合