Scripting 用于自动测试的领域特定语言,好主意?

Scripting 用于自动测试的领域特定语言,好主意?,scripting,automated-tests,dsl,Scripting,Automated Tests,Dsl,在我工作过的大多数地方,C++/Obj-C组件的自动测试都是使用直接在组件中实现的简单领域特定语言完成的 为了让您了解这一点,测试脚本可以大致如下所示: do_this do_that repeat 10 do_more_stuff_with_args 5 3 again …DSL会将这些命令转换成或多或少复杂的东西(通常导致调用一个或多个C++/Obj-C函数) 当我看到这样的东西时,我的第一个想法是,使用一些已建立的、定义良好的语言比使用国产DSL更好。例如,这可以通过嵌入Scheme或L

在我工作过的大多数地方,C++/Obj-C组件的自动测试都是使用直接在组件中实现的简单领域特定语言完成的

为了让您了解这一点,测试脚本可以大致如下所示:

do_this
do_that
repeat 10
do_more_stuff_with_args 5 3
again
…DSL会将这些命令转换成或多或少复杂的东西(通常导致调用一个或多个C++/Obj-C函数)

当我看到这样的东西时,我的第一个想法是,使用一些已建立的、定义良好的语言比使用国产DSL更好。例如,这可以通过嵌入Scheme或Lua来免费获取基础知识,或者通过滑动正在测试的组件,以便您可以直接从Python使用它。我认为这将使开始编写脚本变得更容易(因为人们可能已经知道这种语言,而且它的定义也很好),并且它将减少维护工作—添加更多功能的工作量将更少


然而,由于我从未在实践中见过这种做法,你在这方面有什么经验?简单化测试DSL:这是“此处未发明”综合症的一种情况,还是它们通常是最有效的方法?

最简单的中间步骤可能是使用完整的编程语言(如Python或您建议的其他语言)生成C++/Obj-C测试代码。这将是一个不那么痛苦的步骤,因为您已经在进行代码生成。

最简单的中间步骤可能是使用完整的编程语言(如Python或您建议的其他语言)生成C++/Obj-C测试代码。这将是一个不那么痛苦的步骤,因为您已经在进行代码生成。

kotlinski背后的想法可能是让测试工程师编写这样的DSL测试用例。在这种情况下,我正在考虑编写一个解释器,将测试工程师的代码转换为真正的java/python/ruby代码。

kotlinski背后的想法可能是让测试工程师编写这样的DSL测试用例。在这种情况下,我正在考虑编写一个解释器,将测试工程师的代码转换为真正的java/python/ruby代码。

一些人将此类DSL提升到了真正的高度::)一些人将此类DSL提升到了真正的高度:)