プログラミングスキルなしでテストを自動化する方法 – 分析編

この記事は、プログラミング経験のない手動テスターによるテスト自動化に関する、3回にわたる連載記事の3回目です。この記事では、自動テストの分析領域で手動テスターが実践できることについて説明します。また、最後に全3回のまとめを行います。

まだ、第1回「準備編」および第2回「実行編」をお読みでない場合、この「分析編」の前にお読みいただくことをお勧めします。

  • テスト自動化の領域
  • テストフローにエラー処理を追加する
  • テストケースのステップ実行およびテストのデバッグ方法を理解する
  • レポート結果の読み取りと解釈
  • まとめ

テスト自動化の領域

次の図は、手動テスターが自動化を始めるにあたって検討すべき3つの領域を表しています。準備、実行、分析各領域に、手動テスターがすぐに貢献できる3つの固有のセクションがあります。このブログ記事は、3つ目の領域である「分析」を取り上げます。 

テストフローにエラー処理を追加する

テスト自動化でのエラー処理は、多くの点で手動テストの場合とは異なります。たとえば、自動化では次のような状況に対処する必要があります。

  • テストの途中で予期しないウィンドウが表示される
  • オブジェクトが移動、追加、削除、変更される
  • 自動テスト実行時にオブジェクトの表示が遅れる

これらの要素は、機能テストアナリストが自動化の準備とエラー処理を行う際に真っ先に直面する問題でしょう。
テストの自動化ではこのような状況にどのように対処するべきかを理解すると、その後のテスト実行に耐える堅牢さを備えたテストを作成するのに役立ちます。

テストケースのステップ実行およびテストのデバッグ方法を理解する

自動テストケースは、手順をステップごとに記述するという点では、手動テストケースと似ています。大部分のテストケースでは、背後でコードが生成されます。自動化の大きな利点の1つは、テストケースをステップ実行し、どこでエラーが発生したかやアプリケーションがどのように振る舞うかを確認できることです。次の図は、そのような問題発見のための3つのステップを表しています。

ブレークポイントの設定

テストケースを評価し、特定のステップに停止ポイントを追加します。停止ポイントを追加すると、そのポイントまでテストが実行されます。指示するまでは、その先には進みません。

ブレークポイントに指定する「ステップ」の選択

どこにブレークポイントを設定するかは、アプリケーションがどのような状態にあるときに確認したいかに依存するため、注意深く分析を行ったうえで選択します。適切なブレークポイントを選択することは、その後のステップを実行するうえで非常に重要です。その後のステップでは、アプリケーションは期待される動作から外れて、予期しない振る舞いを始めます。

テストケースをブレークポイントまで実行する

ブレークポイントに到達したら、その先の分析に関していくつかの選択肢があります。

  • ステップオーバー: ブレークポイントを出て、次のコマンド群を実行します。
  • ステップイン: 現在の関数をステップ実行し、期待どおり実行されるかどうかを確認します。
  • ステップアウト: 現在の関数の外に出ます。

レポート結果の読み取りと解釈

自動テストのレポートは非常に有用であり、手動テストケースと比較してより多くの情報を提供できます。情報は自動的に生成されるため、レビューが重要です。自動テストケースを実行すると、以下のような情報を取得できます。

  • 実行時間
  • マシン名
  • OS
  • 画面解像度
  • 言語
  • 継続時間
  • エラー合計数
  • 警告合計数
  • グローバル パラメーター値
  • 失敗したステップの場所
  • 繰り返しの合計数

まとめ

テストの自動化には、従来の手動テストとは異なる要件があります。オブジェクト識別やリポジトリ、エラー処理テクニック、データ駆動テストなどの自動化フレームワークを理解し、さらにデバッグ方法やレポートを理解することは、テスト自動化の持つ、手動テストでは一般的ではない要素を理解するうえで重要です。

自動テストのステップ実行について理解することは、手動テスターがテストケースの記録と再生に着手し、作業を行うのに役立ちます。業界のトレンドはスクリプトなしの自動化に向かっているため、手動テスターの移行も簡単になってきています。テスト対象アプリケーション(AUT)に慣れるのが、最もハードルが高い作業であり、多くの手動テスターはすでにそのハードルをクリアしています。

すべての手動テスターは、何らかの形で自動化に関わるべきです。そうすると、市販されているテストツールの知識が増えるだけでなく、自身のテスターとしての市場価値を向上させることにもつながります。

(この記事は、開発元 Ranorex 社 Blog 「How to Automate Your Tests Without Programming Skills – Analysis」2015年11月10日の翻訳記事です。)