2011-01-19 8 views
2

私が勤務したほとんどの場所で、C++/Obj-Cコンポーネントの自動テストは、コンポーネントに直接実装された単純化されたドメイン固有の言語を使用して行われています。自動テストのためのドメイン固有の言語、良いアイデアですか?

あなたがアイデアを得るだけように、テストスクリプトは、おおよそ次のようになります。

do_this 
do_that 
repeat 10 
do_more_stuff_with_args 5 3 
again 

...とDSLは、多かれ少なかれ複雑な(通常の呼び出しで結果として何かにそれらのコマンドを翻訳します1つまたは複数のC++/Obj-C関数)。

私の最初のアイデアは、このようなものを見ると、自国のDSLではなく、確立された明確な言語でうまくいくことです。たとえば、これはSchemeやLuaを埋め込んで無料で基本を取得したり、テスト中のコンポーネントを振ることで可能です。 Python。私はスクリプト作成を開始するのが簡単になると思っています(人々は既に言語を知っていて、よく定義されているので)、メンテナンス作業が減り、より多くの機能を追加する作業が少なくなります。

しかし、私は実際にこのアプローチを取ったことはありませんでした。この問題についてのあなたの経験は何ですか?シンプルなテストですか?DSL:「ここに発明されていない」症候群の症例ですか?それとも、通常は最も効果的な方法ですか?

+1

そのようなDSLを実際の高さにした人もいます。http://cukes.info/ :) – 9000

答えて

0

最も簡単な中間ステップは、おそらくPythonや提案した他のプログラミング言語のような完全なプログラミング言語でC++/Obj-Cテストコードを生成することでしょう。すでにコード生成を行っているので、これはあまり苦労しません。

0

kotlinskiの背後にあるアイデアは、テストエンジニアにこのようなDSLテストケースを作成させることです。この場合、私はtestengineerのコードを実際のjava/python/ruby​​コードに変換するための通訳を書くことを考えています。

関連する問題