概要
自動テストツールに喰わせるテストケースには、Cucumberで使われるGherkinで記述したものや、Gaugeで使われるMarkDownで記述したものなどありますが、
今回紹介するのは、テストで実行するアクションをテストケースに記述して利用するキーワード駆動のテストツールになります。
キーワード駆動っぽいテストができるツールを開発した話で見かけたツールをホテル予約サイトで試してみました。
宿泊の条件(人数や朝食の有無、オプションプランなど)で提示される合計金額が正しいかの検証です。
準備
JDK11での動作を確認しています。
ビルドされたjarファイルをここから入手します。ソースコードも公開されていますので、頑張ってビルドもできるかもしれません。
また、利用中のChromeに対応したWebDriverへのPathを通しておきます。
jarファイルとExcelに記述したテストケースとを、同じフォルダに置き、WindowsのPowerShellから、
java -jar keydriver-0.3.0.jar ホテル予約サイト.xlsx
ビルドされたjarファイルが、keydriver0.3.0.jar の場合
テストを始める前に、ホテル予約サイト.xlsx を作成します。
テストケースの作成
現在利用可能なキーワードは、こちらに詳細があります。
今回テスト対象にした予約サイトは、Selenium練習用のサイトです。
- 予約フォームに、宿泊初日 / 連泊日数 / 宿泊人数 / オプションプラン / 代表者指名を入力
- 「次へ」ボタンを押す
- 合計金額の検証をする
といったテスト内容としました。
宿泊初日の入力を、最後に入力しているのは、カレンダーコントロールだったので、画面上の他の要素を隠してしまい、場合によっては、入力などの操作ができなくなってしまったことの回避策です。
この程度のテストケース修正ならば、Gherkinで記述した場合も、さほど手間ではないですが、テスト実施したいことや、テストに至るまでの操作等をある程度まとめてキーワードにしておける点、キーワード駆動テストの恩恵を受けやすい気がします。テストコードの開発は発生しますが。
今回テストに使ったキーワードは、以下のものだけです。
キーワード | 利用箇所 |
---|---|
open | 予約サイトを開く |
select | セレクトメニューから、連泊数や宿泊人数を入力 |
input | インプットボックスに文字入力 |
clear | 入力前に、初期値をクリアする場合 |
click | クリック操作 |
assert | 画面上の文字列を検証 |
テスト対象やテスト内容に因っては、利用するキーワードは他にも使いたいものがあるかもしれません。筆者が会社員時代にネットワークカメラのWeb画面を検証していた時にも、同じようなキーワード駆動のテストを自作していましたが、対象となるハードウェア固有の機能に関係したキーワードが存在していました。
総括
紹介したツールは、今後の追加開発も予定されているようでした。
自動テストが普及するにつれて、自動テスト環境で使うデータやテストシナリオが、常にテストで有効なものに維持する労力は増えると考えます。
キーワードとして、テストコードからビジネルロジックを分離することで、そういった労力を軽減させることも見込める点、キーワード駆動の自動テスト環境が、効果的な手段の1つになるように感じます。