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

本文介绍了如何通过Python模糊测试工具和OSS-Fuzz服务来测试TensorFlow的API,以发现潜在的缓冲区溢出、内存泄漏等问题。Atheris是一个基于libFuzzer的Python模糊测试引擎,它与Address Sanitizer和Undefined Behavior Sanitizer配合使用。添加模糊测试工具到TensorFlow存储库,并使用Docker进行构建和运行。模糊测试能够持续运行,以提高测试覆盖率并检测异常。
最低0.47元/天 解锁文章
4358





