getting started with fitnesse collaboration tool
今、世界はアジャイルに移行しています。早期かつ継続的なフィードバックは、どのスクラムチームにとっても重要です。世界が変化しているので、テスターの考え方も変える必要があります。
テスターは、「バグの発見、ソフトウェアの破壊、要件の測定」ではなく、「品質を最初から提供する、UIなしでテストする、またはUIが利用可能になる前にテストする」ことを考えています。
テスターも変更に対応する必要があるため、UIが開発されるまで待たずに、ブラックボックステスト手法から抜け出すことが重要です。代わりに、中間成果物のテストも開始してください。
学習内容:
.binを開く方法
- しかし、なぜ?
- FitNesseとは何ですか?
- なぜFitNesseを使用する必要があるのですか?
- では、何を作成できますか?
- FitNesseのダウンロードと構成:
- FitNesseの例–テストするもの:
- FitNesseでテストを書く:
- フィクスチャ/テーブルスタイルに関するいくつかの洞察:
- 勧告:
- 結論
- 推奨読書
しかし、なぜ?
「今、これは非常にアジャイルな視点です」。
ソフトウェアを構築するときはいつでも、テストの最下層はユニット/コンポーネントレベルで維持されます。ユニットテストは開発チームによって実行されます。これらの単体テストは非常に技術指向であり、ほとんどの場合、テスト対象のシステムと同じ言語で記述されています。
これらの単体テストは「 Xユニット 」テストツール。テストの世界では、 ユニットテストが堅実な場合 、欠陥ははるかに早期に特定され、ユニットテスト層の上のテストは安定した環境で簡単になります。そして、アジャイルで話すとき、チームがTDD(テスト駆動開発)の技術を習得している場合、ユニットレベルのテストが最も迅速なフィードバックを提供すると言います。
ユニット/コンポーネントレイヤーの上のレイヤーは、ビジネスを実行する受け入れテストレイヤーです。これらは機能テストであり、単体テストよりも対象範囲が広く、ほとんどの場合、開発者以外の人が実行します。これらのテストは、プレゼンテーション層またはAPIの背後にある層をテストします。テスト時にこれらのAPIまたはメソッドは迅速なフィードバックを提供し、GUIが開発されるまでに、ほとんどの機能がテストされます。
FitNesseは、この自動受け入れテストレイヤーの例です。
FitNesseとは何ですか?
FitNesseは、「完全に統合されたスタンドアロンWiki、および受け入れテストフレームワーク」です。 オープンソースのウィキウェブサーバーです。 Wiki-テストテーブルが作成される独自のWebページを作成できるためです。これらのテストテーブルは、 テストデータ 。
その意図は、アジャイルスタイルのブラックボックス受け入れと回帰テストをサポートすることです。テスターは開発者と協力してテストスイートを準備するため、これはコラボレーションツールでもあります。
なぜFitNesseを使用する必要があるのですか?
アジャイルテストチームは、FitNesseを使用して、コード内のメソッドをテストするテストスーツを準備できます。 FitNesseはに類似しています JUnit メソッドもテストする方法ですが、テストは開発者と非開発者の両方が使用できる単純なテーブルの形式であるため、JUnitとは異なります。
利点:
- 必要に応じて自動受け入れテストを実行することによる早期フィードバック。
- テスト結果は、赤または緑で強調表示されているため、決定論的です。
- テストデータは、品質のニーズに合わせて設計できます。
- テストは単純な言語で書かれており、表形式で書かれているので理解しやすいです。
- これらのテーブルは、入力と期待される出力の観点から定義されています。
- すべてを見る FitNesseの機能はここにあります。
では、何を作成できますか?
FitNesseでは、テストとスイートを作成できます。用語は、テストの世界で使用されているものとほとんど同じです。テストは単一のスクリプトであり、スーツはテストのコレクション/グループです。スーツを作成して実行すると、そのスーツのすべてのテストが実行されるという利点があります。したがって、スーツにテストを配置するには、適切な計画が必要です。
FitNesseのダウンロードと構成:
=> FitNesseをダウンロードするには、 ここをクリック
((注意:画像をクリックすると拡大表示されます)
Fitnesse-standalone.jarの最新バージョンをダウンロードして、ローカルドライブに保存します。
コマンドプロンプトを開き、jarファイルを実行します。簡単にするために、バッチファイルを作成しました。
jarファイルが実行されると、FitNesseが次のように起動します。 (画像をクリックすると拡大表示されます)
FitNesseを開くには、ブラウザを開いて次のように入力します。 http:// localhost: 。この場合、ポート番号は2222です。
受信したページを以下に示します。 (画像をクリックすると拡大表示されます)
したがって、ここで(テスト)ドロップダウンが表示されている場合は、(スイートページ)と(テストページ)を作成できます。スイートを作成すると、そのスイート内のすべてのテストスクリプトが実行されます。
説明のために、テストページの例を取り上げます。
FitNesseの例–テストするもの:
現在、以下に示す簡単な計算プログラムをテストしています。
これがJavaのコードで、4つのメソッドがあります。
- 加算()
- マイナス()
- かける ()
- 除算()
(FitNesseは任意の言語で動作することを確認してください。説明のために、Javaを使用しました)
FitNesseの世界では、このコードは「Fixture」と呼ばれます。
フィクスチャはサンプルコードに他なりません –またはFitNesseとテスト中のアプリケーション間のリンク。したがって、メソッドをテストするときはいつでも、フィクスチャを作成する必要があります。このフィクスチャが呼び出され、メソッドがテストされます。
したがって、この例の「フィクスチャ」コードは次のとおりです。
publicclass Calculator { privateint first,second; publicvoid setFirst(int first) { this.first=first; } publicvoid setSecond(int second) { this.second=second; } publicint addition() { return (first+second); } publicint minus() { return (first-second); } publicint multiply() { return (first*second); } publicfloatdivide() { return (first/second); } }
日食のコードは次のように表示されます。 (画像をクリックすると拡大表示されます)
クラスファイルが必要になるので、必ずコンパイルしてください。
FitNesseでテストを書く:
ステップ1) FitNesseフロントページがあるブラウザに戻りましょう。
フロントページで「テストページ」をクリックし、テストの名前を入力して「保存」ボタンをクリックします。私たちの場合、それは「電卓」です
ステップ2) URLに、テストの名前にドット「。」を追加します。オペレーター。
お気に入り: http:// localhost:2222 / FrontPage.Calculator
ステップ3) (編集)ボタンをクリックして、以下に示す行を入力します
入力された行は次のとおりです。
!define TEST_SYSTEM {slim}
!パスF: Eclipse TestFitness bin
!|電卓|
最高のyoutubeからmp3へのコンバーター
|最初| 2番目|加算?|マイナス?|乗算?|除算?|
| 4 | 2 | 6 | 2 | 8 | 2.0 |
| 10 | 5 | 15 | 5 | 50 | 2.0 |
| 10 | 10 | 20 | 0 | 100 | 1.0 |
行を1つずつ理解しましょう。
に) 最初の行は、FitNesseがSLIMテストシステムを使用することを示しています。
(( スリム – Simple List InvocationMethodの略です。 SLIMテストシステムと言うことで、すべてのテーブル処理はFitNesseによって行われます。 SLIMにはSLIMRunnerとSLIMExecuterがあります。 SLIM Runnerは、テストページを単純な命令に分割し、これらの命令はSLIM Executerに渡されます。SLIMExecuterは、テスト対象のシステムを呼び出すようにフィクスチャコードに指示します)
b) 2行目は、クラスファイルの場所を定義します。この場合、Javaコードがコンパイルされ、クラスファイルは「」の場所に保持されます。パスF: Eclipse TestFitness bin「」
c) 3行目は、クラスの名前を示しています。私たちの場合、その「電卓「」
d) 今度は4行目です:
最初の2列|最初| 2番目|javaメソッドへのパラメータまたは入力です。
次の4列の後に「?」が続きます加算?|マイナス?|乗算?|除算?| javaクラスのメソッドです。これらのメソッドは、期待値と比較される値を返します。
です) 台詞:
| 4 | 2 | 6 | 2 | 8 | 2.0 |
| 10 | 5 | 15 | 5 | 50 | 2.0 |
| 10 | 10 | 20 | 0 | 100 | 1.0 |
テストケースですか、それとも私たちの方法のテストデータと言うべきです。
最初の行:
|最初| 2番目|加算?|マイナス?|乗算?|除算?|
| 4 | 2 | 6 | 2 | 8 | 2.0 |
最初のパラメーターとして4、2番目のパラメーターとして2を取り、これら2つの値をjavaクラスのadditionメソッドに渡します。メソッドが実行され、値が返されます。この戻り値は、「加算?」の下に書かれた期待値と比較されます。これは| 6 |
同様の方法で、FitNesseは最初の2つのパラメーターをマイナスで渡しますか? javaクラスのメソッドであり、値を返します。この値は、に対して期待値と比較されます | 2 |
同じように、掛ける?分割しますか?最初と2番目のパラメータの値を取得することで機能し、比較される値を返します| 8 | 2.0 |それぞれ
同様の方法で、以下の2行(またはテストケースと言うべきです)が実行されます。
| 10 | 5 | 15 | 5 | 50 | 2.0 |
| 10 | 10 | 20 | 0 | 100 | 1.0 |
ステップ4) テストを編集したら、保存ボタンをクリックすると、ページは次のようになります。
ステップ5) テストを実行するには、(テスト)ボタンをクリックすると、次のような結果が得られます。 (画像をクリックすると拡大表示されます)
最初の行(最初のテストケース)の場合、緑色は、メソッドの加算()、マイナス()、乗算()、および除算()から返された値が、期待される値、つまり6、2と一致していることを示しています。 、8および2.0それぞれ。同様に、2番目の行(2番目のテストケース)では、メソッドから返されるすべての値が一致しています。
ステップ#6) ここで、説明のために、いくつかの期待値を他の値に変更します(値は正しくありませんが、説明のために意図的に行っています)。
今のところ、私は持っています:
- 最初のテストケースのaddition()の期待値を7に変更しました
- 2番目のテストケースのminus()の期待値を変更しました
- 3番目のテストケースのdivide()の期待値を変更しました。
ステップ7) 「テスト」ボタンをクリックしてテストを実行します。上記のテストは失敗するはずです。 (画像をクリックすると拡大表示されます)
赤い色は、これらのテストが失敗したことを示しています。
フィクスチャ/テーブルスタイルに関するいくつかの洞察:
FitNesseでは、テーブルの行を実行することによってテストが実行されることを確認しました。したがって、さまざまな種類のテストを実行するには(または、さまざまな種類のメソッドをテストするために)、さまざまな種類のテーブルを使用する必要があります。以下のフィクスチャ/テーブルスタイルを最も頻繁に使用します。
- カラムフィクスチャ –が最も広く使用されています(上記の例で使用されています)。ここで、データの行は、さまざまな入力セットとその期待される出力を表しています。
- 行フィクスチャ –いくつかの値のセットを返すクエリのテストに使用されます。
- アクションフィクスチャ –一連のイベントのテストを実行するために使用されます。これらのイベントは、ボタンをクリックして値を確認するようなものです。
勧告:
FitNesseでさらに調査を開始できるように、概念をデモンストレーションしようとしました。テスターの考え方も変える必要があり、広げる必要があります。コードの内部を見るように制限するのをやめなければなりません。私は感じます。最終的にはコードをテストしているので、コードを見て、その場でテストしてみませんか?
プログラミングスキルを磨き始め、ロジックの構築と構文の学習に重点を置きます。プログラミングの概念に精通し、それを実装する練習をすれば、FitNesseの探索が簡単になります。
結論
アジャイルでのテストには、次の4つの種類があります。
- 自動化されたユニットテスト–Junitを使用する
- 自動受け入れ検証テスト–FitNesseを使用
- 自動化されたUI /回帰テスト–SeleniumまたはQTPを使用
- 手動テスト
ユニットと受け入れレイヤーでテストを最大限に活用するように努める必要があります 。これまで、QTPやSeleniumなどのツールを使用してUIレイヤーのテストのほとんどを維持しようとしてきましたが、ここでの欠点は、UIが開発されない限りこれらの機能をテストできないことです。欠陥を見つけるまでに、開発者は他の機能開発に移行しています。
一方、APIを作成した直後にテストできれば、開発者はすぐに修正できます。これにより、GUIをテストする際の労力も少なくなります。すべての機能がテストされるため、GUIのテストが簡単になります。
アジャイルでは、テスターの考え方も変更する必要があり、テスターは通常の一連のテストから抜け出す必要があります。次に、コードを調べて、UIが使用できない場合でも欠陥を特定する必要があります。
著者について: これはSTHチームメンバーのShilpaC.Royによるゲスト記事です。彼女は過去9年以上、インターネット広告、投資銀行、テレコムなどの分野でソフトウェアテストの分野で働いています。
以下のコメントであなたの質問を教えてください。
推奨読書
- 開発者は優れたテスターではありません。あなたが言うこと?
- テスターのための便利な無料のスクリーンキャプチャおよびアノテーターツール-qSnapレビュー
- 開発者とテスターのためのトップ10の最も人気のあるコードレビューツール
- WebLOADレビュー-WebLOAD負荷テストツール入門
- テスターのためのトップ15のSOAテストツール
- ソフトウェアテスターでモチベーションを維持する方法は?
- TestLodgeテスト管理ツールのレビュー
- テスターのためのソフトスキル:コミュニケーションスキルを向上させる方法