2009-02-28 11 views
22

xUnitスタイルの統合テストの代わりにFit/FitNesseを使用するポイントは何ですか?私の意見では、それは本当に奇妙で非常に不明瞭な構文をしています。なぜフィット/フィット?

本当に製品所有者にテストを書くことはできますか?彼らはしません!それはあまりにも複雑です。だから、誰がFit/FitNesseに合っているのですか?

更新これはビジネスルールテストにのみ適していますか?

答えて

19

以外のプログラマー、ビジネスアプリケーションの見込み顧客のような全く技術的でない人でさえ、どのアプリケーションで何をすべきか、それをテストに入れることがポイントです。テストの作業を行うことは確かにあまりにも複雑ですが、サンプルデータのテーブルを議論することができます。ワード。また、従来の仕様とは異なり、自動化されたテストではアプリケーションを更新する必要があるため、これらのドキュメントはアプリケーションと一緒に使用できます。

James ShoreのIntroduction To FitおよびFit Workflowを参照し、必要に応じて残りのドキュメントへのリンクを参照してください。


更新:あなたがビジネスルールによって何を意味するかに依存? ;-)一部の人々は非常に狭く(ビジネスルールエンジンなど)、他の人は非常に広く理解しています。

Fitは、エンドユーザーやドメインの専門家(一部のドメインでは)が理解できるドキュメントに豊富な現実的な例を持つビジネス(ドメインと同様に)ユースケースを文書化するツールです。検証し、議論する。同時に、これらの例は機械で判読可能な形式になっているため、自動テストを実行するために使用することができます。自分で文書を書くことも、実行するように促すこともありません。代わりに、それは両方の側で、アプリケーションが何をしようとしているのかについての理解が深まっていることを反映している。例が進むにつれて、より豊かになり、より多くのコーナーケースが解決されます。

どのようなアプリケーションが重要ではなく、どのように行うのですか。これは機能仕様の一種です。そのように、それはむしろ幅広く、モジュールではなくむしろ使用シナリオで編成されています。

例のテストは、ビジネスの観点から重要な側面でアプリケーションの外部動作をテストします。はい、ビジネスルールと呼ぶかもしれません。しかし、ディエゴ・ヤンシッチのクレジット・スコアリングの例を見てみましょう。適合文書の一部が1)属性とそのスコアをリストし、2)クライアントデータを提供して結果を確認し、次に実際のビジネスルールであるスコアリングテーブル(属性とそのスコア)またはアプリケーションロジックが各クライアントのスコアを計算する(得点表に基づいて)?そして、それはテストされていますか?

Fit/FitNesseテストは受け入れテストに適しているようです。他のテスト(クライアント、ユーザー、ドメインエキスパートなどとの協力について気にしない場合は、テストを自動化したいだけです)は、おそらくより伝統的な方法で簡単に記述し、維持することができます。 xUnitはユニットテストとAPIテストに最適です。各Webフレームワークには、変更 - ビルド - テスト - デプロイサイクルに統合されたWebアプリケーション/サービステスト用のツールが必要です(例: djangoには小さなテストクライアントがあります。あなたはたくさん選んでいます。

そして、あなたが興味のある特定の分野でいくつかのテストをうまく適合させるために、あなた自身のツールを書くことができます。


つ以上 一般的な考えは、それはあなたのテストをエンコードするために(常にではない!!!)が多い方が良いでしょう、「ビジネスルール」と何でもについて、いくつかの簡単なことで解釈される明確に定義されたデータのいくつかの形式で、ジェネリックコード。ドキュメントを生成し、新しいテストフレームワークに移行し、アプリケーションを新しい環境/プログラミング言語に移植し、いくつかの外部ルールや他のシステムとの適合性を確認するために使用します(あなたの想像力を使用します)。そのような情報をコードから取り出すことはずっと難しくなります。単純なハードコーディングされた単体テストやビジネスルール。

Fitはテストケースをデータとして格納します。非常に特定のフォーマットでは、それがどのように使用されるのかという理由からです。あなたのドメイン固有のテストでは、シンプルなCSV、JSON、YAML(私はXMLファンではありません)のような異なるフォーマットを使用するかもしれません。


私はこの(あまりにも長い道のり)の更新プログラムを書いていたとして、私はarticle by Gojko Adzicを見てきました。 Fit/FitNesseでテストをプログラミングしようとする人がIMVHOの目的を単に打ち負かすプログラミング言語のように、興味深いものです。

4

考え方は、あなた(プログラマー)がExcelシートなど分かりやすい形式を定義しているということです。次に、製品の所有者は、ビジネスに参加していない人には理解しにくい情報を入力し、POが実行中のFitを期待しているときにコードが機能することを確認するだけです。 xUnitで使用される方法は、理解しやすい情報や簡単な情報の入力としてプログラマーに使用できます。 xUnitテストで複数のフィールドを持つ奇妙な例をたくさん入力する必要がある場合は、読みにくくなります。

年齢、既婚/単身、子供の金額、賃金、活動などに基づいて、顧客に貸出をするかどうかを決定する必要がある場合を想像してください。 プログラマーとして、情報;リスク管理者はxUnitテストを書くことができません。

1

回帰とバグテストで冗長性を減らすのに役立ちます。テストケースの管理可能なリポジトリを構築する。そのような一度構築し、永遠に使用します。