![]() |
1
1
我没有工具问题的答案,但我会说,在任何文本处理语言(perl/python/etc)中,从BNF语法中随机生成句子是相当容易的,而在更大的语言(Java/C/etc)中则稍显冗长,但滚动自己的语法应该不会太难。 当然,问题是它只能在语法中生成字符串,除非语法非常简单,否则测试空间是无限大的。 |
![]() |
2
1
我已经完全按照hazzen的评论做了(在脚本语言中使用嵌入式DSL)。这是一个稍微有意思的练习,但是除了最基本的测试,例如语法分析,它并不是非常有用。我最感兴趣的测试大多都与复杂的关系有关,而不是用BNF(或任何其他上下文无关的语法)轻松表达的关系。 |
![]() |
3
0
如果,比方说,你正在开发一个编译器,那么你可能有一个抽象语法树数据类型。如果是这样,那么您可以编写一个函数来生成一个随机的AST——有了它,您可以将它打印成一个字符串并将其馈送给您的单元测试。这样肯定是个有效的程序,因为你 起动 用你的AST。 如果我用Haskell或ML编写编译器,我将使用 QuickCheck . |
|
wavesinaroom · 断言结构向量长度 9 月前 |
![]() |
Tim Kirkwood · 比较空数据帧 10 月前 |
![]() |
Kamran Khan · 使用单元测试ASP。NET核心 1 年前 |
![]() |
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 1 年前 |
![]() |
Ricky Mo · 角度测试如何模拟导入的const 1 年前 |
![]() |
Natty · Visual Studio中缺少“代码覆盖率结果” 1 年前 |