2. 用語と記法について¶
2.1. 用語¶
用語
説明
単体テスト
機能単位について、入力と出力が正しいことを確認する。技法は多く存在する。
結合テスト
機能単位の接続が正しいことを確認する。技法は多く存在する。
TestSuite
XUnitにおいて、テスト対象に与えるパラメータのバリエーションを束ねた単位。
TestCase
XUnitにおいて、TestSuiteを構成する子要素。
コントロール
表示、入力、操作のための画面部品の総称。
コントロール辞書
コントロールの構造、特定するためのxpath、状態取得や操作法を記したExcelファイル。他にも、表題の指定、 共通で使用するJavascript関数やマクロを記述する。
項目ID
画面の中のコントロールを特定するための識別子。
グループ
複合コントロールを構成するコントロールをまとめてグループと呼ぶ。
アーキテクト
一般の開発者の技術指導を行い、プロジェクトにおいて共通部品の標準化を推進する。
開発者
アーキテクトが定めた標準規約に従いアプリケーションを開発する一般の開発者。
2.2. 記法¶
章題や項題において、対象とするスキルレベルを示す記法を示します。
記法
説明
レベル1
章題、項題の末尾に付与する。スキルレベル1(FT初心者)を対象とした内容であることを示す。
レベル2
スキルレベル1を対象にした内容を示す。jQueryを使用できるレベルの開発者が対象。
レベル3
スキルレベル3を対象にした内容を示す。アーキテクトレベルでありFTの辞書を作成できる開発者が対象。
2.2.1. Webアプリケーションテストの記法¶
Webアプリケーションテスト固有の記法を示します。
記法
説明
画面ID#モード
画面を特定するための記法。画面IDとモードを#でつなぐ。モードが指定されていない場合には#以下は略。 実行時に、テスト対象のテストケースを検索する際に、like文で類似検索するので、画面IDの命名規約は、先頭から、 大分類・中分類・小分類の識別子が並んでいると、テスト実行の際に便利である。 禁止文字は次の9文字と空白。 -> :[]/*.()
$
文字列の先頭にある場合、単なる文字列ではなく、識別子やオブジェクトを表現する文字。
$項目ID(引数)
操作名(引数),同じシートにおいて「項目ID」で指定されたコントロールの操作に引数を渡して実行する。
$画面#モード.項目ID(パラメータ組)
「画面ID#モード」の画面遷移型シートに設定された操作パターンのうち、項目IDで指定された遷移型コントロールと 指定されたパラメータ組を実行するマクロである。
C型画面テスト
同じ画面の範囲で行うテスト。画面内の表示制御や入力値チェックなどの確認を行う。 このの操作を記述シートをC型シートと呼ぶ。
S型画面テスト
ある画面Aでの入力を元に別の画面Bに遷移した場合の遷移先やデータベースなどの状態を確認する。 画面Aの操作を記述シートをS型シート、遷移先画面Bの確認内容を記述するシートをV型シートと呼ぶ。
#関数名(...)
設定値の文字列中に埋め込む。実行時に、対応するJavaの処理を実行し、実行結果に置換した文字列となる。
関数名(...)
$や#から始まらない関数は、コントロールのメソッドもしくはコントロール辞書で定義されたJavascript関数である。
ID、属性値の禁止文字
htmlで禁止している文字。例 <>&
2.2.2. Javaアプリケーションテストの記法¶
Javaアプリケーションテスト固有の記法を示します。
記法 |
説明 |
---|---|
$0 |
テスト対象のオブジェクトを意味する。(Javassistの記法) |
$n |
n=1 2 ...は引数を意味する。(Javassistの記法) |
$_ |
返却値を意味する。(Javassistの記法) |
予約キー(...) |
①引数の属性(もしくはその子孫)がオブジェクトであった場合、その生成ロジックをReservedDicシートのB列に記述(JsonもしくはJava)することができる。A列が、その展開するための予約キーとなる。予約キーはブックでユニークである。②実行後の検証時には、評価する文字列の短縮形として使用することもできる。 |
#関数名(...) |
設定値の文字列中に埋め込む。例えば、実行時の日付などを使用して評価するためである。評価時に、対応するJavaの処理を実行し、置換した文字列となる。関数名はプロジェクト内でユニークである必要がある。 |
3. TestSuiteの命名規約を決めておきましょう¶
TestSuiteの命名規約をあらかじめ検討しておくと、テスト実行のコマンドを作成する際に便利です。 実行時に、SQLのlike文のように「%」を付けることで、テスト実行する範囲にフィルターをかけることができます。
3.1. WebアプリケーションテストのTestSuite¶
C型画面テストにおけるTestSuite名
C.画面ID#モード
S型画面テストにおけるTestSuite名
S.画面ID#モード.遷移ボタンのID.2.遷移先画面ID#モード
同じ画面ID#モードのテスト項目を二つ以上のシートに分ける際には、モード欄に識別する文字列追加するとよいでしょう。
C型のテスト仕様を記述するシートを「C型シート」と呼びます。
S型においては、操作を記述するシートを「S型シート」、遷移後の画面の検証内容を記述するシートを「V型シート」と呼びます。
- ※ 結合テスト以降
結合テスト後に、業務フローに従ったテストを行うことが多いですが、その場合、S型のTestSuiteを再利用することができます。手順としては、
業務フローの最終画面のS型シートを作成します。既存のS型シートをコピーするとよいでしょう。
シート名を既存のS型シートと競合しないように、画面IDの欄にある画面IDの頭に識別用の文字列を追加します。
業務フローの遷移ルートを辿るためのチェックポイントを設定します。
この画面の操作と検証方法を設定します。
3.2. JavaアプリケーションテストのTestSuite¶
TestSuiteの名前はシート名が割り当てられます。従って、プロジェクトでユニークな識別名となるように命名法を定める必要があります。また、シート名として使用できる文字であることが必要です。
4. テスト仕様書のレイアウトについて¶
4.1. Webアプリケーションテストの場合¶
表項目名は辞書に従って標準化されていることが前提です。 テスト仕様書の書式は、FTが生成する表のレイアウトを崩さない限り自由に記述できます。レイアウトを崩さない限り、その周囲の行や列を追加したり、セルに説明文などを書き込んだりすることができます。
また、設計書と同じ表項目名であれば、テスト仕様書作成にあたり、読み込むこともできます。

上の画像はS型シートのレイアウトを示したものです。
画面名:画面の名前を記入します。人が画面の機能を理解しやすくするための名前です。テストの実行には使用しません。
画面ID:画面を識別するIDを記入します。シート名と連動しています。テストの実行のために必要です。
モード:画面の構造が同じでも振る舞いが異なる場合があります。そのため同じ画面でも機能の際を識別するために使用します。シート名と連動しています。テストの実行のために必要です。
パラメータ組:この画面の操作の流れを指定します。
テストの実行は、パラメータ組の列に対して上から順に行われます。
- 各列の操作は別のテストとして実行されます。各テストはブラウザをクリアにした状態で行われるので、互いの結果が影響を及ぼすことはありません。
入力操作については、セルに「〇」が指定されている場合に行います。 遷移操作については、遷移先が指定されている場合に行います。同じ列に対して、複数の行で遷移先が指定されている場合、各遷移先に対して同じ入力操作が行われ、別のテストとして実行します。
※ パラメータの名前はシートのカラムでユニークに名付ける必要があります。
前提条件:この画面のテストを実行する前に行う処理を記述します。。
経路:この画面に至るまでの画面のルートを、通過する画面のIDをカンマつなぎで指定します。
外部設定:テスト実行前に、データベースを設定したり、外部プロセスを起動したりします。。
入力操作:この画面に表示されているコントロールに対して、選択項目をクリックしたり、テキストを入力したりする操作を指定します。
遷移操作:画面遷移を引き起こすコントロールへの操作と遷移先を指定します。
このレイアウトはテストのバリエーションを見やすくするためのものです。
※ C型のレイアウトは、前提条件および遷移操作を除去したものになります。C型シートにおいては、入力操作の設定値に、評価式を記述することが可能です。
C型は単画面の機能の確認のためのものです。各画面に対して、ImplementDicシートにてURLを設定することが必要です。
4.2. Javaアプリケーションテストの場合¶

上の画像はJavaのメソッドテスト仕様書のサンプルです。
以下で構成されます。
クラスとメソッドを指定する欄。
実行前のデータベース、オブジェクト、引数オブジェクトを設定する欄
実行後のデータベース、オブジェクト、引数オブジェクトの状態を確認する欄