アクション
アクションベーステストの必要な要素はテストモジュールとを除けば、アクションです。アクションは操作と確認の一連を含むコンテナであり、再使用することができます。テストモジュール内でそのような操作やチェックを詳細的に指定する代わりに、テスターは1つ以上のアクションを指定することができます。
アクションには入力値と期待される結果を定義する引数があります。引数はアクション行の上の行にあるヘッダーとして表す名前があります。例:
アクションはテストデザインの副産物と見なされています。テスターは自分でアクションと引数を定義しますが、大規模で使用する前に、自動化エンジニアと相談した方が良いです。
アクションをうまく整理し、管理する必要があります。特に、同じ操作に対して複数のアクションを作らないようにしたほうが良いです。アクションは曖昧なく明確で充実な文書(意味、引数とそのデフォルト値、など)で書いておくべきです。
以下はアクション作成時に役に立つ情報です:
- テストリーダーにアクションの確認を担当してもらいましょう。
- アクションがどれほど良く作られているか自動化エンジニアに確認してもらいましょう。
- アクション名を付ける時に、オブジェクト+動詞として基本的なフォーマットを使用します。例えば、enter customer(客様情報の入力)とcheck balance(残高の確認)です。また、用語を統一しましょう。enter customer(客様情報の入力)の場合は以下のように作成します:
- 動詞:enterを使用し、addやdefineを使いません;
- 対象:customerを使用し、clientやaccountを使いません;
- 意味と範囲によってアクションを対応フォルダに置いておきましょう。
- アクションをレベルに整理しましょう:
click, enter, と checkなどのほとんどのシステムレベルアクションはTestArchitectに組み込んまれています。そのアクションは一般的なアクションで、大幅な範囲のUI対象に対して定義されます。例えば、clickはウィンドウのボタンに対して使用したり、ウェブサイトのハイパーリンクにも使用したりすることができます。
TestArchitectが組み込みアクションで作成しておかないアクションは実装する必要があります。特に、大規模なテストチームでは、通常、テスト担当者にアクションを実装させることはお勧めしずに、その代わりに、自動化を専門とした少人数のグループに任せるべきです。自動化プロセスは、独自の計画、チーム、および成果物を持ち、自動化プロジェクト全体における独立したブランチとして設定するのが最適です。多くのプロジェクトでは、テストはそのアクションが自動化されるずっと前に終了します。特に、テスト対象のアプリケーションがまだ利用できない可能性があるからです。
アクションを実装するもっとも簡単な方法はプログラミング関数やスクリプト言語でアクションを実装する方法です。これはアクションインタプリタという形になり、アクションベーステストではハーネスと呼ばれます。TestArchitectでハーネスを作成するには:
- サードパーティーでのテストツールのスクリプト言語を使用します。
- TestArchitectの自動化サポートライブラリを使用して、テスト対象アプリケーションのUI(または他のインタフェース)と相互作用します。
どちらの場合も、アクションの引数を取得したり、チェックの結果を登録したりするために、アクションベーステストライブラリの関数を使います。これは通常「エンジン」と呼ばれます。動作するハーネスの例は、TestArchitectのインストール時に用意されています(詳細は レッスン#8 自動化ハーネスの使用をご参照してください)。
アクションベーステストには、アクション定義と呼ばれる、より高度なアクションを実装するための別の仕組みもあります。これにより、自動化テストを実装する人は、既存のアクションを使用して、新しいアクションの動作を定義することができます。複雑な技術的機能を含まないアクションの場合、プログラミングコードよりも使いやすいので、この方法がよく推奨されます。