有没有人有任何使用BNF语法生成测试字符串的工具的经验,然后可以进入单元测试?BNF语法测试用例生成
9
A
回答
1
我没有对工具问题的回答,但我会说在任何文本处理语言(perl/python/etc)中都可以很容易地从BNF语法中随机生成句子,并且稍微比较冗长一个更大的语言(Java/C /等),但它不应该太难以推出自己的。
这个问题当然是,它只能在语法中生成字符串,除非你的语法非常简单,否则测试空间是无限大的。
1
我已经完全按照hazzen的评论(在脚本语言中使用嵌入式DSL)。这是一个有趣的练习,但除了最基本的测试例如解析,这不是非常有用。我最感兴趣的测试大部分都与更复杂的关系有关,而不是人们可以用BNF(或任何其他上下文无关语法)轻松表达的关系。
0
如果你正在开发一个编译器,那么你可能有一个抽象语法树数据类型。如果是这样,那么你可以编写一个函数来生成一个随机的AST - 用这个函数,你可以将它打印成一个字符串并将其提供给你的单元测试。这是保证这是一个有效的程序,因为你与你的AST开始。
如果我在Haskell或ML编写编译器,这是我会做的,使用QuickCheck。
0
相关问题
- 1. 生成测试用例来自动滥用BNF语法
- 2. BNF语法衍生
- 3. 产生BNF语法
- 4. 生成JUnit测试用例
- 5. 测试用例的生成
- 6. Javascript语法测试用例
- 7. 测试用例生成工具
- 8. 为红黑树生成测试用例
- 9. 生成随机测试用例
- 10. 自动生成测试用例
- 11. BNF语法歧义
- 12. 考虑以下BNF语法(BNF,递归)
- 13. Rails集成测试语法
- 14. 用于语句顺序的BNF语法
- 15. 如何自动生成无参数方法的测试用例?
- 16. 设置封面:生成测试实例
- 17. 改进大量测试用例的测试语法
- 18. | |如何?影响BNF语法?
- 19. 我的xml的BNF语法
- 20. BNF用于计量单位的语法
- 21. C++ BNF语法与分析/匹配的例子
- 22. 从CPPunit测试用例中为规范生成参考测试文件
- 23. 如何为测试用例生成一些报告导致单元测试?
- 24. 给定BNF语法输出C#的分析器发生器?
- 25. 生成一个解析器程序生成的BNF
- 26. 是否有用于黄瓜场景/功能的测试用例文档生成器(测试用例?)
- 27. 测试用例和断言语句
- 28. 英语测试用例解析器
- 29. 生成测试用例,有很多计算
- 30. Pytest /倾城 - 如何生成测试用例描述?