自动生成测试用例以滥用 BNF 语法
I am wondering if there is a tool or technique which, given a BNF grammar, adjusts it randomly(but intelligently) and generates a stream of output for use in detecting cases that slip past the BNF (but shouldn't).
edit: Fuzz testing a parser, in other words.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Google 工作了一段时间后,我发现基于语法的自动化模糊测试很难,并且是当前研究的主题。特别是,微软研究院的 P. Godefroid 正在开发一款名为 SAGE 的软件。
我翻出了他的一篇研究论文。
自动白盒模糊测试(与 Michael Y. Levin 和 David Molnar 合作)Proceedings of NDSS'2008(网络和分布式系统安全),第 151-166 页,圣地亚哥,2008 年 2 月。
我还发现了基于 XML 的 Peach 软件,但我不清楚在休闲阅读中如何在一个下午的工作中利用它来开发非安全应用程序。
所以我的结论是:“这是当前(2010 年 4 月)研究的一个主题,并且没有快速使用的工具”。
Spending some tender time with Google, I found that automated grammar-based fuzz testing is hard, and a subject of current research. In particular, P. Godefroid at Microsoft Research is working on a piece of software called SAGE.
I dug up a research paper by him.
Automated Whitebox Fuzz Testing (joint work with Michael Y. Levin and David Molnar) Proceedings of NDSS'2008 (Network and Distributed Systems Security), pages 151-166, San Diego, February 2008.
I also found the XML-based Peach software, but it is unclear to me on a casual reading how I might leverage it in an afternoon of work for a non-security application.
So my conclusion is: "It's a subject of current (Apr '10) research and there's no quick-use tool out there".
严格来说不是一个 BNF 模糊测试工具,但是 american fuzzy lop 采用人工智能方法,可以绕过 BNF 的缺失知识相当不错。它已经在许多开源解析器中发现了错误,因此它可能也是适合您的工具。
Not strictly a BNF fuzzing tool, but american fuzzy lop employs artificial intelligence methods and can walk around the lack of BNF knowledge quite well. It already found bugs in many open source parsers, so it might be the right tool for yours as well.