nanofuzz/nanofuzz

GitHub: nanofuzz/nanofuzz

NaNofuzz 是卡内基梅隆大学开发的 VS Code 扩展,为 TypeScript 函数一键生成自动化测试套件,支持属性检查和人工标注。

Stars: 47 | Forks: 6

# NaNofuzz NaNofuzz 是一个快速且易于使用的 TypeScript 自动化测试套件生成器 (ATUG),它结合了人类洞察力、启发式方法和属性检查,帮助您快速达到代码正常运行的理想状态。NaNofuzz 旨在用于测试和开发阶段,并可在 [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=penrose.nanofuzz) 中获取。 ![NaNofuzz 截图](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/fe01a71666020819.png) NaNofuzz 只需单击一下按钮即可提议一组初始测试。然后,您可以通过手动标注特定示例的正确性,和/或添加大规模评估正确性的属性验证器函数来改进这些测试。NaNofuzz 将所有测试结果有条理地组织并排列优先级在单个屏幕上,以便您可以一目了然地看到您的测试套件正在测试什么——以及它可能遗漏了什么。 ## 教程和演练场 我们的 [NaNofuzz 示例](https://github.com/nanofuzz/nanofuzz-examples/) 仓库提供了一个 10 分钟的 NaNofuzz 教程以及几个有缺陷的程序示例,您可以用它们来熟悉 NaNofuzz。在 GitHub 上的 `nanofuzz-examples` 仓库中,点击 `Code`->`Codespaces`->`Create` 即可立即开始! ## 入门指南 要在您自己的项目中使用 NaNofuzz: - **步骤 1**:添加 NaNofuzz dev 依赖项 - **npm**: `npm i @nanofuzz/runtime -D` - **yarn**: `yarn add @nanofuzz/runtime -D` - **步骤 2**:将 NaNofuzz 扩展添加到您仓库的 `./.vscode/settings.json` 推荐列表中: { "recommendations": [ "penrose.nanofuzz" ] } ## 范围与限制 NaNofuzz 是由卡内基梅隆大学计算机科学学院的加速测试研究项目 开发的**实验性**测试平台。虽然 NaNofuzz **不**旨在用于生产环境,但我们欢迎贡献来解决以下限制。 NaNofuzz 支持具有以下任意参数类型混合的导出标准函数和箭头函数: - 数字(整数和浮点数,有符号和无符号) - 字符串 - 布尔值 - 字面量对象类型 - 上述类型的 n 维数组 - 可选和强制参数 NaNofuzz 自动生成以下格式的测试套件,以便在 CI 中使用: - Jest 以下尚不支持: - 解构类型、元组、枚举、泛型、Function 和内置(例如 Record)类型 - 非有限数字输入(`NaN`、`Infinity`)、`bigint`、`null` - 类和对象方法 - 编译为 CommonJS 以外的模块格式(参见 [VS Code issue 130367](https://github.com/microsoft/vscode/issues/130367)) - 支持有状态、不稳定或非确定性测试 - 沙箱化外部副作用、mock 或 stub - 自定义生成器和过滤器 - 测试用例最小化 如果 NaNofuzz 按钮未出现在您的函数上方,通常表示该函数未被导出,或者其输入之一由尚不支持的类型组成(见上文)。 ## 贡献 我们欢迎外部贡献来解决上述限制并修正未解决的问题。 有关如何参与的更多详细信息,请参阅我们的[贡献者指南](https://github.com/nanofuzz/nanofuzz/blob/main/CONTRIBUTING.md)。 ## NaNofuzz 研究论文 要在您自己的研究中引用 NaNofuzz v0.1.x,请引用我们的 ESEC/FSE'23 论文: 本文介绍了 NaNofuzz 的原始隐式预言机 版本,该版本引入了用于组织测试结果的“选项卡和网格”用户界面。 ## TerzoN 研究论文 要在您自己的研究中引用 NaNofuzz v0.3.x ("TerzoN"),请引用我们的 FSE'25 论文: 本文介绍了引入复合预言机 的 NaNofuzz 版本,其具有隐式、基于属性和基于示例的预言机,以及扩展的“选项卡和网格”用户界面。 ## NaNofuzz 吉祥物 认识一下 NaNcy,这只丝食蚁兽!丝食蚁兽是适应力极强、小巧且毛茸茸的生物,以每天发现并吞食大量臭虫 而闻名。因此,NaNcy 是我们在发现并消除更多臭虫旅程中深受喜爱的 NaNofuzz 吉祥物。 ![image](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/8854c803bf020824.png) ## 荣誉墙 如果您使用 NaNofuzz 发现了错误 并且愿意分享,我们将很乐意将其添加到我们的列表中。 请发送针对 README.md 的 PR,其中包含您发现的错误或 CVE 的链接。 - [RosettaCode Levenshtein distance](https://rosettacode.org/wiki/Levenshtein_distance?oldid=371462):当 `a===''` 时返回 `undefined`
标签:Anchore, DNS解析, IDE 插件, pocsuite3, SOC Prime, Syscall 审计, TypeScript, VS Code 扩展, 云安全监控, 单元测试, 卡内基梅隆大学, 启发式算法, 安全插件, 属性测试, 开发工具, 开源项目, 暗色界面, 测试用例生成器, 测试覆盖率, 测试辅助, 自动化攻击, 软件测试, 运行时验证, 静态分析