フィットネスと自動統合テストを使用する利点は何ですか?完全にテストされたソリューションを提供することを目指しているときに、Fitnessがどこに適合するかを正確に把握するのに苦労しています。確かに、開発者がユニットを持っていて、コードを統合テストしている場合は、これで十分です。チームが統合テストの取り組みを複製する必要があるのはなぜですか?
4 に答える
アジャイル環境のテストケースには、主に次の4つのタイプがあります。
1)自動化された単体テスト(たとえば、J-unitを使用)。
2)自動化された機能検証テスト(例:Fitnessを使用)。
3)自動化された機能/回帰テスト(たとえば、SeleniumまたはQuickTestProを使用)。
4)手動テスト。
もちろん、タイプ1〜3には、指定された自動テストケースがあります。タイプ4の場合、テストケースは論理的(または高レベル)のテストケースになる傾向があり、テスターにはより高いレベルのスキルとドメイン知識が必要です。また、探索的テスト、欠陥分類法テストなど、かなりの量の経験に基づくテストが行われる傾向があります。
ここでRBCSブログを参照してください:
フィットネスを使用する主な理由は、技術者以外の人にテストを書いてもらう場合です。したがって、たとえば、コミッションを支払うさまざまな方法をサポートする必要があるとします。技術者以外の人は、ある量の生地を稼いでいる男を示すスプレッドシートを作成し、システムに手数料をいくら払うべきかを尋ね、計算が正しいと主張することができます。
個人的には、FITの方が価値があるよりも厄介だと感じました。メーカーが真剣になって、それをセットアップして構成するためのいくつかのツールを作ったなら、それは本当に魅力的なツールかもしれないと思います。
ただし、主なことは、BAまたは顧客でさえ直接参加できることを確認するために多くのビジネスルールタイプのものがあることが確実な場合にのみ使用することです。これは、軌道定数が適切に計算されていることを主張するためのものではありません。
フィットネスは、ビジネスアナリストがテストを所有して実行するのを容易にすることになっています。開発者はフィクスチャを作成します。ビジネスアナリストはデータをフィードし、テストに合格することを確認します。
私の経験では、ビジネスアナリストには、そのようなことをする背景も興味もありません。
フィットネステストは、統合テストに似ています。それらはいくつかのコンポーネントを含むことができます。単体テストは、開発者が単一のコンポーネントで実行する必要があります。したがって、名前は「ユニット」です。
私は単体テストが好きです。
この質問は誤った二分法を暗示しています。FitNesseは、自動化された統合テストソリューションです。テストが(意図された)wikiページのマークアップとして作成されているだけです。
現在、統合テストソリューションとして使用しています。コマンドラインを使用してすべての統合テストを実行します。テストは、JUnitまたはREST API(FitNesseサーバーの実行が必要)を介して実行することもできます。
ロブが彼らの答えで述べているように、セットアップと構成は(非常に)簡単ではありません。私はそれがそれほど難しいとは思いませんでした。そして私は、「これは軌道定数が適切に計算されていると主張するためではない」というロブの主張に異議を唱えています。実際、それはまさにそのために完全に使用可能です。
この質問に出くわしたのは、単体テストにFitまたはFitNesseを使用している人、または使用したことがある人からの評価を探していたためです。そのアイデアが思い浮かんだのは、開発者として、コードファイルよりもFitNessewikiページの形式の一連のテストを理解する方がはるかに簡単だと思ったからです。
以下は、私のプロジェクトの1つからのテストページの例です。これらのテストは統合テストですが、単体テストでもうまく機能しない理由は考えられません。ユニットのテストを妨げるテストのコードについては、特別なことは何もありません。